1 00:00:00,000 --> 00:00:03,493 >> [Glazbom] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 Doug LLOYD: U našim video na web razvoj teme, 4 00:00:07,100 --> 00:00:10,560 smo spomenuli pojam baza podataka nekoliko puta, zar ne? 5 00:00:10,560 --> 00:00:12,700 Dakle baza si vjerojatno upoznati s od 6 00:00:12,700 --> 00:00:15,780 kažu pomoću Microsoft Excel ili Google. 7 00:00:15,780 --> 00:00:20,650 To je zapravo samo organizirano skup tablica, retke i stupce. 8 00:00:20,650 --> 00:00:23,140 >> A baza podataka gdje Naša web stranica trgovinama 9 00:00:23,140 --> 00:00:26,760 informacije koje je važno za naše web stranice kako bi ispravno funkcionirao. 10 00:00:26,760 --> 00:00:30,150 Opet, stvarno čest primjer ovdje je spremanje korisničkih imena i lozinki 11 00:00:30,150 --> 00:00:32,824 u bazi podataka, tako da kada se korisnik prijavi u našem web, 12 00:00:32,824 --> 00:00:36,690 baza podataka može biti ispitan vidjeti ako to korisnik ne postoji u bazi podataka. 13 00:00:36,690 --> 00:00:39,260 A ako su, provjeravajući njihova lozinka ispravna. 14 00:00:39,260 --> 00:00:43,420 A ako je njihova lozinka ispravna, onda smo ih sve što stranica mogu dati 15 00:00:43,420 --> 00:00:45,370 oni traži. 16 00:00:45,370 --> 00:00:48,590 >> Znači, ti si vjerojatno, opet, poznato s tom idejom iz Excel ili Google 17 00:00:48,590 --> 00:00:49,430 Proračunske tablice. 18 00:00:49,430 --> 00:00:52,980 Imamo baze podataka, tablice, redaka, i stupaca. 19 00:00:52,980 --> 00:00:56,450 I to je zapravo neka vrsta temeljnog skupa 20 00:00:56,450 --> 00:00:58,470 hijerarhijskih sloma ovdje. 21 00:00:58,470 --> 00:00:59,800 Dakle ovdje je Excel spreadsheet-ovima. 22 00:00:59,800 --> 00:01:02,640 A ako ste ikad otvorili ovaj ili neki drugi sličan program 23 00:01:02,640 --> 00:01:06,780 znate da to ovdje rows-- 1, 2, 3, 4, 5, 6, 7, 24 00:01:06,780 --> 00:01:08,760 To su stupovi. 25 00:01:08,760 --> 00:01:11,790 >> Možda ovdje, iako ste svibanj Ne koristite ovu značajku strašno much-- 26 00:01:11,790 --> 00:01:15,370 Ja ću uvećanje in-- smo ova ideja list. 27 00:01:15,370 --> 00:01:17,930 Dakle, možda su ti listovi, ako I izmjenjivati ​​naprijed i natrag, 28 00:01:17,930 --> 00:01:21,600 su različite tablice koje postoji u mom bazi podataka. 29 00:01:21,600 --> 00:01:25,210 A ako mi i dalje na primjer sve Put naziv ove baze podataka 30 00:01:25,210 --> 00:01:26,940 je knjiga 1. 31 00:01:26,940 --> 00:01:28,710 Možda Imam knjigu 2 i 3 knjigu. 32 00:01:28,710 --> 00:01:33,270 Dakle, svaki Excel datoteka je baze podataka, svaki list je tablica, 33 00:01:33,270 --> 00:01:39,530 a unutar svake tablice imam ova ideja redaka i stupaca. 34 00:01:39,530 --> 00:01:41,900 >> Pa kako ja radim s ovom bazom podataka? 35 00:01:41,900 --> 00:01:43,630 Kako mogu dobiti informacije od njega? 36 00:01:43,630 --> 00:01:47,540 Pa postoji jezik zove SQL-- koje sam obično samo nazvati Sequel-- 37 00:01:47,540 --> 00:01:50,010 i to stoji za Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 I to je programski jezik, ali to je prilično ograničen programiranje 39 00:01:52,981 --> 00:01:53,480 jezik. 40 00:01:53,480 --> 00:01:56,407 To nije baš kao i drugi da smo radili s. 41 00:01:56,407 --> 00:01:58,240 Ali svrha ove programski jezik 42 00:01:58,240 --> 00:02:01,570 je upita baze podataka, kako bi pitajte informacije baze podataka, 43 00:02:01,570 --> 00:02:04,480 naći informacije u baze podataka, i tako dalje. 44 00:02:04,480 --> 00:02:08,449 >> Također, u CS50-- i to je vrlo zajednička platforma, to se zove MySQL. 45 00:02:08,449 --> 00:02:10,600 To je ono što koristimo u tijeku. 46 00:02:10,600 --> 00:02:12,880 To je open source platforma koja uspostavlja 47 00:02:12,880 --> 00:02:16,732 takozvani relacijskih database-- baza podataka, učinkovito. 48 00:02:16,732 --> 00:02:18,440 Ne trebate dobiti u previše detalja 49 00:02:18,440 --> 00:02:20,930 na što je relacijskih baza podataka je. 50 00:02:20,930 --> 00:02:24,650 No, SQL jezik vrlo vješt u radno 51 00:02:24,650 --> 00:02:29,760 s MySQL i druga slična stilovi relacijskim bazama podataka. 52 00:02:29,760 --> 00:02:34,010 >> I mnogi postrojenja MySQL dolaze s nešto 53 00:02:34,010 --> 00:02:37,760 zove phpMyAdmin, koji je grafičko korisničko 54 00:02:37,760 --> 00:02:40,970 interface-- je GUI-- da čini malo više 55 00:02:40,970 --> 00:02:44,410 user friendly izvršiti upita baze podataka, 56 00:02:44,410 --> 00:02:48,980 jer baza podataka ne samo koristi napredne programera, zar ne? 57 00:02:48,980 --> 00:02:51,510 Ponekad postoje ove male tvrtke, 58 00:02:51,510 --> 00:02:53,900 i oni ne mogu priuštiti zaposliti tim programera, 59 00:02:53,900 --> 00:02:56,700 ali još uvijek je potrebno pohraniti informacije u bazu podataka. 60 00:02:56,700 --> 00:02:59,300 >> Nešto poput phpMyAdmin ga čini vrlo lako za nekoga 61 00:02:59,300 --> 00:03:03,630 tko nikad nije programiran da prije pokupiti i upoznati s načinom 62 00:03:03,630 --> 00:03:07,710 za rad s bazom podataka. 63 00:03:07,710 --> 00:03:11,800 Problem je, phpMyAdmin, a to je fantastičan alat za učenje 64 00:03:11,800 --> 00:03:14,850 o bazama podataka, to je ručni. 65 00:03:14,850 --> 00:03:18,050 Ti si idući u morati prijaviti na to i izvršiti naredbe i tip 66 00:03:18,050 --> 00:03:19,910 stvari u ručno. 67 00:03:19,910 --> 00:03:23,160 >> A kao što znamo iz naše Primjer na PHP web programiranje, 68 00:03:23,160 --> 00:03:26,550 potrebe da ručno napraviti stvari na našim web stranicama, 69 00:03:26,550 --> 00:03:30,970 ako želimo dinamična, aktivna osjetljiv web stranica, možda i nije najbolji pristup. 70 00:03:30,970 --> 00:03:33,980 Želimo pronaći put do Možda to nekako automatizirati. 71 00:03:33,980 --> 00:03:37,864 I SQL će nam omogućiti da to učinite. 72 00:03:37,864 --> 00:03:39,780 Dakle, kada ćemo početi raditi sa SQL, 73 00:03:39,780 --> 00:03:41,220 prvo moramo imati Baza raditi. 74 00:03:41,220 --> 00:03:42,510 Stvaranje baze podataka je nešto što je vjerojatno 75 00:03:42,510 --> 00:03:45,350 će učiniti u phpMyAdmin, jer samo trebate to učiniti jednom, 76 00:03:45,350 --> 00:03:49,690 i sintaksa za to je puno više jednostavan. 77 00:03:49,690 --> 00:03:51,940 To je puno lakše za napraviti u grafičkom korisničkom sučelju 78 00:03:51,940 --> 00:03:53,520 nego ga upisivati ​​izvan kao zapovijed. 79 00:03:53,520 --> 00:03:55,186 Naredba se može dobiti malo težak. 80 00:03:55,186 --> 00:03:58,889 Isto tako, stvarajući stol dobili vrlo malo glomazan kao dobro. 81 00:03:58,889 --> 00:04:01,930 I tako stvari kao što su stvaranje baze podataka i stvaranje tablice, koje ste 82 00:04:01,930 --> 00:04:06,270 vjerojatno samo će učiniti once-- jednom po stolu, jednom po database-- 83 00:04:06,270 --> 00:04:09,040 to je u redu to učiniti u grafičko sučelje. 84 00:04:09,040 --> 00:04:11,570 U procesu stvaranje tablice, vi ćete 85 00:04:11,570 --> 00:04:14,840 Također morate navesti sve od stupaca koji će biti u toj tablici. 86 00:04:14,840 --> 00:04:18,149 Kakve informacije učiniti želite pohraniti u tablici? 87 00:04:18,149 --> 00:04:24,520 Možda naziv korisnički i datum rođenja, lozinka, korisnički ID broj, a možda i 88 00:04:24,520 --> 00:04:26,170 grad i država, zar ne? 89 00:04:26,170 --> 00:04:30,080 >> I svaki put želimo dodati korisnika bazi podataka, želimo da se svih šest 90 00:04:30,080 --> 00:04:31,890 tih komada informacija. 91 00:04:31,890 --> 00:04:34,840 I mi to učiniti dodavanjem redaka u tablici. 92 00:04:34,840 --> 00:04:37,800 Tako smo prvo stvoriti bazu podataka, onda ćemo stvoriti tablicu. 93 00:04:37,800 --> 00:04:40,100 U sklopu izrade stol, od nas se traži 94 00:04:40,100 --> 00:04:44,280 navesti svaki stupac koji želimo u ovoj tablici. 95 00:04:44,280 --> 00:04:47,247 A onda kao što smo započeli dodati informacije na bazi 96 00:04:47,247 --> 00:04:49,580 i upita baze podataka više generally-- ne samo dodao, 97 00:04:49,580 --> 00:04:51,610 ali sve ostalo smo do-- ćemo se bave 98 00:04:51,610 --> 00:04:58,870 s redovima stola, što je jedan Korisnički podaci iz cijelog seta. 99 00:04:58,870 --> 00:05:03,210 >> Dakle, svaki SQL stupac je sposoban drži podatke o određenoj vrsti podataka. 100 00:05:03,210 --> 00:05:06,560 Tako smo vrsta eliminira ovaj Ideja vrste podataka u PHP, 101 00:05:06,560 --> 00:05:08,747 ali oni su ovdje u SQL. 102 00:05:08,747 --> 00:05:10,080 I tu je puno tipova podataka. 103 00:05:10,080 --> 00:05:13,420 Evo samo 20 od njih, ali to nije ni sve njih. 104 00:05:13,420 --> 00:05:16,240 Dakle, imamo ideje poput INTs-- Integers-- smo vjerojatno znate 105 00:05:16,240 --> 00:05:17,760 da je ovaj stupac može sadržavati prirodnih brojeva. 106 00:05:17,760 --> 00:05:21,077 A tu su varijacije thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Možda ne uvijek potrebna četiri zalogaja. 108 00:05:22,660 --> 00:05:26,800 Možda trebamo osam bajtova, pa smo Možete koristiti ove varijacije brojeva 109 00:05:26,800 --> 00:05:28,510 biti malo više prostora učinkovit. 110 00:05:28,510 --> 00:05:31,899 Mi možemo učiniti decimalne brojeve, mi možete učiniti brojeve s pomičnim zarezom. 111 00:05:31,899 --> 00:05:32,940 To su prilično slični. 112 00:05:32,940 --> 00:05:34,773 Postoje neke razlike, a ako bi 113 00:05:34,773 --> 00:05:37,330 vole gledati gore SQL vrsta vodiča, 114 00:05:37,330 --> 00:05:40,670 možete vidjeti što je neznatno razlike među njima. 115 00:05:40,670 --> 00:05:43,250 >> Možda želimo pohraniti informacije o datumu i vremenu. 116 00:05:43,250 --> 00:05:47,047 Možda smo praćenja kada korisnik pridružio našu web stranicu, 117 00:05:47,047 --> 00:05:48,880 pa možda želimo imati stupac koji je 118 00:05:48,880 --> 00:05:52,820 datum vrijeme ili vremenska oznaka koja pokazuje kada korisnik zapravo 119 00:05:52,820 --> 00:05:54,130 prijavljen. 120 00:05:54,130 --> 00:05:56,132 Mi možemo učiniti geometrije i linestrings. 121 00:05:56,132 --> 00:05:57,340 To je zapravo prilično cool. 122 00:05:57,340 --> 00:06:01,410 Mogli bismo map out zemljopisno područje korištenja 123 00:06:01,410 --> 00:06:05,110 Koordinata GIS zemljište izvan površinu. 124 00:06:05,110 --> 00:06:08,580 Pa zapravo može pohraniti takvu informacija u SQL stupcu. 125 00:06:08,580 --> 00:06:11,390 >> Tekst je samo div mrljica teksta, možda. 126 00:06:11,390 --> 00:06:12,840 ENUMs su vrsta zanimljiv. 127 00:06:12,840 --> 00:06:16,080 Oni su zapravo postoje u C. Mi ne govoriti o njima jer oni nisu 128 00:06:16,080 --> 00:06:19,110 Strašno uobičajeno, barem CS50. 129 00:06:19,110 --> 00:06:22,680 No, to je popisana tip podataka, koji je sposoban za držanje ograničene vrijednosti. 130 00:06:22,680 --> 00:06:25,940 >> Stvarno dobar primjer ovdje bi se stvoriti nabrajanja gdje sedam 131 00:06:25,940 --> 00:06:29,394 Moguće vrijednosti su nedjelja, ponedjeljak, Utorak, srijeda, četvrtak, petak, 132 00:06:29,394 --> 00:06:30,060 Subota, zar ne? 133 00:06:30,060 --> 00:06:33,311 Ta vrsta podataka Dan Tjedan ne postoji, 134 00:06:33,311 --> 00:06:35,310 ali smo mogli stvoriti nabrojane tip podataka kao 135 00:06:35,310 --> 00:06:39,400 da je stupac može uvijek samo držati jedan od onih sedam mogućih vrijednosti. 136 00:06:39,400 --> 00:06:44,300 Mi smo popisani svi od mogućih vrijednosti. 137 00:06:44,300 --> 00:06:47,630 >> Onda smo CHAR i VARCHAR, a ja sam to zelena boja 138 00:06:47,630 --> 00:06:49,505 jer smo zapravo će uzeti sekundu 139 00:06:49,505 --> 00:06:51,950 govoriti o razlici između ove dvije stvari. 140 00:06:51,950 --> 00:06:55,780 Dakle CHAR, za razliku od C gdje CHAR je jedan lik, 141 00:06:55,780 --> 00:07:00,730 u SQL char odnosi fiksni string duljine. 142 00:07:00,730 --> 00:07:02,620 A kad smo stvorili ovo stupac, mi zapravo 143 00:07:02,620 --> 00:07:05,070 može odrediti duljinu niza. 144 00:07:05,070 --> 00:07:08,080 >> Dakle, u ovom primjeru, mogli bismo reći CHAR (10). 145 00:07:08,080 --> 00:07:11,190 To znači da je svaki element tog stupca 146 00:07:11,190 --> 00:07:13,910 će se sastojati od 10 bajtova podataka. 147 00:07:13,910 --> 00:07:15,770 Nema više, ni manje. 148 00:07:15,770 --> 00:07:21,780 Dakle, ako ćemo pokušati staviti u 15 bitna ili element 15 znakova 149 00:07:21,780 --> 00:07:25,340 ili vrijednost u ovaj stupac, mi samo smo dobili prvu 10. 150 00:07:25,340 --> 00:07:27,290 Ako stavimo u dva lik dugo vrijednost, 151 00:07:27,290 --> 00:07:30,700 ćemo imati dva likovi, a zatim osam null ugriza. 152 00:07:30,700 --> 00:07:34,990 Nikada nećemo biti učinkovitiji od toga. 153 00:07:34,990 --> 00:07:37,727 >> VARCHAR je vrsta kao naš pojam nizu 154 00:07:37,727 --> 00:07:39,560 da smo upoznati s od C ili PHP. 155 00:07:39,560 --> 00:07:40,830 To je varijabla duljina niza. 156 00:07:40,830 --> 00:07:42,560 A kada ste stvorili ovaj stupac, samo 157 00:07:42,560 --> 00:07:44,860 odrediti maksimalne moguće dužine. 158 00:07:44,860 --> 00:07:49,065 Dakle, možda 99 ili obično 255. 159 00:07:49,065 --> 00:07:50,440 To će biti maksimalna duljina. 160 00:07:50,440 --> 00:07:52,890 I tako, ako smo bili spremanje 15 niz znakova, 161 00:07:52,890 --> 00:07:56,157 mi bi koristili 15 bajtova, možda 16 za nultu Terminator bajtova. 162 00:07:56,157 --> 00:07:57,990 Ako smo pohranjivanja tri niza znakova, 163 00:07:57,990 --> 00:08:01,120 mi bi koristiti tri ili četiri bajta. 164 00:08:01,120 --> 00:08:03,050 Ali mi ne bi koristili puni 99. 165 00:08:03,050 --> 00:08:05,190 >> Pa zašto bi smo oboje? 166 00:08:05,190 --> 00:08:08,210 Pa, ako moramo shvatiti kako dugo je nešto s VARCHAR, 167 00:08:08,210 --> 00:08:10,680 moramo vrste ponoviti preko njega baš kao što smo učinili u C 168 00:08:10,680 --> 00:08:12,230 i shvatiti gdje se zaustavlja. 169 00:08:12,230 --> 00:08:15,920 Dok ako znamo da je sve u ovom stupcu je 10 bajtova, možda 170 00:08:15,920 --> 00:08:19,220 znamo te podatke, možemo skočiti 10 bajtova, 10 bajtova, 10 bajtova, 10 bajtova, 171 00:08:19,220 --> 00:08:21,790 i uvijek pronaći početak niza. 172 00:08:21,790 --> 00:08:25,210 >> Dakle, možemo imati neke izgubiti prostor s CHAR, 173 00:08:25,210 --> 00:08:28,510 ali možda postoji trgovinu off imaju bolju brzinu 174 00:08:28,510 --> 00:08:30,160 u kretanju baze podataka. 175 00:08:30,160 --> 00:08:32,330 Ali možda želimo fleksibilnost u VARCHAR 176 00:08:32,330 --> 00:08:36,710 umjesto having-- Ako naš CHAR bio je 255, ali većina naših korisnika 177 00:08:36,710 --> 00:08:40,537 su samo unosom tri ili četiri bajta vrijedno informacija ili tri ili četiri 178 00:08:40,537 --> 00:08:41,870 likovi vrijedan informacija. 179 00:08:41,870 --> 00:08:44,324 >> No, neki korisnici su pomoću cijeli 255, možda 180 00:08:44,324 --> 00:08:45,990 VARCHAR bi prikladnije bilo. 181 00:08:45,990 --> 00:08:49,840 To je neka vrsta trgovine off, i općenito u svrhu CS50, 182 00:08:49,840 --> 00:08:54,107 ne morate brinuti previše o koristite li ugljen ili varchar. 183 00:08:54,107 --> 00:08:57,190 No, u stvarnom svijetu, te stvari ne smeta, jer sve ove stupce 184 00:08:57,190 --> 00:08:59,300 zauzimaju stvarni fizički prostor. 185 00:08:59,300 --> 00:09:04,150 I fizički prostor, u stvarni svijet, dolazi u premium. 186 00:09:04,150 --> 00:09:06,800 >> Dakle, jedan drugog obzir kada izgradnji stol 187 00:09:06,800 --> 00:09:09,840 je odabrati jedan stupac se ono što se zove primarni ključ. 188 00:09:09,840 --> 00:09:14,350 I primarni ključ je stupac gdje je svaka pojedinačna vrijednost je jedinstven. 189 00:09:14,350 --> 00:09:19,980 A to znači da možete lako izabrati jedan red samo gledanjem 190 00:09:19,980 --> 00:09:22,450 na primarni ključ tog reda. 191 00:09:22,450 --> 00:09:24,580 Tako na primjer, uglavnom, s korisnicima, 192 00:09:24,580 --> 00:09:27,210 ne želim dva korisnika koji imaju isti korisnički ID broj. 193 00:09:27,210 --> 00:09:28,960 I tako možda imate puno informacija, 194 00:09:28,960 --> 00:09:30,793 a možda i dvije korisnici mogu imaju istu name-- 195 00:09:30,793 --> 00:09:32,650 imate John Smith i John Smith. 196 00:09:32,650 --> 00:09:34,520 To nije nužno problem, jer postoji više ljudi 197 00:09:34,520 --> 00:09:35,830 u svijetu se zove John Smith. 198 00:09:35,830 --> 00:09:40,766 Ali imamo samo jedan korisnički ID broj 10, jedan korisnički ID broj 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Nemamo dva korisnika s istim brojem, 200 00:09:42,640 --> 00:09:46,010 i tako možda korisnički ID brojevi bi bilo dobro primarni ključ. 201 00:09:46,010 --> 00:09:48,610 >> Nemamo nikakvu dupliciranje, i sada možemo jedinstveno 202 00:09:48,610 --> 00:09:52,619 identificiraju svaki redak samo gledajući tu kolonu. 203 00:09:52,619 --> 00:09:55,410 Odabir primarne ključeve zapravo može napraviti naknadne operacije stol 204 00:09:55,410 --> 00:09:59,710 puno lakše jer možete utjecati činjenica da su određene retke će 205 00:09:59,710 --> 00:10:02,720 biti jedinstven, ili određeni stupac Vaše baze podataka ili tablice 206 00:10:02,720 --> 00:10:06,030 će biti jedinstven za pokupiti out pojedine retke. 207 00:10:06,030 --> 00:10:08,790 >> Također možete imati zajedničku primarni Ključ koji možete naći prigodu 208 00:10:08,790 --> 00:10:11,720 koristiti, što je samo kombinacija dva stupca koji 209 00:10:11,720 --> 00:10:13,280 zasigurno biti jedinstveno. 210 00:10:13,280 --> 00:10:16,410 Pa možda imate stupac koji je kao i B, 211 00:10:16,410 --> 00:10:19,290 jedan stupac to je jedan, dva, i tri, ali samo ćete ikad 212 00:10:19,290 --> 00:10:23,660 imaju jednu A1, jedan A2, i tako dalje i tako dalje. 213 00:10:23,660 --> 00:10:28,980 Ali možda imate B2, C2, ili A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Dakle, možete imati više Kao, višestruki B, više one, više dvojke, 215 00:10:32,840 --> 00:10:38,567 ali samo ikada imati jedan A1, B2, C3, i tako dalje. 216 00:10:38,567 --> 00:10:40,400 Dakle, kao što sam rekao, SQL je programski jezik, 217 00:10:40,400 --> 00:10:42,024 ali ima prilično ograničen vokabular. 218 00:10:42,024 --> 00:10:44,880 To nije baš tako prostrani kao C i PHP i drugim jezicima 219 00:10:44,880 --> 00:10:46,350 da govorimo u tijeku. 220 00:10:46,350 --> 00:10:49,960 To je više preopširan jezik od onoga što smo 221 00:10:49,960 --> 00:10:52,789 ćemo govoriti o tome u ovom Video, jer je u ovom videu 222 00:10:52,789 --> 00:10:54,830 ćemo govoriti o četiri operacije koje mi 223 00:10:54,830 --> 00:10:55,720 mogu obavljati na stol. 224 00:10:55,720 --> 00:10:56,761 >> Postoji više od toga. 225 00:10:56,761 --> 00:10:58,730 Mi možemo učiniti više od toga, ali za naše potrebe, 226 00:10:58,730 --> 00:11:02,250 mi smo uglavnom će se koristiti Samo četiri operations-- umetak, 227 00:11:02,250 --> 00:11:05,360 odabir, ažurirati i brisati. 228 00:11:05,360 --> 00:11:08,750 I vjerojatno možete pogoditi intuitivno što sve četiri od tih stvari raditi. 229 00:11:08,750 --> 00:11:12,520 No, mi ćemo ići u malo pojedinosti o svakom od njih. 230 00:11:12,520 --> 00:11:15,780 >> Dakle, za potrebe ovog Video, pretpostavimo 231 00:11:15,780 --> 00:11:18,870 smo sljedeće dvije tablice u jedinstvenu bazu podataka. 232 00:11:18,870 --> 00:11:23,460 Imamo stol pozvao korisnike da ima četiri columns-- ID broj, korisničko ime, 233 00:11:23,460 --> 00:11:25,350 lozinku i ime i prezime. 234 00:11:25,350 --> 00:11:27,430 I imamo drugi stol u istoj bazi podataka 235 00:11:27,430 --> 00:11:32,129 zove Moms da je samo pohranjuje podatke o korisničkim imenom i majka. 236 00:11:32,129 --> 00:11:33,920 Dakle, za sve primjere u ovom videu, mi ćemo 237 00:11:33,920 --> 00:11:37,945 koristiti ovu bazu podataka i naknadna ažuriranja na njega. 238 00:11:37,945 --> 00:11:40,070 Dakle, recimo da želimo dodavanje podataka stolu. 239 00:11:40,070 --> 00:11:44,460 To je ono što je operacija umetak radi. 240 00:11:44,460 --> 00:11:46,550 U objašnjenju sve ove naredbe, idem 241 00:11:46,550 --> 00:11:48,860 vam dati opći kostur za korištenje. 242 00:11:48,860 --> 00:11:51,661 Jer u osnovi, upite će izgledati lijepo slično, 243 00:11:51,661 --> 00:11:54,660 samo ćemo se mijenja malo različite dijelove informacije 244 00:11:54,660 --> 00:11:56,750 raditi različite stvari sa stola. 245 00:11:56,750 --> 00:11:59,200 >> Dakle, za INSERT, kostura Izgleda vrsta kao što je ovaj. 246 00:11:59,200 --> 00:12:02,230 Želimo umetnuti u određeni stol. 247 00:12:02,230 --> 00:12:05,290 Onda imamo otvorenu zagradu i popis stupaca 248 00:12:05,290 --> 00:12:08,070 da želimo staviti vrijednosti u. 249 00:12:08,070 --> 00:12:10,974 Zatvori zagradama, Sljedeće vrijednosti, a zatim 250 00:12:10,974 --> 00:12:13,390 Ponovno smo se popis vrijednosti želimo staviti u tablici. 251 00:12:13,390 --> 00:12:15,950 >> Dakle, primjer za to će biti sljedeće. 252 00:12:15,950 --> 00:12:19,170 Želim umetnuti u tablicu Korisnici sljedeće columns-- 253 00:12:19,170 --> 00:12:21,010 korisničko ime, lozinku i Korisnik FULLNAME. 254 00:12:21,010 --> 00:12:25,282 Dakle, novi redak u kojem sam stavljajući u tim tri stupca, a mi smo 255 00:12:25,282 --> 00:12:30,030 će staviti u vrijednosti Newman, USMAIL i Newman. 256 00:12:30,030 --> 00:12:32,730 Dakle, u ovom slučaju, ja sam stavljajući malim slovom Newman 257 00:12:32,730 --> 00:12:38,710 u stupcu korisničkim imenom, lozinkom USMAIL, a puni naziv grada N 258 00:12:38,710 --> 00:12:41,940 Newman u Korisnik FULLNAME kolonu. 259 00:12:41,940 --> 00:12:44,240 >> Evo što je baza podataka izgledao kao prije. 260 00:12:44,240 --> 00:12:48,250 Evo što je stol korisnicima na Top izgledao kao prije nego što je to učinio. 261 00:12:48,250 --> 00:12:50,760 Nakon što smo izvršiti ovu upita, dobili smo ovo. 262 00:12:50,760 --> 00:12:54,790 Dodali smo novi redak u tablici. 263 00:12:54,790 --> 00:12:56,810 Ali primijetite tu jednu stvar da nisu naveli, 264 00:12:56,810 --> 00:12:59,880 ali nekako imam vrijednost za što je ovo 12 ovdje. 265 00:12:59,880 --> 00:13:02,820 Nisam rekla da želim staviti identifikacijski broj tamo. 266 00:13:02,820 --> 00:13:04,900 Htjela sam staviti ime, lozinku, Korisnik FULLNAME. 267 00:13:04,900 --> 00:13:06,440 I ja to učinio, to je u redu. 268 00:13:06,440 --> 00:13:07,760 >> Ali ja također dobio ovaj 12. 269 00:13:07,760 --> 00:13:09,490 Zašto se to 12.? 270 00:13:09,490 --> 00:13:12,904 Pa, ispada da kada se definiraju 271 00:13:12,904 --> 00:13:15,570 stupac koji će biti tvoj primarni ključ, što je obično, 272 00:13:15,570 --> 00:13:16,510 kao što sam rekao, identifikacijski broj. 273 00:13:16,510 --> 00:13:18,718 To nije uvijek nužno će biti matični broj, 274 00:13:18,718 --> 00:13:22,380 ali to je obično dobra ideja da nekakva cjelobrojna vrijednost. 275 00:13:22,380 --> 00:13:25,950 Imate opciju u phpMyAdmin prilikom stvaranja baze podataka 276 00:13:25,950 --> 00:13:31,130 ili vaš stol postaviti da Kolona kao auto povećavati. 277 00:13:31,130 --> 00:13:34,520 >> Što je stvarno dobra ideja kada radite s primarni ključ, 278 00:13:34,520 --> 00:13:39,330 jer želite sve vrijednosti u tom stupcu biti jedinstveni. 279 00:13:39,330 --> 00:13:43,310 A ako ste zaboravili navesti je za više od jedne osobe, 280 00:13:43,310 --> 00:13:46,240 sada imate situaciju u kojoj da kolona više nije jedinstvena. 281 00:13:46,240 --> 00:13:50,200 Imate dvije praznine, tako da možete bez više jedinstveno identificira column-- 282 00:13:50,200 --> 00:13:54,150 ili više ne možete jedinstveno identificirati red na temelju tog stupca. 283 00:13:54,150 --> 00:13:57,010 To je izgubio sve njegove vrijednost kao primarni ključ. 284 00:13:57,010 --> 00:14:02,010 >> I tako očito ono što sam učinio Ovdje je konfiguriran ID korisnika 285 00:14:02,010 --> 00:14:07,790 Kolona se auto prirast, tako da svaki Vrijeme dodam podatke u tablici, 286 00:14:07,790 --> 00:14:12,220 to će mi automatski dati vrijednost za primarni ključ. 287 00:14:12,220 --> 00:14:15,570 Pa ja nikada ne mogu zaboraviti to učiniti, jer baza podataka će to učiniti za mene. 288 00:14:15,570 --> 00:14:16,587 Dakle, to je vrsta lijepo. 289 00:14:16,587 --> 00:14:18,670 I tako to je razlog zašto smo dobili 12 tamo, jer sam 290 00:14:18,670 --> 00:14:21,772 postaviti taj stupac up na auto prirast. 291 00:14:21,772 --> 00:14:23,730 Ako sam dodao netko drugi bilo bi 13, ako sam dodao 292 00:14:23,730 --> 00:14:27,890 netko drugi to bi bilo 14, i tako dalje. 293 00:14:27,890 --> 00:14:30,190 >> Pa neka je samo napraviti još jedan umetanje. 294 00:14:30,190 --> 00:14:34,530 Mi ćemo umetnuti u tablici mame, u Konkretno, korisničko ime i majka 295 00:14:34,530 --> 00:14:37,390 stupaca, vrijednosti Kramer i Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 I tako smo imali prije. 297 00:14:39,140 --> 00:14:41,800 Nakon što smo izvršiti da SQL upit, imamo ovo. 298 00:14:41,800 --> 00:14:47,290 Dodali smo Kramer i Babs Kramer na stol mame. 299 00:14:47,290 --> 00:14:48,350 >> Tako da je umetanje. 300 00:14:48,350 --> 00:14:51,850 SELECT je ono što ćemo koristiti za izdvajanje Podaci iz tablice. 301 00:14:51,850 --> 00:14:54,390 Dakle, to je kako smo dobili Podaci iz baze podataka. 302 00:14:54,390 --> 00:14:59,589 I tako SELECT naredbe će biti Vrlo često se koristi u programiranju. 303 00:14:59,589 --> 00:15:02,130 Opći framework-- Općenito kostur izgleda ovako. 304 00:15:02,130 --> 00:15:06,550 Odaberite skup stupaca iz stol, a zatim po potrebi 305 00:15:06,550 --> 00:15:11,090 možete odrediti condition-- ili ono što mi obično nazivamo predikat, 306 00:15:11,090 --> 00:15:13,010 je obično pojam koristimo u SQL. 307 00:15:13,010 --> 00:15:16,490 >> No, to je u osnovi ono što Pojedini redovi želite dobiti. 308 00:15:16,490 --> 00:15:19,100 Ako želite, umjesto da se sve, suzili ga, 309 00:15:19,100 --> 00:15:20,060 ovo je mjesto gdje bi to učiniti. 310 00:15:20,060 --> 00:15:22,777 I onda po želji, također možete naručiti određeni stupac. 311 00:15:22,777 --> 00:15:25,860 Dakle, možda želite imati stvari sortirane abecednom temelji na jednom stupcu 312 00:15:25,860 --> 00:15:27,540 ili abecedno temelju drugog. 313 00:15:27,540 --> 00:15:30,610 >> Opet, gdje i ORDER BY izborni. 314 00:15:30,610 --> 00:15:32,681 Ali vjerojatno će biti useful-- osobito 315 00:15:32,681 --> 00:15:34,680 Gdje će biti korisno suziti tako da ne 316 00:15:34,680 --> 00:15:37,460 dobiti svoj cijelu bazu podataka natrag i moraju obraditi, samo dobiti 317 00:15:37,460 --> 00:15:39,300 komadi to da vam je stalo. 318 00:15:39,300 --> 00:15:44,932 Tako na primjer, ja možda želite odabrati ID broj i Korisnik FULLNAME od korisnika. 319 00:15:44,932 --> 00:15:46,140 Pa što bi to izgledati? 320 00:15:46,140 --> 00:15:48,270 Dakle ovdje je moj Korisnici stol. 321 00:15:48,270 --> 00:15:51,080 Želim da odaberete idnum i Korisnik FULLNAME od korisnika. 322 00:15:51,080 --> 00:15:52,300 Što ću dobiti? 323 00:15:52,300 --> 00:15:53,580 Idem ovo. 324 00:15:53,580 --> 00:15:56,930 Nisam ga suziti, pa sam uzimajući identifikacijski broj za svaki red 325 00:15:56,930 --> 00:16:00,850 i ja sam uzimajući puni ime iz svakog reda. 326 00:16:00,850 --> 00:16:02,210 >> U REDU. 327 00:16:02,210 --> 00:16:05,640 Što ako želim odabrati zaporku od korisnika WHERE-- tako da sada 328 00:16:05,640 --> 00:16:10,370 Ja sam dodavanjem stanje, predicate-- gdje idnum je manji od 12. 329 00:16:10,370 --> 00:16:13,660 Dakle, ovdje je moja baza podataka opet, moj Korisnici stol vrhu. 330 00:16:13,660 --> 00:16:17,030 Što ću dobiti ako želim odaberite te podatke, lozinka, 331 00:16:17,030 --> 00:16:21,550 gdje korisnički ID ili idnum manji od 12? 332 00:16:21,550 --> 00:16:24,910 Idem da se to Informacije natrag, zar ne? 333 00:16:24,910 --> 00:16:29,170 To se događa da idnum je 10 manje od 12, matični broj 11 manje od 12 godina. 334 00:16:29,170 --> 00:16:32,160 Dobivam lozinku za one retke. 335 00:16:32,160 --> 00:16:33,914 To je ono što sam tražio. 336 00:16:33,914 --> 00:16:34,580 Što s ovim? 337 00:16:34,580 --> 00:16:39,170 Što ako želim odabrati zvijezda iz popisa mame stol gdje korisničko ime jednako Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, odaberite zvijezda je posebna vrsta divlje kartice tzv 339 00:16:43,780 --> 00:16:45,670 koje koristimo kako bi dobili sve. 340 00:16:45,670 --> 00:16:48,620 Tako oni govore odaberite korisničko ime zarezom majku, koja 341 00:16:48,620 --> 00:16:51,060 dogodilo se da je samo dva stupca ove tablice, 342 00:16:51,060 --> 00:16:53,260 Ja samo mogu odabrati zvijezda i dobiti sve 343 00:16:53,260 --> 00:16:55,030 gdje je korisničko ime jednak Jerry. 344 00:16:55,030 --> 00:16:59,380 I tako to je ono što će dobiti ako sam napravio taj određeni upit. 345 00:16:59,380 --> 00:17:01,810 >> Sada, baze podataka super jer omogućuju 346 00:17:01,810 --> 00:17:06,074 nas organizirati informacije možda malo učinkovitije od nas 347 00:17:06,074 --> 00:17:06,740 inače mogli. 348 00:17:06,740 --> 00:17:10,240 Mi ne nužno trgovinu svaki relevantan podatak 349 00:17:10,240 --> 00:17:12,230 o korisniku u istoj tablici. 350 00:17:12,230 --> 00:17:13,730 Imali smo dvije tablice tamo. 351 00:17:13,730 --> 00:17:15,734 >> Moramo spremiti Svi su majke ime, 352 00:17:15,734 --> 00:17:18,900 a možda nemamo socijalnu sigurnost broj, imamo svoj datum rođenja. 353 00:17:18,900 --> 00:17:21,819 To nije uvijek potrebna da se u isti stol. 354 00:17:21,819 --> 00:17:25,339 Dokle god možemo definirati Odnosi između tables-- 355 00:17:25,339 --> 00:17:28,440 i to je gdje je ta relacijska Baza JavaScript vrsta dolazi 356 00:17:28,440 --> 00:17:32,130 u play-- koliko god možemo definirati odnosi između stolova, 357 00:17:32,130 --> 00:17:35,545 možemo vrsta compartmentalize ili apstraktne stvari način, 358 00:17:35,545 --> 00:17:37,670 gdje smo samo imati jako važne informacije 359 00:17:37,670 --> 00:17:39,270 mi je stalo u korisnikovom stola. 360 00:17:39,270 --> 00:17:43,220 I onda imamo pomoćnih podataka ili dodatne informacije u drugim tablicama 361 00:17:43,220 --> 00:17:48,260 koje možemo povezati natrag u glavni Korisnici stol na poseban način. 362 00:17:48,260 --> 00:17:52,200 >> Dakle, ovdje imamo ove dvije tablice, ali postoji odnos između njih, 363 00:17:52,200 --> 00:17:53,010 pravo? 364 00:17:53,010 --> 00:17:55,070 Čini se kao korisničko ime bi moglo biti nešto 365 00:17:55,070 --> 00:17:59,909 da postoji zajedničko između ove dvije različite tablice. 366 00:17:59,909 --> 00:18:01,700 Pa što ako mi sada imamo situacija u kojoj smo 367 00:18:01,700 --> 00:18:06,046 želite dobiti korisničkog puni naziv iz korisnikov stol, a njihova majka 368 00:18:06,046 --> 00:18:07,170 ime iz matične stola? 369 00:18:07,170 --> 00:18:10,960 Nemamo način da se da kao što stoji, zar ne? 370 00:18:10,960 --> 00:18:17,790 Ne postoji niti jedan stol koji sadrži i ime i prezime i majke ime. 371 00:18:17,790 --> 00:18:20,400 Mi nemamo tu opciju od onoga što smo do sada vidjeli. 372 00:18:20,400 --> 00:18:22,950 >> I tako smo uvesti ideja pridružite. 373 00:18:22,950 --> 00:18:24,857 I pridružuje se vjerojatno najviše complex-- 374 00:18:24,857 --> 00:18:27,940 to je stvarno vrlo složena operacija ćemo razgovarati o u videu. 375 00:18:27,940 --> 00:18:30,040 Oni su malo komplicirano, ali jednom kada dobijete dokučiti ga, 376 00:18:30,040 --> 00:18:31,248 oni zapravo nije loš. 377 00:18:31,248 --> 00:18:32,820 To je samo poseban slučaj SELECT. 378 00:18:32,820 --> 00:18:37,120 Ćemo odabrati skup stupaca iz tablice spajanje 379 00:18:37,120 --> 00:18:40,650 u drugom stolu na nekoj predikata. 380 00:18:40,650 --> 00:18:45,340 >> U ovom slučaju, mislim o tome kao this-- Tablica jedna je jedan krug ovdje, 381 00:18:45,340 --> 00:18:47,530 Tablica dva je još jedan krug ovdje. 382 00:18:47,530 --> 00:18:49,410 I to predikat dio u sredini, to je 383 00:18:49,410 --> 00:18:51,701 vrsta kao ako mislite o kao Venn dijagrama, što 384 00:18:51,701 --> 00:18:52,670 oni imaju zajedničko? 385 00:18:52,670 --> 00:18:55,960 Želimo povezati ove dvije tablice na temelju onoga što im je zajedničko 386 00:18:55,960 --> 00:19:01,230 i stvoriti taj hipotetski tablice da je spajanje dva zajedno. 387 00:19:01,230 --> 00:19:03,480 Tako ćemo vidjeti u primjer i možda će vam pomoći 388 00:19:03,480 --> 00:19:04,521 jasno ga malo. 389 00:19:04,521 --> 00:19:09,260 Dakle, možda želite odabrati user.fullname i moms.mother 390 00:19:09,260 --> 00:19:13,220 od korisnika pridružio u mame stol u svakoj situaciji 391 00:19:13,220 --> 00:19:16,790 gdje je korisničko ime kolona je između njih ista. 392 00:19:16,790 --> 00:19:19,240 I ovo je nova Sintaksa ovdje, ovog korisnika. 393 00:19:19,240 --> 00:19:20,460 i mame .. 394 00:19:20,460 --> 00:19:26,697 Ako radim više tablica zajedno, mogu odrediti tablicu. 395 00:19:26,697 --> 00:19:29,530 Ja mogu razlikovati posebice o da je na samom dnu tamo. 396 00:19:29,530 --> 00:19:33,220 Ja mogu razlikovati ime stupac tablice korisnika 397 00:19:33,220 --> 00:19:36,010 iz korisničkim imenom stupcu mame stol, koji su otherwise-- 398 00:19:36,010 --> 00:19:38,070 ako mi samo rekao korisničko ime jednako korisničko ime, da ne stvarno 399 00:19:38,070 --> 00:19:38,970 znači ništa. 400 00:19:38,970 --> 00:19:41,440 Želimo to učiniti, gdje se podudaraju. 401 00:19:41,440 --> 00:19:46,080 >> Dakle, ja mogu odrediti tablicu i ime stupca u slučaju situaciji 402 00:19:46,080 --> 00:19:48,370 gdje će biti nejasno ono što sam pričaju. 403 00:19:48,370 --> 00:19:51,880 Tako da je sve što radim je sam govoreći ovaj stupac iz ove tablice, 404 00:19:51,880 --> 00:19:54,020 i što je vrlo eksplicitno. 405 00:19:54,020 --> 00:19:56,810 Pa opet, ja odabirom puni naziv i majčino ime 406 00:19:56,810 --> 00:20:00,950 od stola korisnici povezani zajedno sa stolom mame u svakoj situaciji 407 00:20:00,950 --> 00:20:05,960 gdje su podijeliti tu column-- dijele tu korisničko ime pojam. 408 00:20:05,960 --> 00:20:08,580 >> Dakle, ovdje su stolovi smo imali prije. 409 00:20:08,580 --> 00:20:12,210 To je stanje naše Baza kao što postoji upravo sada. 410 00:20:12,210 --> 00:20:16,390 Informacije smo vađenje je to za početak. 411 00:20:16,390 --> 00:20:19,820 Ovo je nova tablica ćemo stvoriti kombinirajući to zajedno. 412 00:20:19,820 --> 00:20:23,585 I primijetiti nismo isticanje Newman je red na korisnikovom stolom, 413 00:20:23,585 --> 00:20:25,960 i nismo isticanje Kramer je red u tablici mame 414 00:20:25,960 --> 00:20:31,250 jer niti jedan postoji u kako sets-- u obje tablice. 415 00:20:31,250 --> 00:20:36,260 >> Jedini podatak koji je zajednički između njih je Jerry u obje tablice 416 00:20:36,260 --> 00:20:39,100 i gcostanza je u obje tablice. 417 00:20:39,100 --> 00:20:42,620 I tako, kada mi je SQL JOIN, što smo get-- i radimo zapravo dobiti ovo. 418 00:20:42,620 --> 00:20:44,830 To je vrsta privremenog varijable. 419 00:20:44,830 --> 00:20:47,330 To je kao hipotetski spajanje dvije tablice. 420 00:20:47,330 --> 00:20:49,930 Mi zapravo nešto ovako, gdje 421 00:20:49,930 --> 00:20:54,730 smo spojene zajedno tablicama na informacije koje im je zajedničko. 422 00:20:54,730 --> 00:20:58,334 >> Dakle, primijetite da users.username i moms.username stupac, 423 00:20:58,334 --> 00:20:59,250 to je točno isto. 424 00:20:59,250 --> 00:21:01,820 To je podatak da je u skladu s korisnicima 425 00:21:01,820 --> 00:21:02,890 stol i stol mame. 426 00:21:02,890 --> 00:21:04,270 I tako smo ih spojili zajedno. 427 00:21:04,270 --> 00:21:06,919 Odbačena smo Kramer, jer je on ne postoji u tablici korisnika, 428 00:21:06,919 --> 00:21:09,710 a mi odbačena Newmana, jer on ne postoji u tablici mame. 429 00:21:09,710 --> 00:21:16,450 Dakle, ovo je hipotetski spajanje pomoću Pridružite rad SELECT. 430 00:21:16,450 --> 00:21:21,250 >> A onda su mi u potrazi za korisnički puni naziv i korisnikov majka, 431 00:21:21,250 --> 00:21:24,999 pa to je podatak da bismo dobili od ukupnog upit 432 00:21:24,999 --> 00:21:26,040 koje smo napravili s odabranim. 433 00:21:26,040 --> 00:21:28,873 Tako smo se pridružio tablice zajedno i smo izdvojili one dvije kolone, 434 00:21:28,873 --> 00:21:31,610 pa to je ono što bismo dobili. 435 00:21:31,610 --> 00:21:33,370 Ali SQL pridružuje vrsta komplicirano. 436 00:21:33,370 --> 00:21:36,770 Vjerojatno ih neće učiniti previše, ali samo neke ideje o kosturu 437 00:21:36,770 --> 00:21:41,992 da biste mogli koristiti za spajanje dva Stolovi zajedno ako bilo potrebno. 438 00:21:41,992 --> 00:21:43,700 Posljednja dva su malo jednostavnije obećavam. 439 00:21:43,700 --> 00:21:48,040 Dakle ažuriranje, možemo koristiti UPDATE mijenjati podatke u tablici. 440 00:21:48,040 --> 00:21:53,880 Opći format je UPDATE neke stol, postaviti neke stupac do neke vrijednosti 441 00:21:53,880 --> 00:21:55,540 Gdje su neki predikat je zadovoljan. 442 00:21:55,540 --> 00:21:57,850 Tako, na primjer, mogli bismo želimo ažurirati tablicu korisnika 443 00:21:57,850 --> 00:22:04,400 i postavite lozinku za BLA Yada, gdje je ID broj je 10. 444 00:22:04,400 --> 00:22:06,400 >> Dakle, u ovom slučaju, mi smo ažuriranje tablice korisnicima. 445 00:22:06,400 --> 00:22:08,275 ID broj je 10 za da prvi red tamo, 446 00:22:08,275 --> 00:22:10,690 i želimo ažurirati lozinku za naklapanje. 447 00:22:10,690 --> 00:22:12,170 I tako to je ono što će se dogoditi. 448 00:22:12,170 --> 00:22:13,628 To je prilično jednostavan, zar ne? 449 00:22:13,628 --> 00:22:17,990 To je samo vrlo jednostavan izmjena stola. 450 00:22:17,990 --> 00:22:22,250 >> DELETE se rad koristi smo ukloniti podatke iz tablice. 451 00:22:22,250 --> 00:22:24,817 Izbrisati iz stola gdje neki predikat je zadovoljan. 452 00:22:24,817 --> 00:22:26,900 Želimo izbrisati iz Korisnici stol za primjer 453 00:22:26,900 --> 00:22:28,254 gdje je korisničko ime je Newman. 454 00:22:28,254 --> 00:22:31,420 Vjerojatno možete pretpostaviti što će se ovdje dogoditi nakon što smo izvršiti tu SQL 455 00:22:31,420 --> 00:22:35,790 upita, Newman je otišao od stola. 456 00:22:35,790 --> 00:22:40,460 >> Dakle, sve ove radnje, kao što sam rekao, vrlo jednostavno za napraviti u phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 To je vrlo korisnik prijazan sučelje. 458 00:22:43,020 --> 00:22:45,930 No, to ne zahtijeva ručnu napor. 459 00:22:45,930 --> 00:22:47,840 Mi ne želimo zaposliti ručnog truda. 460 00:22:47,840 --> 00:22:51,280 Želimo naše programe to učiniti za nas, zar ne? 461 00:22:51,280 --> 00:22:53,190 Tako smo možda želite učiniti ovaj programski. 462 00:22:53,190 --> 00:22:56,410 Želimo da se uključi SQL i imati nešto drugo to učiniti za nas. 463 00:22:56,410 --> 00:23:02,710 >> No, ono što smo vidjeli koja omogućuje nas programatski nešto učiniti? 464 00:23:02,710 --> 00:23:03,690 Vidjeli smo PHP, zar ne? 465 00:23:03,690 --> 00:23:05,760 On uvodi neke dinamika u naše programe. 466 00:23:05,760 --> 00:23:10,430 I tako Srećom, SQL i PHP igraju vrlo lijepo zajedno. 467 00:23:10,430 --> 00:23:13,230 Postoji funkcija u PHP zove upit, koji se može koristiti. 468 00:23:13,230 --> 00:23:15,870 A možete proći kao parametar ili argument 469 00:23:15,870 --> 00:23:19,210 upita SQL upit koji želite izvršiti. 470 00:23:19,210 --> 00:23:23,250 I PHP će to učiniti u vaše ime. 471 00:23:23,250 --> 00:23:25,564 >> Dakle, nakon što ste povezani na bazi podataka s PHP, 472 00:23:25,564 --> 00:23:26,980 postoje dva predizborima ste to učinili. 473 00:23:26,980 --> 00:23:29,230 Postoji nešto što se zove MySQLi i nešto što se zove PDO. 474 00:23:29,230 --> 00:23:31,063 Nećemo ići u veliki Iznos detalj tamo. 475 00:23:31,063 --> 00:23:32,957 U CS50 koristimo PDO. 476 00:23:32,957 --> 00:23:34,790 Nakon što ste spojeni na svoju bazu podataka, 477 00:23:34,790 --> 00:23:40,980 Zatim možete napraviti upita baze podataka donošenjem upite kao argumente 478 00:23:40,980 --> 00:23:42,730 za PHP funkcija. 479 00:23:42,730 --> 00:23:46,460 A kada to učinite, možete pohraniti skup rezultata u asocijativni niz. 480 00:23:46,460 --> 00:23:50,290 >> A znamo kako raditi s asocijativne nizove u PHP. 481 00:23:50,290 --> 00:23:52,630 Tako sam mogao nešto reći kao this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 ovo je PHP-- jednak upit. 483 00:23:55,470 --> 00:23:57,660 A onda unutrašnjosti Funkcija upit koji argument 484 00:23:57,660 --> 00:24:00,130 da sam prolazu upita da izgleda kao SQL. 485 00:24:00,130 --> 00:24:01,160 A u stvari je to SQL. 486 00:24:01,160 --> 00:24:05,700 To je niza upita da bih željeli izvršiti na mom bazi podataka. 487 00:24:05,700 --> 00:24:09,250 >> I tako je u crveno, to je PHP. 488 00:24:09,250 --> 00:24:11,890 To je SQL da sam integriranje u PHP čineći 489 00:24:11,890 --> 00:24:15,020 to je argument u funkciji upit. 490 00:24:15,020 --> 00:24:19,640 Želim da odaberete Korisnik FULLNAME iz Korisnici gdje Matični broj iznosi 10. 491 00:24:19,640 --> 00:24:22,560 A onda možda nakon što sam to učinio, Možda sam reći nešto poput ovoga. 492 00:24:22,560 --> 00:24:25,550 Želim ispisati poruka Hvala za prijave. 493 00:24:25,550 --> 00:24:32,530 >> I ja to želim interpolate-- želim interpolirati rezultate $ Korisnik FULLNAME. 494 00:24:32,530 --> 00:24:36,280 I tako to je kako ja radim s tim asocijativni niz koji sam se vratio. 495 00:24:36,280 --> 00:24:39,730 $ rezultati Korisnik FULLNAME bi osnovi završiti ispis, 496 00:24:39,730 --> 00:24:42,870 hvala za prijave, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 To je puno ime gdje idnum jednak 10. 498 00:24:46,570 --> 00:24:48,850 >> I tako ja radim je sam now-- sam pohranjeni 499 00:24:48,850 --> 00:24:52,780 moj upit, rezultati mog upita i rezultira asocijativni niz, 500 00:24:52,780 --> 00:24:56,330 i Korisnik FULLNAME je naziv kolona je sam se za. 501 00:24:56,330 --> 00:25:01,010 Dakle, to je moj ključ u rezultatima asocijativni niz koji ja želim. 502 00:25:01,010 --> 00:25:05,930 Tako Hvala prijave, $ rezultati, Korisnik FULLNAME će ispisati će se držati 503 00:25:05,930 --> 00:25:08,654 Pravo između onih kovrčava aparatić, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 A ja ću željeli ispisati poruku Hvala prijavite Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Sada, mi vjerojatno ne žele teško kod takve stvari, zar ne? 506 00:25:16,652 --> 00:25:19,860 Mi možda želite učiniti nešto poput ispis f, gdje možemo zamijeniti, a možda 507 00:25:19,860 --> 00:25:22,443 prikuplja različite podatke, ili možda ima proces upit 508 00:25:22,443 --> 00:25:23,370 različite informacije. 509 00:25:23,370 --> 00:25:27,920 I tako upita, funkcija upita ima ovaj pojam vrstom zamjene 510 00:25:27,920 --> 00:25:32,310 vrlo sličan ispis f posto ih i posto c, je upitnika. 511 00:25:32,310 --> 00:25:34,290 >> I možemo koristiti pitanje Oznake vrlo analogno 512 00:25:34,290 --> 00:25:38,400 ispisati f zamijeniti varijabli. 513 00:25:38,400 --> 00:25:44,120 Dakle, možda je vaš korisnički prijavljeni ranije, i ti spasio svoj korisnički ID broj 514 00:25:44,120 --> 00:25:51,710 u $ _session PHP super Globalna u ključnom ID. 515 00:25:51,710 --> 00:25:55,947 Dakle, možda nakon što su prijavljeni, postavite _session $ ID jednak 10, 516 00:25:55,947 --> 00:25:58,280 ekstrapolacijom iz primjera smo upravo vidjeli prije sekundu. 517 00:25:58,280 --> 00:26:01,960 >> I tako kad smo zapravo izvršavanje Ovaj upit rezultate sada, 518 00:26:01,960 --> 00:26:08,440 to bi priključite 10, ili što god ID vrijednost $ _session je. 519 00:26:08,440 --> 00:26:10,790 I da nam omogućuje da biti malo dinamičniji. 520 00:26:10,790 --> 00:26:12,699 Nećemo teško kodiranja stvari više. 521 00:26:12,699 --> 00:26:14,490 Mi spremanja podataka negdje i onda 522 00:26:14,490 --> 00:26:18,924 možemo koristiti te podatke opet vrsta generalizirati ono što želimo učiniti, 523 00:26:18,924 --> 00:26:21,090 i samo plug-in i promjena ponašanje naše stranice 524 00:26:21,090 --> 00:26:26,489 na temelju onoga što ID broj korisnika zapravo je nakon što su prijavljeni. 525 00:26:26,489 --> 00:26:28,530 Također je moguće, ipak, kako postaviti rezultati 526 00:26:28,530 --> 00:26:30,840 može sastojati od više redova. 527 00:26:30,840 --> 00:26:33,990 U tom slučaju, morate niz arrays-- 528 00:26:33,990 --> 00:26:35,334 niz asocijativnih polja. 529 00:26:35,334 --> 00:26:37,000 A vi samo trebate ponoviti kroz njega. 530 00:26:37,000 --> 00:26:41,950 A znamo kako ponoviti kroz niz u PHP-u, zar ne? 531 00:26:41,950 --> 00:26:45,600 Dakle, ovdje je vjerojatno složena stvar koju smo dosad vidjeli. 532 00:26:45,600 --> 00:26:49,640 To zapravo integrira tri jezika zajedno. 533 00:26:49,640 --> 00:26:52,920 >> Ovdje u crveno, to je neki HTML. 534 00:26:52,920 --> 00:26:56,872 Ja sam očito starting-- ovo isječak neke HTML da imam. 535 00:26:56,872 --> 00:26:59,580 Počinjem se novi stavak tu kaže se mame za TV Seinfeld. 536 00:26:59,580 --> 00:27:02,350 A onda odmah nakon toga Počinjem stol. 537 00:27:02,350 --> 00:27:06,060 I onda nakon toga, ja imaju neke PHP, zar ne? 538 00:27:06,060 --> 00:27:08,229 Imam sve ove PHP koda tamo. 539 00:27:08,229 --> 00:27:09,645 Ja sam očito će napraviti upit. 540 00:27:09,645 --> 00:27:14,180 A kako bi upit, idem se pomoću SELECT majki iz mame. 541 00:27:14,180 --> 00:27:15,970 >> Dakle, ovo je getting-- to SQL. 542 00:27:15,970 --> 00:27:17,300 Tako je plavo je SQL. 543 00:27:17,300 --> 00:27:19,680 Crvena smo vidjeli prije sekundu bio HTML. 544 00:27:19,680 --> 00:27:21,360 I zeleni ovdje je PHP. 545 00:27:21,360 --> 00:27:23,400 Pa ja sam stvaranje upit mom bazi podataka, ja sam 546 00:27:23,400 --> 00:27:26,040 Odabirom sve od majke u tablici mame. 547 00:27:26,040 --> 00:27:30,710 Ne samo to sužavanje dolje na posebno red, ja tražim za sve njih. 548 00:27:30,710 --> 00:27:33,290 >> Tada sam provjeriti da li je rezultat Ne jednaki jednako lažna. 549 00:27:33,290 --> 00:27:37,410 Ovo je samo moj način provjere vrsta od, ako rezultati nisu jednaki null, 550 00:27:37,410 --> 00:27:40,260 da bismo vidjeli c za primjer. 551 00:27:40,260 --> 00:27:44,000 Uglavnom ovo je samo provjera da bi sigurni da je to zapravo dobio podatke natrag. 552 00:27:44,000 --> 00:27:47,041 Jer ja ne želim započeti ispis iz podataka ako nisam dobio nikakve podatke. 553 00:27:47,041 --> 00:27:50,690 Tada za svaku rezultate kao rezultat foreach sintaksa od PHP-u, sve radim 554 00:27:50,690 --> 00:27:53,399 ispisuje se majke $ rezultat. 555 00:27:53,399 --> 00:27:55,940 I tako ću dobiti set od svih majki each-- 556 00:27:55,940 --> 00:27:59,980 to je niz asocijativnih arrays-- i sam ispis 557 00:27:59,980 --> 00:28:03,649 svaki kao vlastitom nizu tablice. 558 00:28:03,649 --> 00:28:05,690 I to je stvarno lijepa velik dio sve što je na njega. 559 00:28:05,690 --> 00:28:07,750 Znam da je malo malo se ovdje događa 560 00:28:07,750 --> 00:28:13,210 u ovom zadnjem primjeru s nizova arrays-- polja asocijativnih polja. 561 00:28:13,210 --> 00:28:17,340 Ali to zapravo samo ne kuhati dolje u SQL za stvaranje upita, 562 00:28:17,340 --> 00:28:21,102 obično odabiru nakon što ste već stavite podatke u tablici, 563 00:28:21,102 --> 00:28:22,310 i onda samo ga čupanje. 564 00:28:22,310 --> 00:28:25,710 >> A to je da će ga povući u ovom konkretnom slučaju. 565 00:28:25,710 --> 00:28:31,120 Bismo ekstrakt sve pojedinca majke iz tablice mame. 566 00:28:31,120 --> 00:28:35,970 Imamo cijeli niz njih, a mi želim ponoviti kroz i ispis 567 00:28:35,970 --> 00:28:37,630 svaki. 568 00:28:37,630 --> 00:28:40,510 Pa opet, to je vjerojatno najsloženijih primjer 569 00:28:40,510 --> 00:28:44,510 vidjeli smo jer smo miješanjem tri različiti jezici, zar ne? 570 00:28:44,510 --> 00:28:50,100 >> Opet, imamo HTML ovdje u crveno, pomiješana s nekim SQL ovdje u plavo, 571 00:28:50,100 --> 00:28:52,049 pomiješana s nekim PHP u zeleno. 572 00:28:52,049 --> 00:28:53,840 No, sve to odigrati lijepo zajedno, to je 573 00:28:53,840 --> 00:28:57,060 Samo je pitanje razvoja dobre navike, tako da možete dobiti 574 00:28:57,060 --> 00:28:58,780 ih da rade zajedno na način koji želite. 575 00:28:58,780 --> 00:29:03,790 A jedini način da se stvarno učiniti je praksa, praksa, praksa. 576 00:29:03,790 --> 00:29:06,740 Ja sam Doug Lloyd, ovo je CS50. 577 00:29:06,740 --> 00:29:08,647