1 00:00:00,000 --> 00:00:03,493 >> [Prehrávanie hudby] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: V našich videí na témy, vývoj webových aplikácií, 4 00:00:07,100 --> 00:00:10,560 sme sa zmienil koncepciu databázy niekoľkokrát, že jo? 5 00:00:10,560 --> 00:00:12,700 Takže databázy ste pravdepodobne poznať z 6 00:00:12,700 --> 00:00:15,780 hovoria, pomocou programu Microsoft Excel alebo Google Spreadsheets. 7 00:00:15,780 --> 00:00:20,650 Je to naozaj len organizovaný sada tabuliek, riadkov a stĺpcov. 8 00:00:20,650 --> 00:00:23,140 >> A je databáza, kde našich webových stránok predajne 9 00:00:23,140 --> 00:00:26,760 informácie, ktoré sú dôležité na našich webových stránkach pracovať správne. 10 00:00:26,760 --> 00:00:30,150 Opäť platí, že skutočne spoločný príkladom je ukladanie užívateľských mien a hesiel 11 00:00:30,150 --> 00:00:32,824 v databáze, tak, že keď prihlásenie užívateľa do našich webových stránkach, 12 00:00:32,824 --> 00:00:36,690 databázy môže byť dopytované vidieť v prípade, že užívateľ existuje v databáze. 13 00:00:36,690 --> 00:00:39,260 A ak sú, overiť, že Ich heslo je správne. 14 00:00:39,260 --> 00:00:43,420 A ak je ich heslo je správne, potom im môžeme dať čokoľvek strana 15 00:00:43,420 --> 00:00:45,370 sú to požiada. 16 00:00:45,370 --> 00:00:48,590 >> Takže ste pravdepodobne opäť oboznameny s touto myšlienkou z programu Excel alebo Google 17 00:00:48,590 --> 00:00:49,430 Tabuliek. 18 00:00:49,430 --> 00:00:52,980 Máme databáz, stoly, riadky a stĺpce. 19 00:00:52,980 --> 00:00:56,450 A to je naozaj druh základného súboru 20 00:00:56,450 --> 00:00:58,470 hierarchického členenie tu. 21 00:00:58,470 --> 00:00:59,800 Takže tu je tabuľkový procesor Excel. 22 00:00:59,800 --> 00:01:02,640 A ak ste niekedy otvorili alebo iný podobný program 23 00:01:02,640 --> 00:01:06,780 viete, že to tu rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 To sú stĺpy. 25 00:01:08,760 --> 00:01:11,790 >> Možno, že tu dole, aj keď môže byť Nie je túto funkciu používať strašne much-- 26 00:01:11,790 --> 00:01:15,370 Budem zoom in-- máme Táto myšlienka listu. 27 00:01:15,370 --> 00:01:17,930 Takže možno týchto listov, ak Aj striedavo tam a späť, 28 00:01:17,930 --> 00:01:21,600 sú rôzne tabuľky, ktoré existujú v mojej databáze. 29 00:01:21,600 --> 00:01:25,210 A ak budeme pokračovať príklad všetky tá cesta, názov tejto databázy 30 00:01:25,210 --> 00:01:26,940 je Kniha 1. 31 00:01:26,940 --> 00:01:28,710 Možno mám Kniha 2 a 3 knihy. 32 00:01:28,710 --> 00:01:33,270 Takže každý súbor Excel je databázy, každý list je tabuľka, 33 00:01:33,270 --> 00:01:39,530 a vo vnútri každej tabuľky mám Táto myšlienka riadkov a stĺpcov. 34 00:01:39,530 --> 00:01:41,900 >> Tak ako som sa pracovať s touto databázou? 35 00:01:41,900 --> 00:01:43,630 Ako získam informácie z neho? 36 00:01:43,630 --> 00:01:47,540 No tam je jazyk s názvom SQL-- ktoré som zvyčajne len zavolať Sequel-- 37 00:01:47,540 --> 00:01:50,010 a to stojí pre Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 A to je programovací jazyk, ale je to pomerne obmedzené programovania 39 00:01:52,981 --> 00:01:53,480 Jazyk. 40 00:01:53,480 --> 00:01:56,407 Nie je to úplne ako ostatní že sme pracovali s. 41 00:01:56,407 --> 00:01:58,240 Ale účel tohto programovací jazyk 42 00:01:58,240 --> 00:02:01,570 je dotaz databázy, aby opýtajte sa informácie z databázy, 43 00:02:01,570 --> 00:02:04,480 nájdete informácie v databázu, a tak ďalej. 44 00:02:04,480 --> 00:02:08,449 >> Tiež sme v CS50-- a je to veľmi spoločná platforma, je to len MySQL. 45 00:02:08,449 --> 00:02:10,600 To je to, čo používame v priebehu. 46 00:02:10,600 --> 00:02:12,880 Je to open source platforma, ktorá stanovuje 47 00:02:12,880 --> 00:02:16,732 takzvaný relačné database-- databázy, efektívne. 48 00:02:16,732 --> 00:02:18,440 Nepotrebujeme, aby si do prílišných podrobností 49 00:02:18,440 --> 00:02:20,930 na to, čo relačnej databázy. 50 00:02:20,930 --> 00:02:24,650 Ale jazyk SQL je veľmi zbehlý v práci 51 00:02:24,650 --> 00:02:29,760 s MySQL a iné podobné štýly relačných databáz. 52 00:02:29,760 --> 00:02:34,010 >> A mnoho inštalácia MySQL prísť s niečím 53 00:02:34,010 --> 00:02:37,760 volal phpMyAdmin, ktorý je grafické užívateľské 54 00:02:37,760 --> 00:02:40,970 interface-- a GUI-- ktorý robí to trochu viac 55 00:02:40,970 --> 00:02:44,410 užívateľsky prívetivý spustiť databázové dotazy, 56 00:02:44,410 --> 00:02:48,980 preto, že databázy nie sú práve používané pokročilými programátorov, že jo? 57 00:02:48,980 --> 00:02:51,510 Niekedy tam sú Tieto malé a stredné podniky, 58 00:02:51,510 --> 00:02:53,900 a oni si nemôžu dovoliť najať tím programátorov, 59 00:02:53,900 --> 00:02:56,700 ale stále potrebujete uložiť informácie v databáze. 60 00:02:56,700 --> 00:02:59,300 >> Niečo ako phpMyAdmin je pre niekoho je veľmi ľahké 61 00:02:59,300 --> 00:03:03,630 ktorí nikdy predtým naprogramované vyzdvihnúť a zoznámiť sa s tým, ako 62 00:03:03,630 --> 00:03:07,710 pracovať s databázou. 63 00:03:07,710 --> 00:03:11,800 Problém je v tom, phpMyAdmin, zatiaľ čo to je fantastický nástroj pre učenie 64 00:03:11,800 --> 00:03:14,850 o databázy, je manuálne. 65 00:03:14,850 --> 00:03:18,050 Budeš musieť prihlásiť do to a vykonávať príkazy a typ 66 00:03:18,050 --> 00:03:19,910 veci ručne. 67 00:03:19,910 --> 00:03:23,160 >> A ako vieme z našich Príklad na PHP webové programovanie, 68 00:03:23,160 --> 00:03:26,550 museli ručne urobiť veci na našich webových stránkach, 69 00:03:26,550 --> 00:03:30,970 Ak chceme dynamická, aktívna citlivý webové stránky, možno nie najlepší prístup. 70 00:03:30,970 --> 00:03:33,980 Chceli by sme nájsť spôsob, ako snáď to nejako zautomatizovať. 71 00:03:33,980 --> 00:03:37,864 A SQL nám umožní urobiť. 72 00:03:37,864 --> 00:03:39,780 Takže keď ideme začať pracovať s SQL, 73 00:03:39,780 --> 00:03:41,220 musíme najprv mať Databázy pracovať. 74 00:03:41,220 --> 00:03:42,510 Vytvorenie databázy je niečo, čo pravdepodobne 75 00:03:42,510 --> 00:03:45,350 bude robiť v phpMyAdmin, pretože budete potrebovať len to urobiť raz, 76 00:03:45,350 --> 00:03:49,690 a syntax za to je oveľa priamočiarejšie. 77 00:03:49,690 --> 00:03:51,940 Je to oveľa ľahšie robiť to v grafického užívateľského rozhrania 78 00:03:51,940 --> 00:03:53,520 než písať to ako príkaz. 79 00:03:53,520 --> 00:03:55,186 Príkaz môže dostať trochu ťažkopádne. 80 00:03:55,186 --> 00:03:58,889 Podobne, vytvorenie tabuľky môže dostať trochu ťažkopádne rovnako. 81 00:03:58,889 --> 00:04:01,930 A tak sa veci, ako je vytvorenie databázy a vytvorenie tabuľky, ktorý, ktorú ste 82 00:04:01,930 --> 00:04:06,270 pravdepodobne len robiť once-- raz za tabuľkou, raz za database-- 83 00:04:06,270 --> 00:04:09,040 je to v poriadku na to, že v grafické rozhranie. 84 00:04:09,040 --> 00:04:11,570 V procese vytvorenie tabuľky, budete 85 00:04:11,570 --> 00:04:14,840 Tiež je potrebné zadať všetky stĺpce, ktoré budú v tejto tabuľke. 86 00:04:14,840 --> 00:04:18,149 Aký druh informácií robiť Ak chcete uložiť v tabuľke? 87 00:04:18,149 --> 00:04:24,520 Možno, že meno používateľa a dátum narodenia, heslo, ID číslo používateľa, a možno 88 00:04:24,520 --> 00:04:26,170 mesto a štát, že jo? 89 00:04:26,170 --> 00:04:30,080 >> A zakaždým, keď chceme pridať používateľa do databázy, chceme dostať všetkých šesť 90 00:04:30,080 --> 00:04:31,890 z týchto častí informácií. 91 00:04:31,890 --> 00:04:34,840 A robíme, že pridaním riadkov. 92 00:04:34,840 --> 00:04:37,800 Tak sme najprv vytvoriť databázu, Potom sme sa vytvoriť tabuľku. 93 00:04:37,800 --> 00:04:40,100 V rámci vytvorenia stôl, sme požiadaní 94 00:04:40,100 --> 00:04:44,280 určiť, že každý stĺpec Radi by sme v tejto tabuľke. 95 00:04:44,280 --> 00:04:47,247 A potom, ako začneme pridávať Informácie do databázy 96 00:04:47,247 --> 00:04:49,580 a vyhľadávať v databáze viac generally-- nielen pridávať, 97 00:04:49,580 --> 00:04:51,610 ale všetko ostatné sme do-- budeme zaoberať 98 00:04:51,610 --> 00:04:58,870 s riadky v tabuľke, ktorá je jednou Informácie o užívateľovi z celého setu. 99 00:04:58,870 --> 00:05:03,210 >> Takže každý SQL stĺpec je schopný držanie dát určitého typu dát. 100 00:05:03,210 --> 00:05:06,560 Takže sme nejako eliminovať tento Myšlienka typov PHP, 101 00:05:06,560 --> 00:05:08,747 ale sú späť v SQL. 102 00:05:08,747 --> 00:05:10,080 A je tu veľa dátových typov. 103 00:05:10,080 --> 00:05:13,420 Tu je len 20 z nich, ale to nie je ani všetky z nich. 104 00:05:13,420 --> 00:05:16,240 Takže máme nápady ako INTs-- Integers-- sme asi viete, 105 00:05:16,240 --> 00:05:17,760 že tento stĺpec môže držať celé čísla. 106 00:05:17,760 --> 00:05:21,077 A tam sú variácie thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Možno, že nie vždy potrebovať štyri sústa. 108 00:05:22,660 --> 00:05:26,800 Možno potrebujeme osem bytov, a tak sme Môžete použiť tieto variácie na celé čísla 109 00:05:26,800 --> 00:05:28,510 byť trochu viac priestoru efektívnejšie. 110 00:05:28,510 --> 00:05:31,899 Môžeme si robiť, desatinné čísla, my môže robiť s plávajúcou desatinnou čiarkou. 111 00:05:31,899 --> 00:05:32,940 To sú dosť podobné. 112 00:05:32,940 --> 00:05:34,773 Tam sú niektoré rozdiely, a ak by 113 00:05:34,773 --> 00:05:37,330 vyzerať zriaďuje SQL druh sprievodcu, budete 114 00:05:37,330 --> 00:05:40,670 môže vidieť, čo mierny rozdiely medzi nimi. 115 00:05:40,670 --> 00:05:43,250 >> Možno, že chceme uložiť informácie o dátume a čase. 116 00:05:43,250 --> 00:05:47,047 Možno sme sledovanie keď sa užívateľ pripojil naše webové stránky, 117 00:05:47,047 --> 00:05:48,880 a tak možno chceme mať stĺpec, ktorý je 118 00:05:48,880 --> 00:05:52,820 čas dátum alebo časovú pečiatku, ktorá indikuje, či je užívateľ skutočne 119 00:05:52,820 --> 00:05:54,130 prihlásený. 120 00:05:54,130 --> 00:05:56,132 Môžeme si robiť, geometriou a linestrings. 121 00:05:56,132 --> 00:05:57,340 To je vlastne celkom v pohode. 122 00:05:57,340 --> 00:06:01,410 Mohli by sme zmapovať Zemepisná oblasť použitia 123 00:06:01,410 --> 00:06:05,110 GIS súradníc na pozemok mimo oblasť. 124 00:06:05,110 --> 00:06:08,580 Takže môžete skutočne uložiť taký druh informácií v SQL stĺpci. 125 00:06:08,580 --> 00:06:11,390 >> TEXT je len obrie bodkami texte, možno. 126 00:06:11,390 --> 00:06:12,840 Výpočty sú celkom zaujímavé. 127 00:06:12,840 --> 00:06:16,080 Sú to vlastne existujú v C. Nemáme hovoriť o nich, pretože to nie sú 128 00:06:16,080 --> 00:06:19,110 strašne bežne používajú, aspoň CS50. 129 00:06:19,110 --> 00:06:22,680 Ale je to vymenovaného typu dát, ktorá je schopná pojať obmedzenej hodnoty. 130 00:06:22,680 --> 00:06:25,940 >> Naozaj dobrý príkladom by tu vytvoriť ENUM, kde sa siedmimi 131 00:06:25,940 --> 00:06:29,394 možné hodnoty sú nedele, pondelok, Utorok, streda, štvrtok, piatok, 132 00:06:29,394 --> 00:06:30,060 Sobota, že jo? 133 00:06:30,060 --> 00:06:33,311 Tento typ dát deň Týždeň neexistuje, 134 00:06:33,311 --> 00:06:35,310 ale mohli by sme vytvoriť vymenovaného typu dát, ako 135 00:06:35,310 --> 00:06:39,400 že stĺpec môže len niekedy držať jeden z týchto siedmich možných hodnôt. 136 00:06:39,400 --> 00:06:44,300 Sme vymenované všetky z možných hodnôt. 137 00:06:44,300 --> 00:06:47,630 >> Potom máme CHAR a VARCHAR, A ja som farbu týchto zelených 138 00:06:47,630 --> 00:06:49,505 preto, že sme vlastne bude trvať druhý 139 00:06:49,505 --> 00:06:51,950 hovoriť o rozdiele medzi týmito dvoma vecami. 140 00:06:51,950 --> 00:06:55,780 Takže CHAR, na rozdiel od C kde CHAR bol jediný znak, 141 00:06:55,780 --> 00:07:00,730 v SQL CHAR odkazuje pevné dĺžka reťazca. 142 00:07:00,730 --> 00:07:02,620 A keď sme sa vytvoriť tento stĺpec, sme vlastne 143 00:07:02,620 --> 00:07:05,070 možno určiť dĺžku reťazca. 144 00:07:05,070 --> 00:07:08,080 >> Takže v tomto príklade, mohli by sme povedať, char (10). 145 00:07:08,080 --> 00:07:11,190 To znamená, že každý prvok tohto stĺpca 146 00:07:11,190 --> 00:07:13,910 sa bude skladať z 10 bytov informácií. 147 00:07:13,910 --> 00:07:15,770 Nie viac, nie menej. 148 00:07:15,770 --> 00:07:21,780 Takže keď sa snažíme dať do 15 bit alebo 15 znak element 149 00:07:21,780 --> 00:07:25,340 alebo hodnoty do tohto stĺpca, sme len dostať na prvý 10. 150 00:07:25,340 --> 00:07:27,290 Ak dáme do dvoch znak dlhá hodnota, 151 00:07:27,290 --> 00:07:30,700 budeme mať dva znaky, a potom ôsmich null uhryznutie. 152 00:07:30,700 --> 00:07:34,990 Nikdy byť účinnejšie ako to. 153 00:07:34,990 --> 00:07:37,727 >> Varchar je niečo ako Naša predstava reťazca 154 00:07:37,727 --> 00:07:39,560 že sme oboznámení sa z C, alebo z PHP. 155 00:07:39,560 --> 00:07:40,830 Je to premenná dĺžka reťazca. 156 00:07:40,830 --> 00:07:42,560 A pri vytváraní Tento stĺpec, ktorý ste práve 157 00:07:42,560 --> 00:07:44,860 určiť maximálne možné dĺžky. 158 00:07:44,860 --> 00:07:49,065 Takže možno 99 alebo bežne 255. 159 00:07:49,065 --> 00:07:50,440 To by maximálna dĺžka. 160 00:07:50,440 --> 00:07:52,890 A tak, keď sme boli skladovanie 15 reťazec znakov, 161 00:07:52,890 --> 00:07:56,157 by sme použili 15 bajtov, možno 16 bajtov pre null zakončenie. 162 00:07:56,157 --> 00:07:57,990 Ak by sme boli ukladanie Tri reťazec znakov, 163 00:07:57,990 --> 00:08:01,120 by sme použili tri alebo štyri bajty. 164 00:08:01,120 --> 00:08:03,050 Ale my nebude používať plnú 99. 165 00:08:03,050 --> 00:08:05,190 >> Tak prečo by sme mať oboje? 166 00:08:05,190 --> 00:08:08,210 No, ak budeme potrebovať zistiť, ako dlhá je niečo s VARCHAR, 167 00:08:08,210 --> 00:08:10,680 musíme druhu iterovat cez to rovnako ako sme to urobili v C 168 00:08:10,680 --> 00:08:12,230 a zistiť, kde sa zastaví. 169 00:08:12,230 --> 00:08:15,920 Vzhľadom k tomu, keď vieme, že všetko V tomto stĺpci je 10 bajtov, možno 170 00:08:15,920 --> 00:08:19,220 vieme, že informácie, môžeme skákať 10 bajtov, 10 bajtov, 10 bajtov, 10 bajtov, 171 00:08:19,220 --> 00:08:21,790 a vždy nájsť začiatku reťazca. 172 00:08:21,790 --> 00:08:25,210 >> Takže môžeme mať niektoré zbytočný priestor s char, 173 00:08:25,210 --> 00:08:28,510 ale možno je tu obchod off mať vyššiu rýchlosť 174 00:08:28,510 --> 00:08:30,160 navigáciu databázy. 175 00:08:30,160 --> 00:08:32,330 Ale možno chceme, Flexibilita VARCHAR 176 00:08:32,330 --> 00:08:36,710 miesto having-- Ak náš CHAR bolo 255, ale väčšina našich užívateľov 177 00:08:36,710 --> 00:08:40,537 boli zadávanie iba tri alebo štyri byty hodnota informácií alebo tri alebo štyri 178 00:08:40,537 --> 00:08:41,870 znaky v hodnote informácií. 179 00:08:41,870 --> 00:08:44,324 >> Ale niektorí užívatelia používali celá 255, možno 180 00:08:44,324 --> 00:08:45,990 VARCHAR by bolo vhodnejšie tam. 181 00:08:45,990 --> 00:08:49,840 Je to akýsi kompromis, a všeobecne na účely CS50, 182 00:08:49,840 --> 00:08:54,107 nemusíte príliš starať o či používate CHAR alebo VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Ale v reálnom svete, tieto veci to jedno, pretože všetky z týchto stĺpcov 184 00:08:57,190 --> 00:08:59,300 zaberajú skutočný fyzický priestor. 185 00:08:59,300 --> 00:09:04,150 A fyzický priestor, v reálnom svete, prichádza na prémie. 186 00:09:04,150 --> 00:09:06,800 >> Takže jedného ďalšieho zváženie keď staviate tabuľku 187 00:09:06,800 --> 00:09:09,840 je vybrať jeden stĺpec byť čo sa nazýva primárny kľúč. 188 00:09:09,840 --> 00:09:14,350 A primárny kľúč je stĺpec kde každý hodnota je jedinečná. 189 00:09:14,350 --> 00:09:19,980 A to znamená, že môžete ľahko vybrať jeden riadok púhym pohľadom 190 00:09:19,980 --> 00:09:22,450 na primárny kľúč tohto riadku. 191 00:09:22,450 --> 00:09:24,580 Tak napríklad, že Všeobecne platí, že s používateľmi, 192 00:09:24,580 --> 00:09:27,210 Nechceme dvoch užívateľov, ktorí majú rovnaké ID používateľa číslo. 193 00:09:27,210 --> 00:09:28,960 A tak možno budete mať Množstvo informácií, 194 00:09:28,960 --> 00:09:30,793 a možno aj dvaja používatelia môžu majú rovnaký name-- 195 00:09:30,793 --> 00:09:32,650 Máte John Smith a John Smith. 196 00:09:32,650 --> 00:09:34,520 To nemusí byť problém, pretože tam sú viac ľudí 197 00:09:34,520 --> 00:09:35,830 vo svete menom John Smith. 198 00:09:35,830 --> 00:09:40,766 Ale my máme len jedno užívateľské ID číslo 10, jeden používateľ ID číslo 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Nemáme dva užívateľa s rovnakým číslom, 200 00:09:42,640 --> 00:09:46,010 a tak možno identifikačné čísla užívateľ by bol dobrý primárny kľúč. 201 00:09:46,010 --> 00:09:48,610 >> Nemáme žiadnu duplicitu, a môžeme teraz jedinečne 202 00:09:48,610 --> 00:09:52,619 identifikovať každý riadok práve pri pohľade na tento stĺpec. 203 00:09:52,619 --> 00:09:55,410 Voľba primárne kľúče môže vlastne aby následné operácie tabuľky 204 00:09:55,410 --> 00:09:59,710 oveľa jednoduchšie, pretože môžete využiť skutočnosť, že niektoré riadky budú 205 00:09:59,710 --> 00:10:02,720 byť jedinečný, alebo určitá stĺpec z vašej databázy alebo tabuľky 206 00:10:02,720 --> 00:10:06,030 bude unikátny vybrať out zvláštne riadky. 207 00:10:06,030 --> 00:10:08,790 >> Môžete mať aj spoločný primárny kľúč, ktorý môžete nájsť príležitosť 208 00:10:08,790 --> 00:10:11,720 na použitie, ktorý je len kombinácia dvoch stĺpcov, ktoré 209 00:10:11,720 --> 00:10:13,280 je zaručené, že je jedinečný. 210 00:10:13,280 --> 00:10:16,410 Takže možno máte jeden Stĺpec, ktorý je As a Bs, 211 00:10:16,410 --> 00:10:19,290 jeden stĺpec, ktorý je jeden, dva, a tri, ale budete len niekedy 212 00:10:19,290 --> 00:10:23,660 majú jediný A1, jedna A2, a tak ďalej a tak ďalej. 213 00:10:23,660 --> 00:10:28,980 Ale môžete mať B2, je C2, alebo A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Takže môžete mať viac As, viacnásobné BS, tí viac, viac dvojky, 215 00:10:32,840 --> 00:10:38,567 ale môžete niekedy mať iba single A1, B2, C3, a tak ďalej. 216 00:10:38,567 --> 00:10:40,400 Tak ako som povedal, SQL je programovací jazyk, 217 00:10:40,400 --> 00:10:42,024 ale má pomerne obmedzenú slovnú zásobu. 218 00:10:42,024 --> 00:10:44,880 Nie je to zas až tak expanzívna ako C a PHP a iné jazyky 219 00:10:44,880 --> 00:10:46,350 že hovoríme v kurze. 220 00:10:46,350 --> 00:10:49,960 To je viac verbose jazyka, než to, čo sme 221 00:10:49,960 --> 00:10:52,789 hovoriť o v tomto video, pretože v tomto videu 222 00:10:52,789 --> 00:10:54,830 budeme hovoriť o tom, štyri operácie, ktoré my 223 00:10:54,830 --> 00:10:55,720 možno vykonávať na stôl. 224 00:10:55,720 --> 00:10:56,761 >> Existuje viac ako toto. 225 00:10:56,761 --> 00:10:58,730 Môžeme robiť viac než to, ale pre naše účely, 226 00:10:58,730 --> 00:11:02,250 my všeobecne bude používať len štyroch operations-- vložka, 227 00:11:02,250 --> 00:11:05,360 vyberte, aktualizujte, a odstrániť. 228 00:11:05,360 --> 00:11:08,750 A môžete pravdepodobne intuitívne odhadnúť čo všetky štyri tieto veci robiť. 229 00:11:08,750 --> 00:11:12,520 Ale pôjdeme do trochu podrobnosti o každej z nich. 230 00:11:12,520 --> 00:11:15,780 >> Takže pre účely tohto video, predpokladajme 231 00:11:15,780 --> 00:11:18,870 Máme nasledujúcich dvoch tabuľky v jednej databáze. 232 00:11:18,870 --> 00:11:23,460 Máme tabuľku s názvom Používatelia, ktorý má štyroch columns-- číslo, užívateľské meno, 233 00:11:23,460 --> 00:11:25,350 heslo, meno a priezvisko. 234 00:11:25,350 --> 00:11:27,430 A máme druhý stôl v rovnakej databáze 235 00:11:27,430 --> 00:11:32,129 volal mamičky, že práve ukladá informácie o užívateľské meno a matkou. 236 00:11:32,129 --> 00:11:33,920 Takže pre všetky príklady V tomto videu, budeme 237 00:11:33,920 --> 00:11:37,945 používať túto databázu a následné aktualizácie do nej. 238 00:11:37,945 --> 00:11:40,070 Takže povedzme, že chceme, aby pridať informácie do tabuľky. 239 00:11:40,070 --> 00:11:44,460 To je to, čo robí operácie vkladania. 240 00:11:44,460 --> 00:11:46,550 Pri vysvetľovaní všetkých tieto príkazy, idem 241 00:11:46,550 --> 00:11:48,860 aby vám všeobecnú kostru na použitie. 242 00:11:48,860 --> 00:11:51,661 Vzhľadom k tomu, v podstate, dotazov idú vyzerajú celkom podobný, 243 00:11:51,661 --> 00:11:54,660 sme len bude meniť mierne odlišné kusy informácií 244 00:11:54,660 --> 00:11:56,750 robiť rôzne veci s tabuľkou. 245 00:11:56,750 --> 00:11:59,200 >> Takže pre INSERT, kostry Vyzerá trochu ako toto. 246 00:11:59,200 --> 00:12:02,230 Chceme vložiť do zvláštne tabuľka. 247 00:12:02,230 --> 00:12:05,290 Potom máme otvorené zátvorky a zoznam stĺpcov 248 00:12:05,290 --> 00:12:08,070 že chceme dať do hodnoty. 249 00:12:08,070 --> 00:12:10,974 Zavrieť zátvorky sa nasledujúcich hodnôt, a potom 250 00:12:10,974 --> 00:12:13,390 Znovu sme sa zoznam hodnôt Chceme, aby v tabuľke. 251 00:12:13,390 --> 00:12:15,950 >> Takže príkladom by bol nasledujúci. 252 00:12:15,950 --> 00:12:19,170 Chcem vložiť do tabuľky Užívatelia nasledujúce columns-- 253 00:12:19,170 --> 00:12:21,010 užívateľské meno, heslo a fullname. 254 00:12:21,010 --> 00:12:25,282 Takže nový riadok, kde som uvedenie v týchto troch stĺpcoch a my sme 255 00:12:25,282 --> 00:12:30,030 dám v hodnotách Newman, USMAIL, a Newman. 256 00:12:30,030 --> 00:12:32,730 Takže v tomto prípade, ja som uvedenie malé písmená Newman 257 00:12:32,730 --> 00:12:38,710 do stĺpci username, heslo USMAIL, a plné meno hlavné mesto N 258 00:12:38,710 --> 00:12:41,940 Newman do fullname kolóny. 259 00:12:41,940 --> 00:12:44,240 >> Tak tu je to, čo databázy vyzeral ako predtým. 260 00:12:44,240 --> 00:12:48,250 Tu je to, čo používatelia na stôl top vyzerala pred sme to urobili. 261 00:12:48,250 --> 00:12:50,760 Potom, čo sme to urobiť dotazu, sme si to. 262 00:12:50,760 --> 00:12:54,790 Pridali sme nový riadok do tabuľky. 263 00:12:54,790 --> 00:12:56,810 Ale jednu vec si všimnúť že som nešpecifikoval, 264 00:12:56,810 --> 00:12:59,880 ale nejako mám hodnotu pre, čo je to 12 tu. 265 00:12:59,880 --> 00:13:02,820 Nepovedal som, že som chcel vložiť identifikačné číslo tam. 266 00:13:02,820 --> 00:13:04,900 Chcel som dať meno, heslo, fullname. 267 00:13:04,900 --> 00:13:06,440 A ja som to urobil, to je v poriadku. 268 00:13:06,440 --> 00:13:07,760 >> Ale tiež som dostal túto 12. 269 00:13:07,760 --> 00:13:09,490 Prečo som si to 12? 270 00:13:09,490 --> 00:13:12,904 No, to ukáže, že keď sa definovanie 271 00:13:12,904 --> 00:13:15,570 stĺpec, ktorý bude vaše primárny kľúč, ktorý je zvyčajne, 272 00:13:15,570 --> 00:13:16,510 ako som povedal, ID číslo. 273 00:13:16,510 --> 00:13:18,718 Nie je to vždy nutne Bude ID číslo, 274 00:13:18,718 --> 00:13:22,380 ale to je zvyčajne dobrý nápad byť nejaký celočíselnú hodnotu. 275 00:13:22,380 --> 00:13:25,950 Máte možnosť v phpMyAdmin Pri vytváraní databázy 276 00:13:25,950 --> 00:13:31,130 alebo váš stôl nastaviť, aby Stĺpik automatické zvyšovanie. 277 00:13:31,130 --> 00:13:34,520 >> Čo je naozaj dobrý nápad, ak pracujete s primárnym kľúčom, 278 00:13:34,520 --> 00:13:39,330 preto, že chcete každú hodnotu v tomto stĺpci, že je jedinečný. 279 00:13:39,330 --> 00:13:43,310 A ak ste zabudli zadať to na viac ako jednu osobu, 280 00:13:43,310 --> 00:13:46,240 teraz v situácii, keď že stĺpec už nie je ojedinelý. 281 00:13:46,240 --> 00:13:50,200 Máte dve prázdne miesta, takže môžete bez dlhší jednoznačnej identifikácii column-- 282 00:13:50,200 --> 00:13:54,150 Alebo môžete už jedinečne identifikáciu riadku založené na tomto stĺpci. 283 00:13:54,150 --> 00:13:57,010 Je to stratil všetky jeho hodnota ako primárny kľúč. 284 00:13:57,010 --> 00:14:02,010 >> A tak vraj to, čo som urobil Tu je nakonfigurovaný ID užívateľa 285 00:14:02,010 --> 00:14:07,790 stĺpec na automatický prírastok tak, aby každý Keď som pridať informácie do tabuľky, 286 00:14:07,790 --> 00:14:12,220 to bude automaticky dať mi hodnota primárneho kľúča. 287 00:14:12,220 --> 00:14:15,570 Tak som si nikdy nezabudnem na to, pretože databázy bude to pre mňa. 288 00:14:15,570 --> 00:14:16,587 Tak to je celkom pekné. 289 00:14:16,587 --> 00:14:18,670 A tak to je dôvod, prečo sme si 12 tam, pretože som 290 00:14:18,670 --> 00:14:21,772 nastaviť, aby stĺpec až na auto prírastok. 291 00:14:21,772 --> 00:14:23,730 Keby som pridal niekoho iného to by bolo 13, keď som pridal 292 00:14:23,730 --> 00:14:27,890 niekto iný, že to bude 14, a tak ďalej. 293 00:14:27,890 --> 00:14:30,190 >> Takže poďme jednoducho urobiť ešte jednu vloženie. 294 00:14:30,190 --> 00:14:34,530 Budeme vložiť do tabuľky mamičky, v Zvlášť, užívateľské meno a matka 295 00:14:34,530 --> 00:14:37,390 stĺpci hodnoty Kramer a Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 A tak sme mali predtým. 297 00:14:39,140 --> 00:14:41,800 Potom, čo sme spustiť, že SQL dotaz, máme to. 298 00:14:41,800 --> 00:14:47,290 Pridali sme Kramer a Babs Kramer k stolu mamičky. 299 00:14:47,290 --> 00:14:48,350 >> Tak to je vkladanie. 300 00:14:48,350 --> 00:14:51,850 SELECT je to, čo používame na extrakciu Informácie z tabuľky. 301 00:14:51,850 --> 00:14:54,390 Takže to je to, ako sa dostaneme Informácie z databázy. 302 00:14:54,390 --> 00:14:59,589 A tak SELECT príkazy sa bude veľmi často používaný v programovaní. 303 00:14:59,589 --> 00:15:02,130 Všeobecná framework-- Všeobecne kostra vyzerá takto. 304 00:15:02,130 --> 00:15:06,550 Vyberte sadu stĺpcov z stôl, a potom prípadne 305 00:15:06,550 --> 00:15:11,090 môžete zadať condition-- alebo to, čo sme sa obvykle nazývajú predikát, 306 00:15:11,090 --> 00:15:13,010 je zvyčajne termín používame v SQL. 307 00:15:13,010 --> 00:15:16,490 >> Ale je to v podstate to, čo Jednotlivé riadky sa chcete dostať. 308 00:15:16,490 --> 00:15:19,100 Ak chcete, namiesto toho, ako sa dostať všetko, zúžiť, 309 00:15:19,100 --> 00:15:20,060 to je miesto, kde by ste to urobil. 310 00:15:20,060 --> 00:15:22,777 A potom prípadne môžete tiež objednať podľa určitého stĺpca. 311 00:15:22,777 --> 00:15:25,860 Takže možno, že chcete mať veci zoradené abecedne založené na jednom stĺpci 312 00:15:25,860 --> 00:15:27,540 alebo abecedne na základe druhého. 313 00:15:27,540 --> 00:15:30,610 >> Opäť platí, WHERE a ORDER BY sú voliteľné. 314 00:15:30,610 --> 00:15:32,681 Ale oni si najskôr useful-- najmä 315 00:15:32,681 --> 00:15:34,680 Kde bude užitočné zúžiť takže nie 316 00:15:34,680 --> 00:15:37,460 dostať celú databázu späť a musieť spracovávať, môžete len získať 317 00:15:37,460 --> 00:15:39,300 kusy to, že vám záleží. 318 00:15:39,300 --> 00:15:44,932 Tak napríklad, mohol by som chcieť vybrať ID číslo a fullname od užívateľov. 319 00:15:44,932 --> 00:15:46,140 Takže to, čo by to mohlo vyzerať? 320 00:15:46,140 --> 00:15:48,270 Takže tu je moja užívatelia stôl. 321 00:15:48,270 --> 00:15:51,080 Chcem vybrať IDNUM a fullname od užívateľov. 322 00:15:51,080 --> 00:15:52,300 Čo mám urobiť? 323 00:15:52,300 --> 00:15:53,580 Idem si to. 324 00:15:53,580 --> 00:15:56,930 Nechcel som zúžiť, takže som získanie identifikačné číslo pre každý riadok 325 00:15:56,930 --> 00:16:00,850 a ja som stále v plnej meno z každého radu. 326 00:16:00,850 --> 00:16:02,210 >> OK. 327 00:16:02,210 --> 00:16:05,640 Čo keď chcem vybrať heslo od užívateľov WHERE-- takže teraz 328 00:16:05,640 --> 00:16:10,370 Ja som dodal podmienku, je predicate-- kde IDNUM je menšia ako 12. 329 00:16:10,370 --> 00:16:13,660 Takže tu je moja databáza znova, môj Užívatelia tabuľka vrchol. 330 00:16:13,660 --> 00:16:17,030 Čo mám urobiť, keď chcem zvoliť, že informácie, heslo, 331 00:16:17,030 --> 00:16:21,550 kde ID užívateľa alebo IDNUM je menšia ako 12 rokov? 332 00:16:21,550 --> 00:16:24,910 Idem si to Informácie späť, že jo? 333 00:16:24,910 --> 00:16:29,170 Stáva sa, že je IDNUM 10, menej ako 12, identifikačné číslo 11 menej ako 12 rokov. 334 00:16:29,170 --> 00:16:32,160 Začínam heslo pre tieto riadky. 335 00:16:32,160 --> 00:16:33,914 To je to, čo som žiadal. 336 00:16:33,914 --> 00:16:34,580 A čo toto? 337 00:16:34,580 --> 00:16:39,170 Čo keď chcem vybrať hviezda z mamičky tabuľka, kde používateľské meno odpovedá Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, vyberte hviezda je špeciálna druh divoké karty tzv 339 00:16:43,780 --> 00:16:45,670 že používame dostať všetko. 340 00:16:45,670 --> 00:16:48,620 Tak hovoria select užívateľské meno čiarkou matku, ktorá 341 00:16:48,620 --> 00:16:51,060 sa stalo, že je jediný dva stĺpce tejto tabuľky, 342 00:16:51,060 --> 00:16:53,260 Ja si len vybrať hviezdu a dostať všetko 343 00:16:53,260 --> 00:16:55,030 kde používateľské meno odpovedá Jerry. 344 00:16:55,030 --> 00:16:59,380 A tak to je to, čo by som si či som urobil, že konkrétny dotaz. 345 00:16:59,380 --> 00:17:01,810 >> Teraz, databázy sú skvelé, pretože umožňujú 346 00:17:01,810 --> 00:17:06,074 nám na usporiadanie informácií možná o niečo efektívnejšie ako my 347 00:17:06,074 --> 00:17:06,740 Možno inak. 348 00:17:06,740 --> 00:17:10,240 My nemusí nutne k ukladaniu každý relevantný údaj 349 00:17:10,240 --> 00:17:12,230 jedného užívateľa v rovnakej tabuľke. 350 00:17:12,230 --> 00:17:13,730 Mali sme tam dve tabuľky. 351 00:17:13,730 --> 00:17:15,734 >> Musíme uložiť Meno Všetci sú matky, 352 00:17:15,734 --> 00:17:18,900 a možno nemáme sociálne zabezpečenie číslo, máme ich dátum narodenia. 353 00:17:18,900 --> 00:17:21,819 To nie je vždy potrebovať byť v rovnakej tabuľke. 354 00:17:21,819 --> 00:17:25,339 Tak dlho, ako môžeme definovať vzťahy medzi tables-- 355 00:17:25,339 --> 00:17:28,440 a to je miesto, kde že relačné Databáza termín druh pochádza 356 00:17:28,440 --> 00:17:32,130 do play-- tak dlho, ako môžeme definovať vzťahy medzi tabuľkami, 357 00:17:32,130 --> 00:17:35,545 môžeme nejako rozčleniť alebo abstraktné veci takým spôsobom, 358 00:17:35,545 --> 00:17:37,670 kde sme len Naozaj dôležité informácie 359 00:17:37,670 --> 00:17:39,270 staráme sa o v tabuľke používateľa. 360 00:17:39,270 --> 00:17:43,220 A potom máme pomocné informácie alebo ďalšie informácie v iných tabuľkách 361 00:17:43,220 --> 00:17:48,260 že je možné pripojiť znovu vráti do hlavnej Užívatelia tabuľka v určitým spôsobom. 362 00:17:48,260 --> 00:17:52,200 >> Takže tu máme tieto dve tabuľky, ale tam je vzťah medzi nimi, 363 00:17:52,200 --> 00:17:53,010 v poriadku? 364 00:17:53,010 --> 00:17:55,070 Vyzerá to, že užívateľské meno by mohlo byť niečo 365 00:17:55,070 --> 00:17:59,909 ktorá existuje v obyčajný medzi Tieto dva rôzne tabuľky. 366 00:17:59,909 --> 00:18:01,700 A čo keď máme teraz situácia, keď sme 367 00:18:01,700 --> 00:18:06,046 sa chcú dostať úplné meno používateľa z tabuľka užívateľov, a ich matky 368 00:18:06,046 --> 00:18:07,170 meno z materskej tabuľky? 369 00:18:07,170 --> 00:18:10,960 Nemáme spôsob, ako sa dostať že ako to stojí, nie? 370 00:18:10,960 --> 00:18:17,790 Neexistuje jediná tabuľka, ktorá obsahuje ako celý názov a meno matky. 371 00:18:17,790 --> 00:18:20,400 Nemáme túto možnosť z toho, čo sme doteraz videli. 372 00:18:20,400 --> 00:18:22,950 >> A tak musíme zaviesť myšlienka JOIN. 373 00:18:22,950 --> 00:18:24,857 A sa pripojí sú pravdepodobne najviac complex-- 374 00:18:24,857 --> 00:18:27,940 je to naozaj najzložitejšia operácie budeme hovoriť o vo videu. 375 00:18:27,940 --> 00:18:30,040 Sú to trochu zložitejšie, ale akonáhle sa dostanete na kĺb, 376 00:18:30,040 --> 00:18:31,248 sú to vlastne nie je tak zlé. 377 00:18:31,248 --> 00:18:32,820 Je to len osobitný prípad SELECT. 378 00:18:32,820 --> 00:18:37,120 Budeme vybrať sadu stĺpce z tabuľky spájanie 379 00:18:37,120 --> 00:18:40,650 v druhej tabuľke na nejakom predikátu. 380 00:18:40,650 --> 00:18:45,340 >> V tomto prípade, myslím, že o tom takto tohle-- stôl, kto je jeden kruh tu, 381 00:18:45,340 --> 00:18:47,530 tabuľka dvoch je ďalší kruh tu. 382 00:18:47,530 --> 00:18:49,410 A že predikát časť v stredu, je to 383 00:18:49,410 --> 00:18:51,701 niečo ako, ak si myslíte , O ktorých v Vennov diagram, čo 384 00:18:51,701 --> 00:18:52,670 to majú spoločného? 385 00:18:52,670 --> 00:18:55,960 Chceme prepojiť tieto dve tabuľky na základe toho, čo majú spoločné 386 00:18:55,960 --> 00:19:01,230 a vytvoriť túto hypotetickú tabuľku že je zlúčenie dvoch dohromady. 387 00:19:01,230 --> 00:19:03,480 Tak uvidíme to v príklad a možno, že to pomôže 388 00:19:03,480 --> 00:19:04,521 zrušte to trochu. 389 00:19:04,521 --> 00:19:09,260 Takže možno budete chcieť vybrať USER.FULLNAME a moms.mother 390 00:19:09,260 --> 00:19:13,220 od užívateľov spájanie v mamičky stôl v každej situácii 391 00:19:13,220 --> 00:19:16,790 kde používateľské meno stĺpca je rovnaký medzi nimi. 392 00:19:16,790 --> 00:19:19,240 A to je nový syntaxe tu, tohto používateľa. 393 00:19:19,240 --> 00:19:20,460 a mamičky .. 394 00:19:20,460 --> 00:19:26,697 Ak Robím viac tabuliek spolu, môžem zadať tabuľku. 395 00:19:26,697 --> 00:19:29,530 Dokážem rozlíšiť najmä pokiaľ ide o že na tú v samom dne. 396 00:19:29,530 --> 00:19:33,220 Môžem rozlíšiť užívateľské meno stĺpec tabuľky užívateľov 397 00:19:33,220 --> 00:19:36,010 z užívateľské meno stĺpca mamičky stôl, ktoré sú otherwise-- 398 00:19:36,010 --> 00:19:38,070 keby sme práve povedal username rovná užívateľské meno, to nie je naozaj 399 00:19:38,070 --> 00:19:38,970 znamenať čokoľvek. 400 00:19:38,970 --> 00:19:41,440 Chceme urobiť to, kde sa zhodujú. 401 00:19:41,440 --> 00:19:46,080 >> Takže môžem zadať tabuľky a názov stĺpca v prípade situácie 402 00:19:46,080 --> 00:19:48,370 kde by bolo jasné, to, čo hovorím. 403 00:19:48,370 --> 00:19:51,880 Tak to je všetko, čo robím, je, že som hovorí tento stĺpec z tejto tabuľky, 404 00:19:51,880 --> 00:19:54,020 a je veľmi explicitné. 405 00:19:54,020 --> 00:19:56,810 Takže znovu, som voľbou plné meno a meno matky 406 00:19:56,810 --> 00:20:00,950 Z tabuľky užívateľov spojené s tabuľkou mamičky v každej situácii 407 00:20:00,950 --> 00:20:05,960 kde sa zdieľať column-- oni zdieľať užívateľské meno pojem. 408 00:20:05,960 --> 00:20:08,580 >> Takže tu sú tabuľky, ktoré sme mali predtým. 409 00:20:08,580 --> 00:20:12,210 To je stav nášho databáz tak, ako existuje práve teraz. 410 00:20:12,210 --> 00:20:16,390 Informácie sme extrahovania je to pre začiatok. 411 00:20:16,390 --> 00:20:19,820 To je nová tabuľka ideme vytvoriť kombinovať tieto spolu. 412 00:20:19,820 --> 00:20:23,585 A všimnite si nie sme zvýraznenie Newmanovho riadok v tabuľke užívateľa, 413 00:20:23,585 --> 00:20:25,960 a nie sme zvýraznenie Kramerův riadok v tabuľke mamičky 414 00:20:25,960 --> 00:20:31,250 pretože ani jeden existuje v ako sets-- v oboch tabuľkách. 415 00:20:31,250 --> 00:20:36,260 >> Jediná informácie, ktoré sú v bežnej medzi nimi je Jerry je v oboch tabuľkách 416 00:20:36,260 --> 00:20:39,100 a gcostanza je v oboch tabuľkách. 417 00:20:39,100 --> 00:20:42,620 A tak, keď budeme robiť SQL JOIN, čo sme get-- a robíme vlastne si to. 418 00:20:42,620 --> 00:20:44,830 Je to niečo ako dočasné premenné. 419 00:20:44,830 --> 00:20:47,330 Je to ako hypotetický zlúčenie oboch tabuliek. 420 00:20:47,330 --> 00:20:49,930 Vlastne sme si niečo ako je tento, kde 421 00:20:49,930 --> 00:20:54,730 sme sa spojil tabuliek na informácie, ktoré majú spoločné. 422 00:20:54,730 --> 00:20:58,334 >> Takže všimnúť, že users.username a moms.username stĺpec, 423 00:20:58,334 --> 00:20:59,250 je to presne to isté. 424 00:20:59,250 --> 00:21:01,820 To bola informácia, že bol v súlade od užívateľov 425 00:21:01,820 --> 00:21:02,890 stôl, ktorý sa mamičky. 426 00:21:02,890 --> 00:21:04,270 A tak sme zlúčili dohromady. 427 00:21:04,270 --> 00:21:06,919 My sme tu zavrhli Kramer, pretože on neexistovali v tabuľke užívateľov, 428 00:21:06,919 --> 00:21:09,710 a my zlikvidovať Newman, pretože nemal existovať v tabuľke mamičky. 429 00:21:09,710 --> 00:21:16,450 Tak toto je hypotetický fúzie pomocou JOIN prevádzku SELECT. 430 00:21:16,450 --> 00:21:21,250 >> A potom sme hľadali pre celé meno užívateľa a matka užívateľa, 431 00:21:21,250 --> 00:21:24,999 a tak toto je informácia, že by sme sa dostali z celkového dopytu 432 00:21:24,999 --> 00:21:26,040 že sme sa s SELECT. 433 00:21:26,040 --> 00:21:28,873 Tak sme sa spojili tabuľky a my sa extrahuje tieto dva stĺpce, 434 00:21:28,873 --> 00:21:31,610 a tak, že je to, čo dostaneme. 435 00:21:31,610 --> 00:21:33,370 Ale SQL pripojí akýsi komplikovaný. 436 00:21:33,370 --> 00:21:36,770 Vy pravdepodobne nebudete robiť im príliš veľa, ale jednoducho mať určitú predstavu o skeletu 437 00:21:36,770 --> 00:21:41,992 že by ste mohli použiť na zlúčenie dvoch Tabuľky spoločne, ak ste potrebovali. 438 00:21:41,992 --> 00:21:43,700 Posledné dva sú bit jednoduchšie sľubujem. 439 00:21:43,700 --> 00:21:48,040 Takže aktualizovať, môžeme použiť UPDATE zmeniť údaje v tabuľke. 440 00:21:48,040 --> 00:21:53,880 Všeobecný formát je UPDATE niektoré stôl, nastaviť niektoré stĺpec nejaké hodnoty 441 00:21:53,880 --> 00:21:55,540 Kde niektorí predikát je splnená. 442 00:21:55,540 --> 00:21:57,850 Tak napríklad, my by sme mohli chcieť k aktualizácii tabuľky užívateľov 443 00:21:57,850 --> 00:22:04,400 a nastaviť heslo na Yada bla, kde identifikačné číslo 10. 444 00:22:04,400 --> 00:22:06,400 >> Takže v tomto prípade, my sme aktualizáciu tabuľky užívateľov. 445 00:22:06,400 --> 00:22:08,275 ID číslo je 10 pre že prvý riadok tam, 446 00:22:08,275 --> 00:22:10,690 a chceme aktualizovať heslá tlachy. 447 00:22:10,690 --> 00:22:12,170 A tak to je to, čo by sa stalo. 448 00:22:12,170 --> 00:22:13,628 Je to celkom jednoduché, nie? 449 00:22:13,628 --> 00:22:17,990 Je to len veľmi jednoduchá modifikácie k stolu. 450 00:22:17,990 --> 00:22:22,250 >> DELETE je operácia sme sa odstránenie informácií z tabuľky. 451 00:22:22,250 --> 00:22:24,817 DELETE FROM stolu, kde nejaký predikát je splnená. 452 00:22:24,817 --> 00:22:26,900 Chceme odstrániť z Užívatelia stôl napríklad 453 00:22:26,900 --> 00:22:28,254 kde používateľské meno je Newman. 454 00:22:28,254 --> 00:22:31,420 Môžete si asi hádať, čo to bude sa stalo potom, čo sme tu vykonať SQL 455 00:22:31,420 --> 00:22:35,790 dotaz, Newman je preč od stola. 456 00:22:35,790 --> 00:22:40,460 >> Takže všetky tieto operácie, ako som už povedal, je veľmi ľahké robiť v phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Je to veľmi užívateľsky prívetivé rozhranie. 458 00:22:43,020 --> 00:22:45,930 Ale to vyžaduje manuálnu úsilie. 459 00:22:45,930 --> 00:22:47,840 Nechceme použiť manuálne úsilie. 460 00:22:47,840 --> 00:22:51,280 Chceme, aby naše programy na to pre nás, že jo? 461 00:22:51,280 --> 00:22:53,190 Takže by sme mohli chcieť urobiť tento programovo. 462 00:22:53,190 --> 00:22:56,410 Chceme začleniť SQL a majú niečo iné, aby to pre nás. 463 00:22:56,410 --> 00:23:02,710 >> Ale to, čo sme videli, že umožňuje nás programovo niečo urobiť? 464 00:23:02,710 --> 00:23:03,690 Videli sme PHP, že jo? 465 00:23:03,690 --> 00:23:05,760 To predstavuje niektoré dynamika do našich programov. 466 00:23:05,760 --> 00:23:10,430 A tak našťastie, SQL a PHP hrajú veľmi pekne pohromade. 467 00:23:10,430 --> 00:23:13,230 K dispozícii je funkcia v PHP volal dotazu, ktoré môžu byť použité. 468 00:23:13,230 --> 00:23:15,870 A môžete odovzdať ako parameter alebo argument 469 00:23:15,870 --> 00:23:19,210 do dotazu SQL dotazu, ktorý by ste chceli spustiť. 470 00:23:19,210 --> 00:23:23,250 A PHP bude robiť za vás. 471 00:23:23,250 --> 00:23:25,564 >> Takže potom, čo ste pripojení do databázy s PHP, 472 00:23:25,564 --> 00:23:26,980 Sú dva primárne voľby to budete robiť. 473 00:23:26,980 --> 00:23:29,230 Je tu niečo, čo nazýva MySQLi a niečo, čo nazýva PDO. 474 00:23:29,230 --> 00:23:31,063 Nebudeme zachádzať do obrovský tam detail množstvo. 475 00:23:31,063 --> 00:23:32,957 V CS50 používame PDO. 476 00:23:32,957 --> 00:23:34,790 Potom, čo ste pripojení do databázy, vy 477 00:23:34,790 --> 00:23:40,980 potom môže vytvoriť otázky na databázu odovzdaním otázky ako argumenty 478 00:23:40,980 --> 00:23:42,730 do funkcie PHP. 479 00:23:42,730 --> 00:23:46,460 A keď to urobíte, budete ukladať sada výsledkov v asociatívnom poli. 480 00:23:46,460 --> 00:23:50,290 >> A my vieme, ako pracovať s asociatívne pole v PHP. 481 00:23:50,290 --> 00:23:52,630 A tak by som mohol povedať niečo ako tohle-- $ results-- 482 00:23:52,630 --> 00:23:55,470 je to v PHP-- rovná dotazu. 483 00:23:55,470 --> 00:23:57,660 A potom vnútornej strane Funkcia dotaz tento argument 484 00:23:57,660 --> 00:24:00,130 že som okolo na dotaz že vyzerá ako SQL. 485 00:24:00,130 --> 00:24:01,160 A v tom, že je SQL. 486 00:24:01,160 --> 00:24:05,700 To je reťazec dotazu, že by som Páči sa vykonať na mojej databázy. 487 00:24:05,700 --> 00:24:09,250 >> A tak v červenej farbe, to je PHP. 488 00:24:09,250 --> 00:24:11,890 To je SQL, že som integráciu do PHP tým, že 489 00:24:11,890 --> 00:24:15,020 to je argument pre funkciu dotazu. 490 00:24:15,020 --> 00:24:19,640 Chcem vybrať zo CeléJméno Užívatelia kde ID číslo rovná 10. 491 00:24:19,640 --> 00:24:22,560 A potom možno potom, čo som urobil, že, Mohol by som povedať niečo také. 492 00:24:22,560 --> 00:24:25,550 Chcem pre vytlačenie Vďaka správa pre prihlásenie. 493 00:24:25,550 --> 00:24:32,530 >> A chcem to interpolate-- Chcem interpolovať $ výsledky CeléJméno. 494 00:24:32,530 --> 00:24:36,280 A tak to je, ako som sa pracovať s tým asociatívne pole, že som sa vrátil. 495 00:24:36,280 --> 00:24:39,730 $ Výsledky fullname by v podstate skončiť vytlačenie, 496 00:24:39,730 --> 00:24:42,870 vďaka za prihlásenie, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 To bolo plné meno kde IDNUM sa rovná 10. 498 00:24:46,570 --> 00:24:48,850 >> A tak všetko, čo robím je, že som now-- Aj uložené 499 00:24:48,850 --> 00:24:52,780 môj dotaz, výsledky môjho dotazu a výsledky v asociatívnom poli, 500 00:24:52,780 --> 00:24:56,330 a fullname je názov stĺpec Bola som pre. 501 00:24:56,330 --> 00:25:01,010 Takže to je môj kľúč do výsledkov asociatívne pole, ktoré chcem. 502 00:25:01,010 --> 00:25:05,930 Takže vďaka za prihlásenie, $ výsledky, fullname vytlačí, sa bude držať 503 00:25:05,930 --> 00:25:08,654 priamo medzi týmito kučeravé traky, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 A budem rád vytlačiť správu Vďaka za prihlásenie Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Teraz sme pravdepodobne nebudete chcieť tvrdo Kód veci ako, že v, že jo? 506 00:25:16,652 --> 00:25:19,860 My by sme mohli urobiť niečo také tlače f, kde môžeme nahradiť a možná 507 00:25:19,860 --> 00:25:22,443 zhromažďovať rôzne informácie, alebo možno majú proces dotazu 508 00:25:22,443 --> 00:25:23,370 rôzne informácie. 509 00:25:23,370 --> 00:25:27,920 A tak dotazu, funkcia dopytu má Toto poňatie druhu substitúciou 510 00:25:27,920 --> 00:25:32,310 veľmi podobné pre tlač f percent s a percento c, je otázniky. 511 00:25:32,310 --> 00:25:34,290 >> A môžeme použiť otázku značky veľmi analogicky 512 00:25:34,290 --> 00:25:38,400 tlačiť f nahradiť premenných. 513 00:25:38,400 --> 00:25:44,120 Takže možno si používateľ prihlásený skôr, a ste uložili svoje užívateľské identifikačné číslo 514 00:25:44,120 --> 00:25:51,710 v $ _SESSION PHP Super globálne v kľúčovom ID. 515 00:25:51,710 --> 00:25:55,947 Takže možno potom, čo sa prihlásite, Nastavíte $ _SESSION ID rovná 10, 516 00:25:55,947 --> 00:25:58,280 extrapolácie z príkladu sme práve videli pred sekundou. 517 00:25:58,280 --> 00:26:01,960 >> A tak, keď sme vlastne spustiť Tento dotaz výsledky teraz, 518 00:26:01,960 --> 00:26:08,440 to by pripojiť 10, alebo čokoľvek ID hodnota $ _SESSION je. 519 00:26:08,440 --> 00:26:10,790 A tak, že nám umožňuje byť trochu dynamickejšie. 520 00:26:10,790 --> 00:26:12,699 Nie sme tvrdo kódovanie veci ešte. 521 00:26:12,699 --> 00:26:14,490 Šetríme informácie niekde a potom 522 00:26:14,490 --> 00:26:18,924 môžeme tieto informácie znovu použiť na nejako zovšeobecniť, čo chceme robiť, 523 00:26:18,924 --> 00:26:21,090 a len plug-in a zmeny správanie našej stránke 524 00:26:21,090 --> 00:26:26,489 základe toho, čo identifikačné číslo užívateľa v skutočnosti je potom, čo som prihlásený. 525 00:26:26,489 --> 00:26:28,530 Je tiež možné, aj keď, že nastaviť vaše výsledky 526 00:26:28,530 --> 00:26:30,840 sa môže skladať z viacerých radách. 527 00:26:30,840 --> 00:26:33,990 V takom prípade máte Rad arrays-- 528 00:26:33,990 --> 00:26:35,334 Pole asociatívnych polí. 529 00:26:35,334 --> 00:26:37,000 A stačí iterovat to. 530 00:26:37,000 --> 00:26:41,950 A my vieme, ako iterovat cez pole v PHP, že jo? 531 00:26:41,950 --> 00:26:45,600 Takže tu je pravdepodobne najviac zložitá vec, ktorú sme doteraz videli. 532 00:26:45,600 --> 00:26:49,640 Je to vlastne integruje tri jazyky dohromady. 533 00:26:49,640 --> 00:26:52,920 >> Tu v červenej farbe, to je nejaký HTML. 534 00:26:52,920 --> 00:26:56,872 Som vraj starting-- to je úryvok nejakého HTML, ktoré mám. 535 00:26:56,872 --> 00:26:59,580 Začínam nový odsek, ktorý hovorí, že mamičky z televízora Seinfeld. 536 00:26:59,580 --> 00:27:02,350 A potom hneď nato Začínam tabuľku. 537 00:27:02,350 --> 00:27:06,060 A potom po to, že som nejaké PHP, že jo? 538 00:27:06,060 --> 00:27:08,229 Mám všetky tieto PHP kód tam. 539 00:27:08,229 --> 00:27:09,645 Ja zrejme bude robiť dotaz. 540 00:27:09,645 --> 00:27:14,180 A aby dotaz, budem byť pomocou SELECT matky od mamičky. 541 00:27:14,180 --> 00:27:15,970 >> Takže toto je getting-- je to SQL. 542 00:27:15,970 --> 00:27:17,300 Takže modrá je SQL. 543 00:27:17,300 --> 00:27:19,680 Červená sme videli druhý pred bol HTML. 544 00:27:19,680 --> 00:27:21,360 A zelená tu je PHP. 545 00:27:21,360 --> 00:27:23,400 Takže robím dotaz do mojej databázy, ja som 546 00:27:23,400 --> 00:27:26,040 výberu všetkých matiek v tabuľke mamičky. 547 00:27:26,040 --> 00:27:30,710 Nielen zúženie nadol na konkrétny radové, pýtam pre všetky z nich. 548 00:27:30,710 --> 00:27:33,290 >> Potom som sa skontrolovať, či výsledok je Nie je rovní rovná false. 549 00:27:33,290 --> 00:27:37,410 To je len môj spôsob, ako kontrolovať sort of Ak výsledky nie je rovná NULL, 550 00:27:37,410 --> 00:27:40,260 že by sme vidieť C počas napr. 551 00:27:40,260 --> 00:27:44,000 V podstate je to len kontrolovať, aby sa istý, že to vlastne dostal dáta späť. 552 00:27:44,000 --> 00:27:47,041 Pretože nechcem, aby začatia tlače out údajov, ak som nedostal žiadne údaje. 553 00:27:47,041 --> 00:27:50,690 Potom pre každú výsledkov v dôsledku toho foreach syntaxe z PHP, všetko, čo robím 554 00:27:50,690 --> 00:27:53,399 tlačí z $ result matky. 555 00:27:53,399 --> 00:27:55,940 A tak budem mať súbor zo všetkých matiek each-- 556 00:27:55,940 --> 00:27:59,980 je to pole asociatívne arrays-- a ja som vytlačenie 557 00:27:59,980 --> 00:28:03,649 každý z nich ako vlastné riadok tabuľky. 558 00:28:03,649 --> 00:28:05,690 A to je naozaj dosť Koľko všetko, čo je k tomu. 559 00:28:05,690 --> 00:28:07,750 Viem, že je to trochu bit tu deje 560 00:28:07,750 --> 00:28:13,210 V tomto poslednom príklade s polí arrays-- pole asociatívnych polí. 561 00:28:13,210 --> 00:28:17,340 Ale to naozaj len varí v SQL k tomu, že otázka, 562 00:28:17,340 --> 00:28:21,102 obvykle výberu potom, čo sme už vložiť informácie do tabuľky, 563 00:28:21,102 --> 00:28:22,310 a potom už len vytiahnutím. 564 00:28:22,310 --> 00:28:25,710 >> A to je, že sme sa ho vytiahnuť v tomto konkrétnom prípade. 565 00:28:25,710 --> 00:28:31,120 Radi by sme extrahovať všetky jedince matiek z tabuľky mamičky. 566 00:28:31,120 --> 00:28:35,970 Máme celý rad z nich, a my sme Chcete iterovat a vytlačiť 567 00:28:35,970 --> 00:28:37,630 každý. 568 00:28:37,630 --> 00:28:40,510 Takže znova, toto je pravdepodobne najkomplikovanejšie príklad 569 00:28:40,510 --> 00:28:44,510 videli sme, pretože sme miešanie tri rôzne jazyky spolu, nie? 570 00:28:44,510 --> 00:28:50,100 >> Opäť platí, že máme HTML tu v červenej farbe, v zmesi s niektorými SQL tu v modrej farbe, 571 00:28:50,100 --> 00:28:52,049 v zmesi s niektorými PHP v zelenej farbe. 572 00:28:52,049 --> 00:28:53,840 Ale všetky tieto hrajú pekne pohromade, je to 573 00:28:53,840 --> 00:28:57,060 len otázka rozvíjanie dobré návyky tak, že môžete získať 574 00:28:57,060 --> 00:28:58,780 je pracovať spoločne tak, ako chcete. 575 00:28:58,780 --> 00:29:03,790 A jediný spôsob, ako skutočne to urobiť je cvičiť, cvičiť, cvičiť. 576 00:29:03,790 --> 00:29:06,740 Som Doug Lloyd, je to CS50. 577 00:29:06,740 --> 00:29:08,647