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 [THIS IS CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Takže, programátori používajú databázy ako nástroj pre ukladanie a organizovanie 5 00:00:11,620 --> 00:00:13,620 naše pretrvávajúce údaje v tabuľkách. 6 00:00:13,620 --> 00:00:18,960 To znamená, že vaše dáta sú uložené na non-volatile mediánov ako je napríklad pevný disk, 7 00:00:18,960 --> 00:00:22,940 a dokonca aj keď je počítač vypnutý, dáta sa stále neporušené. 8 00:00:22,940 --> 00:00:29,530 A, ako programátori, naše programy využívajú databázy pre scenáre, ako je ukladanie 9 00:00:29,530 --> 00:00:32,890 Informácie o užívateľovi z webových formulárov, vzhliadol zásob, 10 00:00:32,890 --> 00:00:36,210 alebo aktualizáciu informácií o tom, čo stránky zobrazujú. 11 00:00:37,150 --> 00:00:40,070 Ale ako vlastne pracovať s našou databázou, 12 00:00:40,070 --> 00:00:43,150 alebo čo používame na čítanie, ukladanie, mazanie, 13 00:00:43,150 --> 00:00:46,070 a aktualizovať svoje údaje v rámci týchto databázových tabuliek? 14 00:00:47,280 --> 00:00:49,700 No, odpoveď je, že používame špeciálny typ databázového jazyka 15 00:00:49,700 --> 00:00:53,400 ktorá spolupracuje priamo s našimi databázových tabuliek. 16 00:00:53,400 --> 00:00:56,740 Je to meno je Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 alebo čo Mám na mysli, ako SQL. 19 00:01:00,740 --> 00:01:05,100 >> Teraz, [Se-Quel], alebo SQL, nie je programovací jazyk, 20 00:01:05,100 --> 00:01:08,580 ale namiesto toho, je to jazyk, ktorý poskytuje štandardnú sadu príkazov 21 00:01:08,580 --> 00:01:13,520 načítať a manipulovať s dátami z rôznych systémov pre správu databáz. 22 00:01:13,520 --> 00:01:17,630 Na účely CS50, pôjdeme cez štyri základné príkazy: 23 00:01:17,630 --> 00:01:21,210 vyberte, vložiť, aktualizovať a mazať. 24 00:01:21,210 --> 00:01:26,230 Ďalej budeme používať databázu webové rozhranie phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 ktoré inštalovaný na zariadení písať naše príkazy SQL. 26 00:01:30,830 --> 00:01:33,050 Tak, aby vám pomôže si tieto príkazy, 27 00:01:33,050 --> 00:01:37,080 Priniesol som nejaké koláčiky v skrini, aby vám pomohol s našimi scenárov. 28 00:01:39,650 --> 00:01:42,210 Povedzme, že máte košíček na databázu, 29 00:01:42,210 --> 00:01:44,490 kam uložiť všetky informácie o vašom cupcakes. 30 00:01:44,490 --> 00:01:48,220 Teraz, môže databáza obsahovať veľa tabuliek 31 00:01:48,220 --> 00:01:50,950 a tabuľky sami môžu obsahovať veľa stĺpcov. 32 00:01:50,950 --> 00:01:57,020 Vnútri našej košíček databáze, máme tabuľku s názvom cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Táto tabuľka bude použitá na ukladanie všetkých informácií o cupcakes 34 00:02:00,500 --> 00:02:02,990 ktoré sú, dobre, vo svojej skrini. 35 00:02:02,990 --> 00:02:07,770 Stĺpce, ktoré sú vo vnútri tabuľky predstavujú atribúty košíček. 36 00:02:07,770 --> 00:02:14,560 Napríklad, je cupcake_cupboard stĺpy sú 37 00:02:14,560 --> 00:02:15,920 Cake ID, CakeType, CakeColor, a CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Tento boolean-napísaný stĺpec sa používa na určenie, či je koláč pekný alebo nie pekné. 39 00:02:23,040 --> 00:02:26,560 Budeme začať s písaním príkazu SELECT. 40 00:02:26,560 --> 00:02:32,160 Vyberte príkazy sa používajú na načítanie dát z určitého databázovej tabuľky. 41 00:02:32,160 --> 00:02:34,890 V tomto scenári, chceme vedieť všetko 42 00:02:34,890 --> 00:02:39,080 o všetkých cupcakes, ktoré existujú v našej skrini. 43 00:02:39,080 --> 00:02:48,670 Syntax k tomu je "Select" space star, alebo *, priestor od priestoru nášho stola, 44 00:02:48,670 --> 00:02:52,050 ktorý je cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Poďme ďalej a vykonať,. 46 00:02:56,670 --> 00:03:00,140 >> Ako môžeme vidieť, to všetko sú cupcakes v našej skrini. 47 00:03:00,140 --> 00:03:05,110 Je dôležité si uvedomiť, že *, alebo hviezdičku, je divoká karta znak 48 00:03:05,110 --> 00:03:08,830 , Ktorý označuje zhromažďovanie všetkých stĺpcov nejaké tabuľke. 49 00:03:08,830 --> 00:03:13,650 Normálne, môžeme k určitému stĺpec alebo stĺpce 50 00:03:13,650 --> 00:03:16,950 nahradením * so skutočným názov stĺpca. 51 00:03:16,950 --> 00:03:21,220 Ak chceme viac stĺpcov, ale nie všetky, môžeme dosiahnuť 52 00:03:21,220 --> 00:03:25,620 písaním názvy stĺpcov sa vymedzujú jednotlivé stĺpce čiarkou. 53 00:03:25,620 --> 00:03:28,620 Napríklad, poďme nezískavajú CakeId a CakeType v cupcake_cupboard tabuľke. 54 00:03:28,620 --> 00:03:38,370 Syntax k tomu je: SELECT priestor CakeID čiarkou 55 00:03:38,370 --> 00:03:44,370 CakeType priestor od nášho stola, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Poďme ďalej a spustiť to. 57 00:03:49,340 --> 00:03:52,670 A tu, teraz len dva stĺpce sa uvedené 58 00:03:52,670 --> 00:03:54,670 pre každý druh cukroví v našej skrinke. 59 00:03:54,670 --> 00:03:57,710 Môžeme tiež spresniť naše výsledky dotazu zadaním 60 00:03:57,710 --> 00:04:00,910 "Tam, kde" klauzula tesne po názov tabuľky. 61 00:04:02,000 --> 00:04:05,410 Napríklad, zdá sa, že cupcake v našej skrini 62 00:04:05,410 --> 00:04:08,660 že je dobre, nie tak pekne vyzerajúce. 63 00:04:08,660 --> 00:04:13,950 Poďme zistiť všetky koláčiky v našej skrini, ktoré sú, no, nie tak pekne vyzerajúce 64 00:04:13,950 --> 00:04:16,110 pomocou "Kde" klauzula. 65 00:04:16,110 --> 00:04:26,390 Syntax k tomu je: SELECT * space space z vesmíru cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 priestor, kde sa priestor našej podmienené stĺpec, v tomto prípade CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 a boolean hodnotu False. 68 00:04:36,900 --> 00:04:42,750 Je dôležité si uvedomiť, že ak používate reťazca, je nutné uzavrieť do jednoduchých úvodzoviek. 69 00:04:42,750 --> 00:04:49,620 To platí pre všetky reťazce v SQL, alebo, v databázových hľadiska SQL, variant znakov 70 00:04:49,620 --> 00:04:51,620 známy ako varchar dátový typ. 71 00:04:51,620 --> 00:04:57,660 V tomto prípade sa používa pravdivé alebo, čo je logická hodnota, a nie reťazec. 72 00:04:59,120 --> 00:05:00,660 Poďme ďalej a spustite tento príkaz. 73 00:05:00,660 --> 00:05:05,340 >> A hľa, je to pravda, že máme 1 čokoládu 74 00:05:05,340 --> 00:05:07,920 nie tak pekný košíček v našom skrine. 75 00:05:09,620 --> 00:05:11,460 Ďalej budeme písať INSERT. 76 00:05:11,460 --> 00:05:15,560 INSERT sa používa na vloženie alebo pridanie 77 00:05:15,560 --> 00:05:17,770 ďalšie riadky dát do databázovej tabuľky. 78 00:05:17,770 --> 00:05:23,160 Prehodnotenie náš scenár, predpokladajme, že sme práve urobil zbrusu nový košíček. 79 00:05:25,910 --> 00:05:30,080 Vzhľadom k tomu, sme veľmi organizovaná cupcake jedáci, budeme musieť vložiť tento nový košíček 80 00:05:30,080 --> 00:05:32,330 v našom cupcake_cupboard tabuľke. 81 00:05:32,330 --> 00:05:40,690 Syntax to je to: Vložiť medzeru do priestoru nášho stola, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, priestor (, 83 00:05:46,830 --> 00:05:51,060 a tu zadať stĺpca názvy, oddeľujú čiarkou, 84 00:05:51,060 --> 00:05:59,790 CakeType čiarka CakeColor čiarka CakeIsNice) priestor. 85 00:05:59,790 --> 00:06:06,540 Nasledovať toto, my píšeme slovo VALUES priestor (a tu 86 00:06:06,540 --> 00:06:12,170 zadáme hodnotu pre každý stĺpec, respektíve, aj oddeľujú čiarkou. 87 00:06:12,170 --> 00:06:17,830 Apostrof, pretože sú všetky VARCHAR hodnoty budeme obklopujú v jednoduchých úvodzovkách, 88 00:06:17,830 --> 00:06:26,780 Arašidové maslo "čiarku" svetlo hnedá "čiarka True. 89 00:06:26,780 --> 00:06:30,480 Teraz je dôležité, aby každý riadok jedinečné číslo na identifikáciu seba. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing stĺpec obsahuje toto ako 91 00:06:33,660 --> 00:06:37,410  "Žiadne dva rovnaké ID môže niekedy existovať v tejto tabuľke." 92 00:06:37,410 --> 00:06:39,480 Poďme ďalej a spustiť. 93 00:06:39,480 --> 00:06:45,380 Tam ideme, všetky organizované. 94 00:06:49,720 --> 00:06:52,100 >> Ďalšie SQL, ktorý budeme písať, je aktualizácia vyhlásenie. 95 00:06:52,100 --> 00:06:55,650 Aktualizácia vyhlásenie môže byť použitý k úprave dát v rámci stĺpca 96 00:06:55,650 --> 00:06:58,440 pre všetky existujúce riadok v databázovej tabuľke. 97 00:06:59,670 --> 00:07:03,420 Predtým v našom scenári, pomocou príkazu SELECT, sme identifikovali cupcake 98 00:07:03,420 --> 00:07:08,300 v rámci našej cupcake_cupboard stola, ktorého CakeIsNice hodnota bola False. 99 00:07:08,300 --> 00:07:12,050 Predpokladajme, že zatiaľ čo naše arašidové maslo cupcake je v rúre, 100 00:07:12,050 --> 00:07:15,790 sme naše nie-tak-pekný cupcake veľmi pekné. 101 00:07:18,020 --> 00:07:22,240 Byť tak výnimočne organizuje, chceme, aby naše cupcake, aby odrážal túto hodnotu 102 00:07:22,240 --> 00:07:24,240 v našom cupcake_cupboard tabuľke. 103 00:07:24,240 --> 00:07:28,710 Preto, poďme aktualizovať náš čokoládový košíček v databáze, aby odrážala toto. 104 00:07:28,710 --> 00:07:39,720 Syntax je: UPDATE space náš stôl, cupcake_cupboard, priestor SET space 105 00:07:39,720 --> 00:07:44,240 stĺpec, ktorý chceme zmeniť, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Potom tu máme miesto našu novú hodnotu Pravda priestor. 107 00:07:49,210 --> 00:07:54,290 Teraz, pretože nechceme, aby aktualizovať všetky riadky s touto hodnotou, 108 00:07:54,290 --> 00:07:57,400 Chceme poskytnúť ", kde" doložku, ktorá bude presne určiť nás 109 00:07:57,400 --> 00:07:59,830 k presnému riadku, ktorý chceme upraviť. 110 00:07:59,830 --> 00:08:03,690 V tomto prípade, vieme, že existuje len jeden košíček 111 00:08:03,690 --> 00:08:06,670 ktorá má CakeIsNice hodnotu False. 112 00:08:06,670 --> 00:08:11,030 Okrem toho bude tiež zabezpečiť, že sa aktualizácie správny riadok 113 00:08:11,030 --> 00:08:13,030 pomocou "A" klauzula. 114 00:08:14,340 --> 00:08:17,270 Používame "A" klauzula pre upresnenie náš dotaz ďalej. 115 00:08:17,270 --> 00:08:20,380 V tomto prípade, pretože je známe, že je košíček čokoláda, 116 00:08:20,380 --> 00:08:23,160 budeme používať tento CakeType stĺpec. 117 00:08:23,160 --> 00:08:31,500 Kde je priestor našej podmienené stĺpec space CakeIsNice space = False, 118 00:08:31,500 --> 00:08:38,330 a priestor CakeType = 'CHOCOLATE. " 119 00:08:38,330 --> 00:08:41,880 Takže, dávať to všetko dohromady, táto aktualizácia vyhlásení sa uvádza, 120 00:08:41,880 --> 00:08:44,670 nájsť všetky koláčiky v našom cupcake skriňa, 121 00:08:44,670 --> 00:08:50,520 a v prípade, že je košíček ktorého stĺpec CakeIsNice obsahuje hodnotu False 122 00:08:50,520 --> 00:08:54,130 a CakeType obsahuje hodnotu CHOCOLATE, 123 00:08:54,130 --> 00:08:58,240 chceme aktualizovať konkrétne riadky CakeIsNice hodnotu True. 124 00:08:58,240 --> 00:09:01,140 Takže, poďme ďalej a spustiť príkaz. 125 00:09:03,860 --> 00:09:05,860 A teraz, že organizovaný sme. 126 00:09:06,650 --> 00:09:09,220 >> Všetky tie reči o cupcakes urobil ma trochu hlad. 127 00:09:09,220 --> 00:09:11,360 Myslím, že by som mal pomôcť k jednému. 128 00:09:11,360 --> 00:09:17,670 Ale keď som vlastne jesť tento košíček, mal som aspoň odstrániť tiež jej existenciu 129 00:09:17,670 --> 00:09:19,670  z našej cupcake_cupboard tabuľky. 130 00:09:20,650 --> 00:09:22,590 Ak to chcete, budeme používať "Delete" vyhlásenie. 131 00:09:22,590 --> 00:09:27,400 "Zmazať" vyhlásenie môže byť použitý na odstránenie všetkých alebo niektorých riadky z tabuľky. 132 00:09:27,400 --> 00:09:29,920 Ak chcete odstrániť niektoré špecifické riadok z tabuľky, 133 00:09:29,920 --> 00:09:34,360 potom musíte zadať "kde" klauzula, tak určenie stĺpec 134 00:09:34,360 --> 00:09:37,660 ktoré by mali byť jedinečné riadku, ktorý si prajete odstrániť. 135 00:09:37,660 --> 00:09:47,370 To je syntaxe: DELETE FROM priestor vesmíru náš stôl, cupcake_cupboard, priestor. 136 00:09:47,370 --> 00:09:51,760 Teraz, v tomto momente, ak ste tak ďaleko vo svojom DELETE 137 00:09:51,760 --> 00:09:54,240 Ak chcete byť veľmi opatrní. 138 00:09:54,240 --> 00:09:59,970 Napríklad, keď chcem spustiť tento dotaz, ako je bez poskytovania určitej "kde" klauzula 139 00:09:59,970 --> 00:10:04,500 Ja by som stratiť všetky dáta v tejto tabuľke cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 ale preto, že už viem, že moje torty ID sú jedinečné, budem používať 141 00:10:09,590 --> 00:10:12,410 Red Velvet tortu ID pre môj ", kde" klauzula. 142 00:10:14,550 --> 00:10:20,670 Kde je priestor našej stĺpec, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Vzhľadom k tomu, to je celé číslo, ktoré nie je potrebné, aby ho obklopujú v apostrofy. 144 00:10:25,010 --> 00:10:27,020 Takže, poďme spustiť príkaz. 145 00:10:33,560 --> 00:10:35,990 No, teraz, keď sme si otrel existenciu tohto košíček 146 00:10:35,990 --> 00:10:40,360 z našej cupcake_cupboard stola, máme len jednu vec ľavej: 147 00:10:41,680 --> 00:10:43,680 Či je to zmizne. 148 00:10:43,680 --> 00:10:46,990 Som Christopher Bartolomeja. To je CS50.