1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [Кристофър ВАРТОЛОМЕЙ] [Харвардския университет] 3 00:00:04,000 --> 00:00:06,000 [Това е CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Така че, програмисти използват бази данни като инструмент, за да съхранявате и организирате 5 00:00:11,620 --> 00:00:13,620 нашите постоянни данни в таблици. 6 00:00:13,620 --> 00:00:18,960 Това означава, че данните ви се съхранява на нелетливи медианите като твърд диск, 7 00:00:18,960 --> 00:00:22,940 и дори когато компютърът е изключен, данните са все още непокътнати. 8 00:00:22,940 --> 00:00:29,530 И като програмисти, нашите програми използват бази данни за сценарии, като съхраняване на 9 00:00:29,530 --> 00:00:32,890 информация за потребителя от уеб формуляри, гледайки нагоре инвентаризация, 10 00:00:32,890 --> 00:00:36,210 или актуализиране на информация за това какви сайтове да показват. 11 00:00:37,150 --> 00:00:40,070 Но как всъщност взаимодействат с нашата база данни, 12 00:00:40,070 --> 00:00:43,150 или какво ще използвате, за да се чете, съхраняване, изтриване, 13 00:00:43,150 --> 00:00:46,070 и актуализиране на нашите данни в рамките на тези таблиците в базата данни? 14 00:00:47,280 --> 00:00:49,700 Ами, отговорът е, че ние използваме специален вид на база данни език 15 00:00:49,700 --> 00:00:53,400 който взаимодейства директно с нашите таблиците в базата данни. 16 00:00:53,400 --> 00:00:56,740 Това е името Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 или това, което се отнасят до като SQL. 19 00:01:00,740 --> 00:01:05,100 >> Сега, Se-Quel], или SQL, не е език за програмиране, 20 00:01:05,100 --> 00:01:08,580 но вместо това, той е език, който предоставя стандартен набор от команди 21 00:01:08,580 --> 00:01:13,520 за извличане и манипулиране на данните от различни системи за управление на бази данни. 22 00:01:13,520 --> 00:01:17,630 За целите на CS50, ние ще отидем в продължение на четири основни команди: 23 00:01:17,630 --> 00:01:21,210 SELECT, INSERT, актуализира и изтриете. 24 00:01:21,210 --> 00:01:26,230 Освен това, ние ще използват интерфейс за уеб база данни, наречена PhpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 които са инсталирани на уреда, за да напишете нашите SQL отчети. 26 00:01:30,830 --> 00:01:33,050 Така че, за да ви помогне да запомните тези команди, 27 00:01:33,050 --> 00:01:37,080 Донесъл съм някои тарталети в шкаф за подпомагане на нашите сценарии. 28 00:01:39,650 --> 00:01:42,210 Да речем, че базата данни на Cupcake, 29 00:01:42,210 --> 00:01:44,490 , където се съхранява цялата информация за вашата тарталети. 30 00:01:44,490 --> 00:01:48,220 Сега, бази данни може да съдържа много таблици 31 00:01:48,220 --> 00:01:50,950 и самите таблици могат да съдържат много колони. 32 00:01:50,950 --> 00:01:57,020 Вътре в нашата база данни Cupcake, ние имаме таблица, наречена cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Тази таблица ще се използва за съхраняване на цялата информация за тарталети 34 00:02:00,500 --> 00:02:02,990 които са във вашия шкаф. 35 00:02:02,990 --> 00:02:07,770 Колоните, които са вътре в таблицата представляват атрибутите на Cupcake. 36 00:02:07,770 --> 00:02:14,560 Например, колони на cupcake_cupboard 37 00:02:14,560 --> 00:02:15,920 Торта ID, CakeType, CakeColor и CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Това булев въвели колона се използва, за да се определи дали тортата е хубаво или не е хубаво. 39 00:02:23,040 --> 00:02:26,560 Ние ще започнем с писането изберете изявление. 40 00:02:26,560 --> 00:02:32,160 Изберете отчети са използвани за извличане на данни на конкретна таблица на база данни. 41 00:02:32,160 --> 00:02:34,890 В този сценарий, ние искаме да знаем всичко 42 00:02:34,890 --> 00:02:39,080 за всички тарталети, които съществуват в нашата шкаф. 43 00:02:39,080 --> 00:02:48,670 Синтаксисът да направите това е Space Star "Select", или *, пространство от пространството на нашата маса, 44 00:02:48,670 --> 00:02:52,050 което е cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Нека вървим напред и да изпълнява тази. 46 00:02:56,670 --> 00:03:00,140 >> Както можем да видим, те са тарталети в нашия шкаф. 47 00:03:00,140 --> 00:03:05,110 Важно е да се отбележи, че *, или звездичка, е див характер карта 48 00:03:05,110 --> 00:03:08,830 това означава събирането на всички колони на някоя маса. 49 00:03:08,830 --> 00:03:13,650 Обикновено, ние може да има достъп до определена колона или колони 50 00:03:13,650 --> 00:03:16,950 чрез замяна * с действителното име на колона. 51 00:03:16,950 --> 00:03:21,220 Ако искаме няколко колони, но не всички можем да постигнем това 52 00:03:21,220 --> 00:03:25,620 писането на имената на колоните, премахващ ограниченията всяка колона със запетая. 53 00:03:25,620 --> 00:03:28,620 Например, нека да изтегляте само CakeId и CakeType в cupcake_cupboard маса. 54 00:03:28,620 --> 00:03:38,370 Синтаксисът да направите това е: SELECT пространство CakeID запетая 55 00:03:38,370 --> 00:03:44,370 CakeType пространство от нашата маса, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Да вървим напред и изпълнение. 57 00:03:49,340 --> 00:03:52,670 И ето, сега има само две колони, посочени 58 00:03:52,670 --> 00:03:54,670 за всеки Cupcake в нашия шкаф. 59 00:03:54,670 --> 00:03:57,710 Също така можем да усъвършенстваме резултатите от заявките, като се посочва 60 00:03:57,710 --> 00:04:00,910 "Къде" клауза точно след името на таблицата. 61 00:04:02,000 --> 00:04:05,410 Така например, изглежда, че Cupcake в нашия шкаф 62 00:04:05,410 --> 00:04:08,660 , че е добре, не така добре изглеждащ. 63 00:04:08,660 --> 00:04:13,950 Да разбера всички тарталети в нашия шкаф, които са добре, не толкова хубаво търси 64 00:04:13,950 --> 00:04:16,110 "Където" клауза. 65 00:04:16,110 --> 00:04:26,390 Синтаксисът да направите това е: SELECT пространство пространство * от космоса cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 пространство, където пространството ни условно колона, в този случай CakeIsNice = 67 00:04:34,080 --> 00:04:36,900 булева стойност False. 68 00:04:36,900 --> 00:04:42,750 Важно е да се отбележи, че ако използвате низове, трябва да се загради с апострофи. 69 00:04:42,750 --> 00:04:49,620 Това е вярно за всички низове в SQL, или, в условията SQL бази данни, вариант герои 70 00:04:49,620 --> 00:04:51,620 известен като VARCHAR тип данни. 71 00:04:51,620 --> 00:04:57,660 В този случай, ние сме с вярно или невярно, което е булева стойност, а не низ. 72 00:04:59,120 --> 00:05:00,660 Да вървим напред и да изпълните тази команда. 73 00:05:00,660 --> 00:05:05,340 >> Ето и ето, това е случай, че имаме едно шоколад 74 00:05:05,340 --> 00:05:07,920 не толкова хубаво Cupcake в нашата шкаф. 75 00:05:09,620 --> 00:05:11,460 На следващо място, ние ще да напише декларация вложка. 76 00:05:11,460 --> 00:05:15,560 Вмъкване на отчети са използвани за да поставите или добавите 77 00:05:15,560 --> 00:05:17,770 допълнителни редове от данни в базата данни таблица. 78 00:05:17,770 --> 00:05:23,160 Преразглеждане нашия сценарий, нека предположим, че току-що направи чисто нов Cupcake. 79 00:05:25,910 --> 00:05:30,080 Тъй като ние сме много организирани Cupcake ядат, ние ще трябва да поставите този нов Cupcake 80 00:05:30,080 --> 00:05:32,330 в таблицата ни cupcake_cupboard. 81 00:05:32,330 --> 00:05:40,690 Синтаксисът да направите това е: Поставете пространство в пространството на нашата маса, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard пространство ( 83 00:05:46,830 --> 00:05:51,060 и тук ние определяме имената на колони, разделени със запетая, 84 00:05:51,060 --> 00:05:59,790 CakeType запетая CakeColor запетая CakeIsNice) пространство. 85 00:05:59,790 --> 00:06:06,540 След това, пишем думата стойности пространство (и тук 86 00:06:06,540 --> 00:06:12,170 въведете стойността за всяка колона, разделени със запетая. 87 00:06:12,170 --> 00:06:17,830 Апостроф, защото всички те са VARCHAR стойности ще ги заобикалят в единични кавички, 88 00:06:17,830 --> 00:06:26,780 Фъстъчено масло "запетая" светло кафяв запетая True. 89 00:06:26,780 --> 00:06:30,480 Сега е важно да се даде на всеки ред уникален номер, да се идентифицира. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing колона предоставя тази 91 00:06:33,660 --> 00:06:37,410  "Няма две едни и същи документи за самоличност могат да съществуват в тази таблица." 92 00:06:37,410 --> 00:06:39,480 Да вървим напред и изпълнение. 93 00:06:39,480 --> 00:06:45,380 Там отиваме, всички организирани. 94 00:06:49,720 --> 00:06:52,100 >> Следващия отчет на SQL, че ние ще напиша е актуализация изявление. 95 00:06:52,100 --> 00:06:55,650 Актуализацията на информацията може да се използва, за да променя данните в колона 96 00:06:55,650 --> 00:06:58,440 за всеки съществуващ ред във вашата база данни таблица. 97 00:06:59,670 --> 00:07:03,420 Рано в нашия сценарий, изберете изявление, ние идентифицирахме Cupcake 98 00:07:03,420 --> 00:07:08,300 в таблицата ни cupcake_cupboard, чиято CakeIsNice стойност е False. 99 00:07:08,300 --> 00:07:12,050 Нека предположим, че докато нашият кексчета с фъстъчено масло е във фурната, 100 00:07:12,050 --> 00:07:15,790 ние направихме нашата не толкова хубаво Cupcake много хубаво. 101 00:07:18,020 --> 00:07:22,240 Е толкова изключително организиран, ние искаме нашата Cupcake да се отрази тази стойност 102 00:07:22,240 --> 00:07:24,240 в таблицата ни cupcake_cupboard. 103 00:07:24,240 --> 00:07:28,710 Затова, нека да актуализираме нашата шоколадови кексчета в базата данни, за да се отрази това. 104 00:07:28,710 --> 00:07:39,720 Синтаксисът е: UPDATE пространство на нашата маса, cupcake_cupboard, пространство пространство SET 105 00:07:39,720 --> 00:07:44,240 колоната, която искате да промените, CakeIsNice. 106 00:07:44,240 --> 00:07:49,210 Тогава ние поставяме нашата нова стойност True пространство. 107 00:07:49,210 --> 00:07:54,290 Сега, тъй като ние не искаме да се актуализират всички редове с тази стойност, 108 00:07:54,290 --> 00:07:57,400 ние искаме да предоставим ", където" клауза, която ще ни определят точно 109 00:07:57,400 --> 00:07:59,830 за точния ред, който искате да промените. 110 00:07:59,830 --> 00:08:03,690 В този случай, ние знаем, че има само един Cupcake 111 00:08:03,690 --> 00:08:06,670 ,, че има CakeIsNice стойност на фалшиви. 112 00:08:06,670 --> 00:08:11,030 Освен това, ние също ще сме сигурни, че са в процес на осъвременяване на правилния ред 113 00:08:11,030 --> 00:08:13,030 с помощта на "А" клауза. 114 00:08:14,340 --> 00:08:17,270 Ние използваме "А" клауза, за да се усъвършенства нашата заявка. 115 00:08:17,270 --> 00:08:20,380 В този случай, защото знаем, че Cupcake е шоколад, 116 00:08:20,380 --> 00:08:23,160 ние ще използваме тази CakeType колона. 117 00:08:23,160 --> 00:08:31,500 Където пространството условно пространство колона CakeIsNice пространство = False, 118 00:08:31,500 --> 00:08:38,330 и пространството CakeType = "шоколад". 119 00:08:38,330 --> 00:08:41,880 Така че, поставяйки я на всички заедно, тази актуализация изявление се казва, 120 00:08:41,880 --> 00:08:44,670 намерите всички тарталети Cupcake нашия шкаф, 121 00:08:44,670 --> 00:08:50,520 и ако има Cupcake, чиято колона CakeIsNice съдържа стойност False 122 00:08:50,520 --> 00:08:54,130 и CakeType съдържа стойността ШОКОЛАД, 123 00:08:54,130 --> 00:08:58,240 искаме да се актуализира конкретна стойност редове CakeIsNice да е истина. 124 00:08:58,240 --> 00:09:01,140 Така че, да вървим напред и да изпълни изявление. 125 00:09:03,860 --> 00:09:05,860 И сега, ние сме организирани. 126 00:09:06,650 --> 00:09:09,220 >> Всички тези приказки за тарталети ме направи малко гладни. 127 00:09:09,220 --> 00:09:11,360 Мисля, че трябва да се спра на един. 128 00:09:11,360 --> 00:09:17,670 Но ако аз ям тази Cupcake, трябва най-малкото също да премахнете своето съществуване 129 00:09:17,670 --> 00:09:19,670  от нашия cupcake_cupboard маса. 130 00:09:20,650 --> 00:09:22,590 За да направите това, ние ще използваме изявление "Delete". 131 00:09:22,590 --> 00:09:27,400 "Delete" изявление може да се използва за премахване на всички или някои редове от таблицата. 132 00:09:27,400 --> 00:09:29,920 Ако желаете да премахнете някои специфични ред от таблицата, 133 00:09:29,920 --> 00:09:34,360 след това трябва да се осигури "Където" клауза, като по този начин се посочва колона 134 00:09:34,360 --> 00:09:37,660 която трябва да бъде уникален за реда, който желаете да премахнете. 135 00:09:37,660 --> 00:09:47,370 Това е синтаксис: DELETE пространство от космоса нашата маса, cupcake_cupboard, пространство. 136 00:09:47,370 --> 00:09:51,760 Сега, в този момент, когато сте далеч в изтривате собствените си изявление 137 00:09:51,760 --> 00:09:54,240 искате да бъдете много внимателни. 138 00:09:54,240 --> 00:09:59,970 Например, ако Искам да изпълня тази заявка както е, без да предоставят някои "Където" клауза 139 00:09:59,970 --> 00:10:04,500 Щях да загубя всички данни в тази cupcake_cupboard маса, 140 00:10:04,500 --> 00:10:09,590 но тъй като вече знам, че ми торта идентификатори са уникални, ще използвам 141 00:10:09,590 --> 00:10:12,410 Red Velvet ID торта за моя "Къде" клауза. 142 00:10:14,550 --> 00:10:20,670 , Където пространството колона, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Защото това е цяло число стойност, няма нужда да го обграждат в единични кавички. 144 00:10:25,010 --> 00:10:27,020 Така че, нека да изпълни изявление. 145 00:10:33,560 --> 00:10:35,990 Е, сега, че сме избърса съществуването на този Cupcake 146 00:10:35,990 --> 00:10:40,360 от нашия cupcake_cupboard маса, имаме само едно нещо на ляво: 147 00:10:41,680 --> 00:10:43,680 Уверете се, че изчезват. 148 00:10:43,680 --> 00:10:46,990 Съм Кристофър Вартоломей. Това е CS50.