1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [Christopher Bartholomew] [Harvard University] 3 00:00:04,000 --> 00:00:06,000 [Tas ir CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Tātad, programmētāji izmantot datubāzes kā līdzekli, lai saglabātu un organizēt 5 00:00:11,620 --> 00:00:13,620 Mūsu pastāvīgie dati, kas tabulās. 6 00:00:13,620 --> 00:00:18,960 Tas nozīmē, ka jūsu dati tiek glabāti ārpus gaistošo mediānas, piemēram, cieto disku, 7 00:00:18,960 --> 00:00:22,940 un pat tad, kad dators ir izslēgts, dati joprojām ir neskarts. 8 00:00:22,940 --> 00:00:29,530 Un, kā programmētāji, mūsu programmas izmantot datubāzes scenārijiem, piemēram, uzglabājot 9 00:00:29,530 --> 00:00:32,890 lietotāja informācija no tīmekļa formām, meklē up sarakstu, 10 00:00:32,890 --> 00:00:36,210 vai atjauninot informāciju par to, ko vietnes parādīt. 11 00:00:37,150 --> 00:00:40,070 Bet kā mēs patiesībā mijiedarbojas ar mūsu datu bāzē, 12 00:00:40,070 --> 00:00:43,150 vai ko mēs izmantojam, lai lasītu, uzglabāt, dzēst, 13 00:00:43,150 --> 00:00:46,070 un atjaunināt mūsu datu šajās bāzes tabulām? 14 00:00:47,280 --> 00:00:49,700 Nu, atbilde ir, ka mēs izmantojam īpaša veida datubāzes valodas 15 00:00:49,700 --> 00:00:53,400 kas mijiedarbojas tieši ar mūsu datu bāzes tabulām. 16 00:00:53,400 --> 00:00:56,740 Tā nosaukums ir strukturēta vaicājumu valoda, 17 00:00:56,740 --> 00:00:58,740 [Strukturēts Query Language] 18 00:00:58,740 --> 00:01:00,740 vai ko es atsaucos uz kā SQL. 19 00:01:00,740 --> 00:01:05,100 >> Tagad, [Se-quel], vai SQL, nav programmēšanas valoda, 20 00:01:05,100 --> 00:01:08,580 bet tā vietā, tas ir valoda, kas nodrošina standarta komandu kopu 21 00:01:08,580 --> 00:01:13,520 lai nolasītu un manipulēt datus no dažādiem datu bāzu vadības sistēmu. 22 00:01:13,520 --> 00:01:17,630 Lai CS50, mēs iet pār četrām pamata komandas: 23 00:01:17,630 --> 00:01:21,210 izvēlieties, ievietot, atjaunināt un dzēst. 24 00:01:21,210 --> 00:01:26,230 Turklāt, mēs izmantot datubāzes web interfeisu sauc phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 kas uzstādīta uz ierīces rakstīt mūsu SQL paziņojumus. 26 00:01:30,830 --> 00:01:33,050 Tātad, lai palīdzētu jums atcerēties šīs komandas, 27 00:01:33,050 --> 00:01:37,080 Esmu ko daži cupcakes skapī, lai palīdzētu ar mūsu scenārijiem. 28 00:01:39,650 --> 00:01:42,210 Say jums ir cupcake datubāzē, 29 00:01:42,210 --> 00:01:44,490 kur glabāt visu informāciju par jūsu cupcakes. 30 00:01:44,490 --> 00:01:48,220 Tagad, datubāzes var saturēt daudzas tabulas 31 00:01:48,220 --> 00:01:50,950 un tabulas paši var saturēt daudz kolonnu. 32 00:01:50,950 --> 00:01:57,020 Iekšā mūsu Cupcake datubāzē, mums ir tabula sauc cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Šī tabula tiks izmantota, lai uzglabātu visu informāciju par cupcakes 34 00:02:00,500 --> 00:02:02,990 kas ir, labi, savā skapī. 35 00:02:02,990 --> 00:02:07,770 Kolonnas, kas ir iekšā jūsu galda pārstāvēt atribūtus cupcake. 36 00:02:07,770 --> 00:02:14,560 Piemēram, cupcake_cupboard s slejas ir 37 00:02:14,560 --> 00:02:15,920 Kūka ID, CakeType, CakeColor, un CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Šī logisku rakstāmmašīnu kolonna tiek izmantota, lai noteiktu, vai kūka ir jauki, vai nav jauki. 39 00:02:23,040 --> 00:02:26,560 Mēs esam gatavojas sākt ar rakstīt SELECT. 40 00:02:26,560 --> 00:02:32,160 Izvēlieties pārskatus, tiek izmantoti, lai iegūtu datus par konkrētu datu bāzes tabulā. 41 00:02:32,160 --> 00:02:34,890 Šajā scenārijā, mēs vēlamies zināt visu 42 00:02:34,890 --> 00:02:39,080 par visu cupcakes, kas pastāv mūsu skapī. 43 00:02:39,080 --> 00:02:48,670 Sintakse to izdarīt ir "Select" Space Star, vai *, telpa no kosmosa mūsu galda, 44 00:02:48,670 --> 00:02:52,050 kas ir cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Iesim uz priekšu un izpildīt to. 46 00:02:56,670 --> 00:03:00,140 >> Kā mēs varam redzēt, tie visi cupcakes mūsu skapī. 47 00:03:00,140 --> 00:03:05,110 Tas ir svarīgi atzīmēt, ka *, vai zvaigznīte, ir savvaļas karti raksturs 48 00:03:05,110 --> 00:03:08,830 kas apzīmē apkopošanu visu kādu tabulas kolonnām. 49 00:03:08,830 --> 00:03:13,650 Parasti, mēs varam piekļūt konkrētu kolonnu vai kolonnas 50 00:03:13,650 --> 00:03:16,950 aizstājot * ar faktisko kolonnas nosaukuma. 51 00:03:16,950 --> 00:03:21,220 Ja mēs gribam vairākas kolonnas, bet ne visi, mēs varam sasniegt 52 00:03:21,220 --> 00:03:25,620 rakstot kolonnu nosaukumus norobežojošu katru kolonnu ar komatu. 53 00:03:25,620 --> 00:03:28,620 Piemēram, pieņemsim tikai paņemt CakeId un CakeType kas cupcake_cupboard tabulā. 54 00:03:28,620 --> 00:03:38,370 Sintakse, lai to paveiktu, ir: SELECT telpa CakeID komats 55 00:03:38,370 --> 00:03:44,370 CakeType telpu no mūsu galda, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Iesim uz priekšu un izpildīt to. 57 00:03:49,340 --> 00:03:52,670 Un šeit, mums tagad ir tikai divas kolonnas mēs noteikti 58 00:03:52,670 --> 00:03:54,670 katram cupcake mūsu skapī. 59 00:03:54,670 --> 00:03:57,710 Mēs varam arī uzlabot mūsu vaicājuma rezultātus, norādot 60 00:03:57,710 --> 00:04:00,910 "Ja" klauzula tieši pēc tabulas nosaukuma. 61 00:04:02,000 --> 00:04:05,410 Piemēram, šķiet, ka cupcake mūsu skapī 62 00:04:05,410 --> 00:04:08,660 tas ir, labi, ne tik jauka meklē. 63 00:04:08,660 --> 00:04:13,950 Pieņemsim izrēķināt visus cupcakes mūsu skapī, kas ir, labi, ne tik jauki meklē 64 00:04:13,950 --> 00:04:16,110 izmantojot "Ja" klauzulu. 65 00:04:16,110 --> 00:04:26,390 Sintakse, lai to paveiktu, ir: SELECT telpa * telpu no kosmosa cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 telpa, kur telpa mūsu nosacītu kolonnu, kas šajā gadījumā CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 un Būla vērtību False. 68 00:04:36,900 --> 00:04:42,750 Tas ir svarīgi atzīmēt, ka, ja jūs izmantojat virknes, Jums ir jāpievieno to vienu pēdiņām. 69 00:04:42,750 --> 00:04:49,620 Tas attiecas uz visiem SQL stīgas, vai, SQL datu bāzes ziņā, variants rakstzīmes 70 00:04:49,620 --> 00:04:51,620 pazīstams kā varchar datatype. 71 00:04:51,620 --> 00:04:57,660 Šajā gadījumā, mēs izmantojam patiess vai nepatiess, kas ir Būla vērtība un nevis virkne. 72 00:04:59,120 --> 00:05:00,660 Iesim uz priekšu un izpildīt šo komandu. 73 00:05:00,660 --> 00:05:05,340 >> Lo un redzi, tas ir gadījums, ka mums ir 1 šokolāde 74 00:05:05,340 --> 00:05:07,920 ne tik jauki cupcake mūsu skapī. 75 00:05:09,620 --> 00:05:11,460 Tālāk, mēs ejam, lai rakstītu ievietot paziņojumu. 76 00:05:11,460 --> 00:05:15,560 Ievietot pārskati tiek izmantoti, lai ievietotu vai pievienot 77 00:05:15,560 --> 00:05:17,770 papildu rindas datus savā datu bāzē tabulā. 78 00:05:17,770 --> 00:05:23,160 Apmeklējot mūsu scenārija, pieņemsim, ka mēs esam tikko veikts pavisam jaunu cupcake. 79 00:05:25,910 --> 00:05:30,080 Tā kā mēs esam ļoti organizēti cupcake ēdāji, mēs ejam, lai ir ievietot šo jauno cupcake 80 00:05:30,080 --> 00:05:32,330 mūsu cupcake_cupboard tabulā. 81 00:05:32,330 --> 00:05:40,690 Sintakse, lai to paveiktu, ir šāds: Ievietojiet atstarpi kosmosā mūsu galda, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, telpa (, 83 00:05:46,830 --> 00:05:51,060 un šeit mēs norādīt kolonnas nosaukumi, norobežojusi ar komatu, 84 00:05:51,060 --> 00:05:59,790 CakeType komats CakeColor komatiem CakeIsNice) telpā. 85 00:05:59,790 --> 00:06:06,540 Pēc tam mēs rakstīt vārdu Vērtības telpu (un šeit 86 00:06:06,540 --> 00:06:12,170 mēs ievadiet vērtību katrai kolonnai attiecīgi, arī jānorobežo ar komatu. 87 00:06:12,170 --> 00:06:17,830 Viena citēju, jo tie visi ir VARCHAR vērtības mēs surround tiem vienā pēdiņām, 88 00:06:17,830 --> 00:06:26,780 Zemesriekstu sviests "Comma" gaiši brūnā "komats True. 89 00:06:26,780 --> 00:06:30,480 Tagad, tas ir svarīgi dot katrā rindā unikālu numuru, lai identificētu sevi. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing kolonnu piedāvā šo kā 91 00:06:33,660 --> 00:06:37,410  "Nav divu paši ID nekad nevar pastāvēt šajā tabulā." 92 00:06:37,410 --> 00:06:39,480 Iesim uz priekšu un izpildīt. 93 00:06:39,480 --> 00:06:45,380 Tur mums iet, visu organizētas. 94 00:06:49,720 --> 00:06:52,100 >> Nākamais SQL ka mēs rakstīsim, ir atjauninājums paziņojums. 95 00:06:52,100 --> 00:06:55,650 Atjauninājums pārskatu var izmantot, lai mainītu datus laikā kolonnā 96 00:06:55,650 --> 00:06:58,440 par jebkuru esošo rindu savā datu bāzē tabulā. 97 00:06:59,670 --> 00:07:03,420 Agrāk mūsu scenārijā, izmantojot SELECT, mēs noteikti Cupcake 98 00:07:03,420 --> 00:07:08,300 ietvaros mūsu cupcake_cupboard galda kura CakeIsNice vērtība ir nepatiesa. 99 00:07:08,300 --> 00:07:12,050 Pieņemsim, ka, kamēr mūsu zemesriekstu sviests cupcake bija krāsnī, 100 00:07:12,050 --> 00:07:15,790 mēs, mūsu ne-tik-jauks cupcake ļoti jauki. 101 00:07:18,020 --> 00:07:22,240 Būt tik ārkārtīgi organizēts, mēs vēlamies, lai mūsu cupcake lai atspoguļotu šo vērtību 102 00:07:22,240 --> 00:07:24,240 mūsu cupcake_cupboard tabulā. 103 00:07:24,240 --> 00:07:28,710 Tāpēc, pieņemsim atjaunināt mūsu šokolādes cupcake datu bāzē, lai atspoguļotu šo. 104 00:07:28,710 --> 00:07:39,720 Sintakse ir: UPDATE telpa mūsu galda, cupcake_cupboard, atstarpe SET telpa 105 00:07:39,720 --> 00:07:44,240 kolonna, ka mēs vēlamies mainīt, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Tad šeit mēs vieta mūsu jauno vērtību True telpu. 107 00:07:49,210 --> 00:07:54,290 Tagad, jo mēs nevēlamies, lai atjauninātu visas rindas ar šo vērtību, 108 00:07:54,290 --> 00:07:57,400 Mēs vēlamies, lai nodrošinātu "Kur" klauzulu, kas precīzi noteikt mūs 109 00:07:57,400 --> 00:07:59,830 uz precīzu rindu ka mēs gribam mainīt. 110 00:07:59,830 --> 00:08:03,690 Šajā gadījumā, mēs zinām, ka ir tikai viens Cupcake 111 00:08:03,690 --> 00:08:06,670 kas ir CakeIsNice vērtība False. 112 00:08:06,670 --> 00:08:11,030 Turklāt mēs arī nodrošināt, ka mēs atjaunināt pareizo rindu 113 00:08:11,030 --> 00:08:13,030 izmantojot "un" klauzulu. 114 00:08:14,340 --> 00:08:17,270 Mēs izmantojam "un" klauzulu, lai precizētu mūsu vaicājumu tālāk. 115 00:08:17,270 --> 00:08:20,380 Šajā gadījumā, jo mēs zinām, ka cupcake ir šokolādes, 116 00:08:20,380 --> 00:08:23,160 mēs izmantosim šo CakeType kolonnu. 117 00:08:23,160 --> 00:08:31,500 Ja vietas mūsu nosacīta kolonna telpa CakeIsNice telpa = False 118 00:08:31,500 --> 00:08:38,330 un kosmosa CakeType = 'šokolāde. " 119 00:08:38,330 --> 00:08:41,880 Tātad, liekot to visu kopā, šis atjauninājums paziņojumā teikts 120 00:08:41,880 --> 00:08:44,670 atrast visu cupcakes mūsu cupcake skapī, 121 00:08:44,670 --> 00:08:50,520 un ja ir cupcake, kura kolonna CakeIsNice satur vērtību False 122 00:08:50,520 --> 00:08:54,130 un CakeType satur vērtību šokolāde, 123 00:08:54,130 --> 00:08:58,240 Mēs vēlamies aktualizēt īpašās rindas CakeIsNice vērtību True. 124 00:08:58,240 --> 00:09:01,140 Tātad, pieņemsim iet uz priekšu un izpildīt paziņojumu. 125 00:09:03,860 --> 00:09:05,860 Un tagad mēs esam organizēti. 126 00:09:06,650 --> 00:09:09,220 >> Tas viss no cupcakes runāt lika man mazliet izsalcis. 127 00:09:09,220 --> 00:09:11,360 Es domāju, ka man vajadzētu palīdzēt sevi ar vienu. 128 00:09:11,360 --> 00:09:17,670 Bet, ja es tiešām ēst šo cupcake, es būtu vismaz arī noņemt tās pastāvēšanu 129 00:09:17,670 --> 00:09:19,670  no mūsu cupcake_cupboard galda. 130 00:09:20,650 --> 00:09:22,590 Lai to izdarītu, mēs izmantosim "Delete" paziņojumu. 131 00:09:22,590 --> 00:09:27,400 "Dzēst" paziņojums var tikt izmantoti, lai novērstu visus vai dažus rindas no tabulas. 132 00:09:27,400 --> 00:09:29,920 Ja vēlaties, lai novērstu kādu konkrētu rindu no tabulas, 133 00:09:29,920 --> 00:09:34,360 tad jums ir jānodrošina "Kur" klauzulu, tādējādi norādot kolonnu 134 00:09:34,360 --> 00:09:37,660 kas būtu unikāli rindu, kuru vēlaties noņemt. 135 00:09:37,660 --> 00:09:47,370 Tas ir sintakse: Pārsvītrot no kosmosa mūsu galda, cupcake_cupboard, telpa. 136 00:09:47,370 --> 00:09:51,760 Tagad, šajā brīdī, kad jums ir tik tālu savā dzēst paziņojumā 137 00:09:51,760 --> 00:09:54,240 Jūs vēlaties būt ļoti uzmanīgiem. 138 00:09:54,240 --> 00:09:59,970 Piemēram, ja es vēlos, lai palaistu šo vaicājumu kā nesniedzot kādu "Kur" klauzulu 139 00:09:59,970 --> 00:10:04,500 Es zaudētu visus datus šajā cupcake_cupboard tabulā, 140 00:10:04,500 --> 00:10:09,590 bet tāpēc, ka es jau zinu, ka mana kūka ID ir unikāls, es ņemšu izmantot 141 00:10:09,590 --> 00:10:12,410 Red Velvet kūka ID mana ", kur" klauzulu. 142 00:10:14,550 --> 00:10:20,670 Ja vietas mūsu kolonna, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Jo tas ir veselais skaitlis nav nepieciešams, lai surround to vienu pēdiņām. 144 00:10:25,010 --> 00:10:27,020 Tātad, pieņemsim izpildīt paziņojumu. 145 00:10:33,560 --> 00:10:35,990 Nu, tagad, ka mēs esam noslaucīja pastāv šis cupcake 146 00:10:35,990 --> 00:10:40,360 no mūsu cupcake_cupboard galda, mums ir tikai viena lieta kreiso: 147 00:10:41,680 --> 00:10:43,680 Padarītu to izzūd. 148 00:10:43,680 --> 00:10:46,990 Es esmu Kristofers Bērtuli. Tas ir CS50.