1 00:00:00,000 --> 00:00:03,493 >> [Zenelejátszási] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: A mi videók A web fejlesztési témák, 4 00:00:07,100 --> 00:00:10,560 mi már említettem a koncepció egy adatbázis egy párszor, ugye? 5 00:00:10,560 --> 00:00:12,700 Tehát egy adatbázis te Valószínűleg megszokhatta 6 00:00:12,700 --> 00:00:15,780 mondjuk a Microsoft Excel vagy Google Táblázat. 7 00:00:15,780 --> 00:00:20,650 Ez tényleg csak egy szervezett táblacsoportban, sorokat és oszlopokat. 8 00:00:20,650 --> 00:00:23,140 >> És egy adatbázis, ahol honlapunkon üzletek 9 00:00:23,140 --> 00:00:26,760 információ, amely fontos a honlapunkat, hogy működjön. 10 00:00:26,760 --> 00:00:30,150 Ismét egy nagyon gyakori példa itt tárol, felhasználónevek és jelszavak 11 00:00:30,150 --> 00:00:32,824 egy adatbázisban, hogy amikor a felhasználó belép a honlapunkon, 12 00:00:32,824 --> 00:00:36,690 Az adatbázis lehet kérdezni, hogy Ha a felhasználó létezik az adatbázisban. 13 00:00:36,690 --> 00:00:39,260 És ha igen, annak ellenőrzése, hogy a jelszó helyes. 14 00:00:39,260 --> 00:00:43,420 És ha a jelszó helyes, akkor tudunk adni nekik, amit az oldal 15 00:00:43,420 --> 00:00:45,370 ők kérő. 16 00:00:45,370 --> 00:00:48,590 >> Szóval akkor valószínűleg ismét ismerős ezzel az ötlettel Excel vagy Google 17 00:00:48,590 --> 00:00:49,430 Táblázatok. 18 00:00:49,430 --> 00:00:52,980 Van adatbázisok, táblázatok, sorok és oszlopok. 19 00:00:52,980 --> 00:00:56,450 És ez valóban egyfajta Az alaphalmaz 20 00:00:56,450 --> 00:00:58,470 hierarchikus bontás itt. 21 00:00:58,470 --> 00:00:59,800 Tehát itt egy Excel táblázatot. 22 00:00:59,800 --> 00:01:02,640 És ha valaha is megnyitotta ezt vagy más hasonló programot 23 00:01:02,640 --> 00:01:06,780 Tudja, hogy ezek itt vannak rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Ezek oszlopok. 25 00:01:08,760 --> 00:01:11,790 >> Talán itt lent, bár lehet, Nem használhatja ezt a funkciót rettenetesen much-- 26 00:01:11,790 --> 00:01:15,370 Majd zoom in-- van ez a gondolat a lap. 27 00:01:15,370 --> 00:01:17,930 Így talán ezek a lapok, ha I. felváltva oda-vissza, 28 00:01:17,930 --> 00:01:21,600 Különböző táblázatok létezik az adatbázis. 29 00:01:21,600 --> 00:01:25,210 És ha továbbra is a példát minden Apropó, a neve az adatbázisban 30 00:01:25,210 --> 00:01:26,940 az 1. könyv. 31 00:01:26,940 --> 00:01:28,710 Talán van Book 2 és 3. könyv. 32 00:01:28,710 --> 00:01:33,270 Így minden Excel fájl egy adatbázis, minden lapon egy táblázat, 33 00:01:33,270 --> 00:01:39,530 és azon belül az egyes táblázatok én ez a gondolat a sorok és oszlopok. 34 00:01:39,530 --> 00:01:41,900 >> Nos, hogyan dolgoznak az adatbázisban? 35 00:01:41,900 --> 00:01:43,630 Hogyan információt szerezni belőle? 36 00:01:43,630 --> 00:01:47,540 Hát van egy nyelv úgynevezett SQL-- amit általában csak hívja Sequel-- 37 00:01:47,540 --> 00:01:50,010 és ez áll a Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 És ez egy programozási nyelv, de ez egy meglehetősen kevés programozási 39 00:01:52,981 --> 00:01:53,480 nyelv. 40 00:01:53,480 --> 00:01:56,407 Ez nem egészen olyan, mint mások hogy dolgoztunk együtt. 41 00:01:56,407 --> 00:01:58,240 De a célja ennek programozási nyelv 42 00:01:58,240 --> 00:02:01,570 az, hogy egy adatbázisból, hogy kérjen információt egy adatbázis, 43 00:02:01,570 --> 00:02:04,480 információt találni a adatbázis, és így tovább. 44 00:02:04,480 --> 00:02:08,449 >> Mi is, a CS50-- és ez egy nagyon közös platform, úgy hívják MySQL. 45 00:02:08,449 --> 00:02:10,600 Ez az, amit használni során. 46 00:02:10,600 --> 00:02:12,880 Ez egy nyílt forráskódú platform, amely megállapítja 47 00:02:12,880 --> 00:02:16,732 egy úgynevezett relációs database-- egy adatbázis, hatékonyan. 48 00:02:16,732 --> 00:02:18,440 Nem kell, hogy hogy túlságosan a részletekbe 49 00:02:18,440 --> 00:02:20,930 milyen egy relációs adatbázis. 50 00:02:20,930 --> 00:02:24,650 De az SQL nyelv Nagyon ügyesen dolgozik 51 00:02:24,650 --> 00:02:29,760 MySQL és más hasonló stílusok relációs adatbázisok. 52 00:02:29,760 --> 00:02:34,010 >> És sok létesítmények MySQL jön valami 53 00:02:34,010 --> 00:02:37,760 nevű phpMyAdmin, amely egy grafikus felhasználói 54 00:02:37,760 --> 00:02:40,970 interface-- egy GUI--, hogy teszi, hogy egy kicsit több, 55 00:02:40,970 --> 00:02:44,410 felhasználóbarát, hogy végre adatbázis-lekérdezések, 56 00:02:44,410 --> 00:02:48,980 mert adatbázisokat nem csak használt a fejlett programozók, ugye? 57 00:02:48,980 --> 00:02:51,510 Néha vannak ezek a kis vállalkozások, 58 00:02:51,510 --> 00:02:53,900 és nem engedhetik meg maguknak, hogy bérel egy csapat programozó, 59 00:02:53,900 --> 00:02:56,700 de még így is meg kell tárolni információkat egy adatbázisban. 60 00:02:56,700 --> 00:02:59,300 >> Olyasmi, mint a phpMyAdmin nagyon könnyűvé teszi valaki 61 00:02:59,300 --> 00:03:03,630 aki soha nem programozott, mielőtt a felvenni és megismerjék, hogyan 62 00:03:03,630 --> 00:03:07,710 dolgozni egy adatbázis. 63 00:03:07,710 --> 00:03:11,800 A probléma az, phpMyAdmin, míg ez egy fantasztikus eszköz a tanulás 64 00:03:11,800 --> 00:03:14,850 mintegy adatbázisokban, manuális. 65 00:03:14,850 --> 00:03:18,050 Fogsz van, hogy jelentkezzen be , és futtatni parancsokat és típusa 66 00:03:18,050 --> 00:03:19,910 dolgokat kézzel. 67 00:03:19,910 --> 00:03:23,160 >> És mint tudjuk, a mi Például a PHP programozás, 68 00:03:23,160 --> 00:03:26,550 kézzel kellene tenni dolgokat honlapunkon, 69 00:03:26,550 --> 00:03:30,970 ha azt akarjuk, dinamikus, aktív reagáló honlapján, talán nem a legjobb megoldás. 70 00:03:30,970 --> 00:03:33,980 Szeretnénk megtalálni a módját, hogy Talán automatizálni ezt valahogy. 71 00:03:33,980 --> 00:03:37,864 És az SQL lehetővé teszi számunkra, hogy ezt. 72 00:03:37,864 --> 00:03:39,780 Tehát amikor megyünk kezdeni dolgozni SQL, 73 00:03:39,780 --> 00:03:41,220 először szükség van egy adatbázis dolgozni. 74 00:03:41,220 --> 00:03:42,510 Adatbázis létrehozása is Valamit, amit talán 75 00:03:42,510 --> 00:03:45,350 fog tenni phpMyAdmin, mert akkor csak be kell, hogy ezt egyszer, 76 00:03:45,350 --> 00:03:49,690 és a szintaxis erre sokkal egyszerűbb. 77 00:03:49,690 --> 00:03:51,940 Ez sokkal könnyebb csinálni egy grafikus felhasználói felület 78 00:03:51,940 --> 00:03:53,520 mint a gépelés ki, mint egy parancs. 79 00:03:53,520 --> 00:03:55,186 A parancs egy kicsit nehézkes. 80 00:03:55,186 --> 00:03:58,889 Hasonlóképpen, ami egy tábla is kap egy kicsit nehézkes is. 81 00:03:58,889 --> 00:04:01,930 És így a dolgok, mint adatbázis létrehozása illetve tábla létrehozása, amely maga 82 00:04:01,930 --> 00:04:06,270 Valószínűleg csak csinálni once-- egyszer asztal, egyszer database-- 83 00:04:06,270 --> 00:04:09,040 nem baj, hogy ezt, hogy egy grafikus felületen. 84 00:04:09,040 --> 00:04:11,570 A folyamat során a tábla létrehozása, akkor 85 00:04:11,570 --> 00:04:14,840 is, hogy megadjuk a oszlopok lesznek a táblázatban. 86 00:04:14,840 --> 00:04:18,149 Milyen információkra van szeretné tárolni a táblázatban? 87 00:04:18,149 --> 00:04:24,520 Talán a felhasználó nevét és születési dátumát, jelszó, felhasználói azonosító számát, és talán 88 00:04:24,520 --> 00:04:26,170 város és állam, ugye? 89 00:04:26,170 --> 00:04:30,080 >> És minden alkalommal, amikor akarja adni a felhasználó az adatbázis, azt akarjuk, hogy mind a hat 90 00:04:30,080 --> 00:04:31,890 ezen információkat. 91 00:04:31,890 --> 00:04:34,840 És ezt tesszük hozzáadásával sorok az asztalra. 92 00:04:34,840 --> 00:04:37,800 Tehát először hozzon létre egy adatbázist, akkor automatikusan létrejön egy asztalt. 93 00:04:37,800 --> 00:04:40,100 Létrehozásának részeként egy asztal, akkor arra kérjük, 94 00:04:40,100 --> 00:04:44,280 megadni minden oszlopban, hogy Szeretnénk ebben a táblázatban. 95 00:04:44,280 --> 00:04:47,247 Aztán ahogy elkezdjük felvenni információt az adatbázisban 96 00:04:47,247 --> 00:04:49,580 és lekérdezi az adatbázist több generally-- nem csak hozzátéve, 97 00:04:49,580 --> 00:04:51,610 de minden mást do-- leszünk foglalkozó 98 00:04:51,610 --> 00:04:58,870 sorok a táblázat, amely az egyik felhasználó adatait a teljes készlet. 99 00:04:58,870 --> 00:05:03,210 >> Szóval minden SQL oszlopban képes az adatokat tároló egy bizonyos típusú adatokat. 100 00:05:03,210 --> 00:05:06,560 Tehát egyfajta megszüntette ezt ötlete adattípusok PHP- 101 00:05:06,560 --> 00:05:08,747 de ők vissza ide SQL-ben. 102 00:05:08,747 --> 00:05:10,080 És van egy csomó adat típusok. 103 00:05:10,080 --> 00:05:13,420 Itt csak 20 közülük, de ez nem is mindet. 104 00:05:13,420 --> 00:05:16,240 Tehát van ötletekkel, mint INTs-- Integers-- azt valószínűleg tudja, 105 00:05:16,240 --> 00:05:17,760 hogy ez az oszlop fér egészek. 106 00:05:17,760 --> 00:05:21,077 És vannak eltérések thereon-- Smallint, tinyint, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Talán nem kell mindig négy harap. 108 00:05:22,660 --> 00:05:26,800 Talán meg kell nyolc byte, és így Ezekkel a variációk egészek 109 00:05:26,800 --> 00:05:28,510 hogy egy kicsit több helyet hatékony. 110 00:05:28,510 --> 00:05:31,899 Tehetünk decimális számokat, tehetünk lebegőpontos számok. 111 00:05:31,899 --> 00:05:32,940 Ezek elég hasonlóak. 112 00:05:32,940 --> 00:05:34,773 Vannak különbségek, és ha lenne 113 00:05:34,773 --> 00:05:37,330 Szeretem, hogy néz ki a SQL egyfajta útmutató, akkor 114 00:05:37,330 --> 00:05:40,670 láthatjuk, milyen enyhe különbségek közöttük. 115 00:05:40,670 --> 00:05:43,250 >> Talán azt akarjuk tárolni információkat dátumot és az időt. 116 00:05:43,250 --> 00:05:47,047 Talán mi vagyunk nyomon követését, ha a felhasználó csatlakozott a honlapunkon, 117 00:05:47,047 --> 00:05:48,880 és így talán azt akarjuk, ha az oszlop, ami 118 00:05:48,880 --> 00:05:52,820 dátum idő vagy időbélyeg, hogy jelzi, ha a felhasználó valójában 119 00:05:52,820 --> 00:05:54,130 iratkozott fel. 120 00:05:54,130 --> 00:05:56,132 Tehetünk geometriával és linestrings. 121 00:05:56,132 --> 00:05:57,340 Ez tulajdonképpen elég jó. 122 00:05:57,340 --> 00:06:01,410 Mi lehetne feltérképezni a földrajzi térség 123 00:06:01,410 --> 00:06:05,110 GIS-koordinátákkal ábrázolni ki egy területet. 124 00:06:05,110 --> 00:06:08,580 Tehát valóban tárolni az efféle Az adatokat egy SQL oszlopban. 125 00:06:08,580 --> 00:06:11,390 >> SZÖVEG csak hatalmas foltok a szöveget, talán. 126 00:06:11,390 --> 00:06:12,840 Enum is elég érdekes. 127 00:06:12,840 --> 00:06:16,080 Ők valóban léteznek C. Mi nem róluk beszélni, mert ők nem 128 00:06:16,080 --> 00:06:19,110 szörnyen általánosan használt, legalább CS50. 129 00:06:19,110 --> 00:06:22,680 De ez egy felsorolt ​​adatok típusát, amely képes a gazdaság korlátozott értékeket. 130 00:06:22,680 --> 00:06:25,940 >> Egy igazán jó példa lenne hogy hozzon létre egy enum, ahol a hét 131 00:06:25,940 --> 00:06:29,394 lehetséges értékek vasárnap, hétfő, Kedd, szerda, csütörtök, péntek, 132 00:06:29,394 --> 00:06:30,060 Szombat, ugye? 133 00:06:30,060 --> 00:06:33,311 Ugyanilyen típusra napja Hét nem létezik, 134 00:06:33,311 --> 00:06:35,310 de nem tudtunk létrehozni felsorolt ​​adatok típusát, mint 135 00:06:35,310 --> 00:06:39,400 hogy az oszlop mindig csak tartsa az egyik a hét lehetséges értékeket. 136 00:06:39,400 --> 00:06:44,300 Már felsorolt ​​valamennyi A lehetséges értékek. 137 00:06:44,300 --> 00:06:47,630 >> Aztán ott van CHAR és VARCHAR, és én már színes Ezen zöld 138 00:06:47,630 --> 00:06:49,505 mert mi vagyunk valójában fog tartani egy második 139 00:06:49,505 --> 00:06:51,950 beszélni a különbség e két dolog között. 140 00:06:51,950 --> 00:06:55,780 Szóval KAR, ellentétben a C, ahol CHAR volt egyetlen karakter, 141 00:06:55,780 --> 00:07:00,730 SQL egy CHAR utal fix hosszúságú karakterlánc. 142 00:07:00,730 --> 00:07:02,620 És amikor létre ezt oszlop, valójában 143 00:07:02,620 --> 00:07:05,070 megadhatja a string hossza. 144 00:07:05,070 --> 00:07:08,080 >> Tehát ebben a példában, mondhatnánk CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Ez azt jelenti, hogy minden eleme, hogy oszlop 146 00:07:11,190 --> 00:07:13,910 áll 10 byte információt. 147 00:07:13,910 --> 00:07:15,770 Nem több, nem kevesebb. 148 00:07:15,770 --> 00:07:21,780 Tehát, ha megpróbáljuk, és hozott egy 15 bites vagy 15 karakter elem 149 00:07:21,780 --> 00:07:25,340 vagy értéket ebbe az oszlopba, mi csak kap az első 10. 150 00:07:25,340 --> 00:07:27,290 Ha teszünk a két karakter hosszú értéke, 151 00:07:27,290 --> 00:07:30,700 megyünk, hogy a két karaktereket, majd nyolc null harap. 152 00:07:30,700 --> 00:07:34,990 Mi soha nem lesz hatékonyabb, mint ezt. 153 00:07:34,990 --> 00:07:37,727 >> A VARCHAR olyan, mint a fogalom egy string 154 00:07:37,727 --> 00:07:39,560 hogy vagyunk tisztában A AC vagy PHP. 155 00:07:39,560 --> 00:07:40,830 Ez egy változó hosszúságú karakterlánc. 156 00:07:40,830 --> 00:07:42,560 És amikor létrehoz Ebben az oszlopban, csak 157 00:07:42,560 --> 00:07:44,860 adja meg a maximális lehetséges hosszúságú. 158 00:07:44,860 --> 00:07:49,065 Így talán 99 vagy gyakran 255. 159 00:07:49,065 --> 00:07:50,440 Ez lenne a legnagyobb hossza. 160 00:07:50,440 --> 00:07:52,890 És így ha mi tárolására 15 karaktersor, 161 00:07:52,890 --> 00:07:56,157 szeretnénk használni 15 bájt, talán 16 byte a null terminátor. 162 00:07:56,157 --> 00:07:57,990 Ha mi tárolására három karaktersor, 163 00:07:57,990 --> 00:08:01,120 mi lenne három vagy négy bájt. 164 00:08:01,120 --> 00:08:03,050 De akkor nem használja a teljes 99. 165 00:08:03,050 --> 00:08:05,190 >> Szóval miért is van mindkettő? 166 00:08:05,190 --> 00:08:08,210 Nos, ha kell kitalálni, hogyan Hosszú valami egy VARCHAR, 167 00:08:08,210 --> 00:08:10,680 van, hogy a fajta iterate szerte, mint ahogyan tette C 168 00:08:10,680 --> 00:08:12,230 és kitalálni, ahol megáll. 169 00:08:12,230 --> 00:08:15,920 Mivel ha tudjuk, hogy mindent ebben az oszlopban pedig 10 bájt, talán 170 00:08:15,920 --> 00:08:19,220 tudjuk, hogy információt tudunk ugrani 10 bájt, 10 byte, 10 byte, 10 bájt, 171 00:08:19,220 --> 00:08:21,790 és mindig megtalálja a sor elejére. 172 00:08:21,790 --> 00:08:25,210 >> Tehát lehet, hogy elpazarolt hely egy CHAR, 173 00:08:25,210 --> 00:08:28,510 de talán van egy kereskedelmi off, hogy jobb sebességet 174 00:08:28,510 --> 00:08:30,160 a navigációt az adatbázisban. 175 00:08:30,160 --> 00:08:32,330 De talán azt akarjuk, rugalmasságát VARCHAR 176 00:08:32,330 --> 00:08:36,710 ahelyett having-- Ha a CHAR volt 255, de a legtöbb felhasználó 177 00:08:36,710 --> 00:08:40,537 csak megadásával három vagy négy bájt értékű információt, három vagy négy 178 00:08:40,537 --> 00:08:41,870 karakterek értékű információkat. 179 00:08:41,870 --> 00:08:44,324 >> De néhány felhasználókat arra használ az egész 255, talán 180 00:08:44,324 --> 00:08:45,990 VARCHAR megfelelőbb lenne ott. 181 00:08:45,990 --> 00:08:49,840 Ez egyfajta kompromisszum, és Általában céljából CS50, 182 00:08:49,840 --> 00:08:54,107 Önnek nem kell túlságosan aggódnunk hogy használ-e CHAR vagy VARCHAR. 183 00:08:54,107 --> 00:08:57,190 De a valós világban, ezek a dolgok nem baj, mert az összes ilyen oszlopok 184 00:08:57,190 --> 00:08:59,300 vegye fel tényleges fizikai hely. 185 00:08:59,300 --> 00:09:04,150 És a fizikai tér, a világban, jön egy prémium. 186 00:09:04,150 --> 00:09:06,800 >> Tehát egy másik szempont ha építünk egy asztal 187 00:09:06,800 --> 00:09:09,840 az, hogy vegye egy oszlopban lenni egy úgynevezett elsődleges kulcsot. 188 00:09:09,840 --> 00:09:14,350 És elsődleges kulcs egy oszlopban ahol minden egyes értéke egyedülálló. 189 00:09:14,350 --> 00:09:19,980 És ez azt jelenti, hogy könnyedén válasszon ki egy egysoros ránézésre 190 00:09:19,980 --> 00:09:22,450 az elsődleges kulcsa, hogy a sorban. 191 00:09:22,450 --> 00:09:24,580 Így például, ha általában a felhasználók, 192 00:09:24,580 --> 00:09:27,210 Nem szeretnék két felhasználók, akik ugyanaz a felhasználói azonosító számát. 193 00:09:27,210 --> 00:09:28,960 És így talán van sok információt, 194 00:09:28,960 --> 00:09:30,793 és talán két felhasználók van egyforma name-- 195 00:09:30,793 --> 00:09:32,650 Van John Smith és John Smith. 196 00:09:32,650 --> 00:09:34,520 Ez nem feltétlenül jelent problémát, mert vannak többen 197 00:09:34,520 --> 00:09:35,830 A világ John Smith. 198 00:09:35,830 --> 00:09:40,766 De már csak egy felhasználói azonosító száma 10, egy, a felhasználó azonosító száma 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Nincs két felhasználó az azonos számú, 200 00:09:42,640 --> 00:09:46,010 és így talán felhasználói azonosító számok lenne egy jó elsődleges kulcsot. 201 00:09:46,010 --> 00:09:48,610 >> Nem kell az átfedéseket, és most már egyértelműen 202 00:09:48,610 --> 00:09:52,619 azonosítani minden egyes sorban csak nézi az oszlop. 203 00:09:52,619 --> 00:09:55,410 Választott elsődleges kulcsok ténylegesen utólagos asztal műveletek 204 00:09:55,410 --> 00:09:59,710 Sokkal könnyebb, mert akkor a tőkeáttétel az a tény, hogy bizonyos sorok lesz 205 00:09:59,710 --> 00:10:02,720 egyedinek kell lennie, vagy egy bizonyos oszlop az adatbázis vagy asztalra 206 00:10:02,720 --> 00:10:06,030 egyedi lesz, hogy vegye a konkrét sorokat. 207 00:10:06,030 --> 00:10:08,790 >> Akkor is van egy közös primer kulcsot, amely lehet találni alkalmából 208 00:10:08,790 --> 00:10:11,720 használható, amely csak egy kombináció két oszlopot, 209 00:10:11,720 --> 00:10:13,280 garantáltan egyedi. 210 00:10:13,280 --> 00:10:16,410 Így talán van egy oszlop, ami AS és BS, 211 00:10:16,410 --> 00:10:19,290 egy oszlop, ami egy, kettő, és három, de akkor mindig csak 212 00:10:19,290 --> 00:10:23,660 egyetlen A1, egyetlen A2, és így tovább, és így tovább. 213 00:10:23,660 --> 00:10:28,980 De lehet, hogy egy B2, a C2, vagy egy A1, A2, A3, A4. 214 00:10:28,980 --> 00:10:32,840 Szóval lehet, hogy több néven, több Bs, több is, több kettesével, 215 00:10:32,840 --> 00:10:38,567 de akkor mindig csak egy Egyetlen A1, B2, C3, és így tovább. 216 00:10:38,567 --> 00:10:40,400 Szóval, mint mondtam, SQL egy programozási nyelv, 217 00:10:40,400 --> 00:10:42,024 de van egy meglehetősen korlátozott szókészletet. 218 00:10:42,024 --> 00:10:44,880 Ez nem elég kiterjedt, mint C és a PHP és más nyelveken 219 00:10:44,880 --> 00:10:46,350 hogy beszélünk során. 220 00:10:46,350 --> 00:10:49,960 Ez még bővebb a nyelven, mint amit mi 221 00:10:49,960 --> 00:10:52,789 fog beszélni ebben a videót, mert ez a videó 222 00:10:52,789 --> 00:10:54,830 fogunk beszélni négy műveletet, hogy mi 223 00:10:54,830 --> 00:10:55,720 végezhet az asztalra. 224 00:10:55,720 --> 00:10:56,761 >> Jelenleg több mint ezt. 225 00:10:56,761 --> 00:10:58,730 Ennél többre vagyunk képesek, mint ez, de a mi szempontunkból, 226 00:10:58,730 --> 00:11:02,250 mi általában lesz használva Mindössze négy operations-- betét, 227 00:11:02,250 --> 00:11:05,360 SELECT, UPDATE, és törölje. 228 00:11:05,360 --> 00:11:08,750 És akkor talán ösztönösen hiszem mi mind a négy ezeket a dolgokat csinálni. 229 00:11:08,750 --> 00:11:12,520 De elmegyünk egy kicsit részletességgel mindegyik. 230 00:11:12,520 --> 00:11:15,780 >> Tehát jelen videó, tegyük fel, 231 00:11:15,780 --> 00:11:18,870 Megvan a következő két asztalok egy adatbázisban. 232 00:11:18,870 --> 00:11:23,460 Van egy asztal nevű felhasználó, amely Négy columns-- azonosító száma, felhasználónév, 233 00:11:23,460 --> 00:11:25,350 jelszót, és teljes nevét. 234 00:11:25,350 --> 00:11:27,430 És van egy második asztal ugyanabban az adatbázisban 235 00:11:27,430 --> 00:11:32,129 nevű Moms, hogy csak az adatokat tárolja körülbelül egy felhasználónevet és egy anya. 236 00:11:32,129 --> 00:11:33,920 Tehát az összes példák ez a videó, akkor 237 00:11:33,920 --> 00:11:37,945 használja az adatbázisban, és további frissítések is. 238 00:11:37,945 --> 00:11:40,070 Tehát mondjuk azt akarjuk, hogy Adatok felvétele asztalra. 239 00:11:40,070 --> 00:11:44,460 Ez az, amit a betét működését teszi. 240 00:11:44,460 --> 00:11:46,550 Magyarázatában minden Ezeket a parancsokat, megyek 241 00:11:46,550 --> 00:11:48,860 hogy ön egy általános csontváz használni. 242 00:11:48,860 --> 00:11:51,661 Mivel alapvetően a lekérdezések folynak megjelenés szép hasonló, 243 00:11:51,661 --> 00:11:54,660 mi csak fog változni kissé eltérő információkat 244 00:11:54,660 --> 00:11:56,750 hogy különböző dolgokat az asztalra. 245 00:11:56,750 --> 00:11:59,200 >> Tehát INSERT, a csontváz úgy néz ki, olyan, mint ez. 246 00:11:59,200 --> 00:12:02,230 Mi akar szúrni az adott táblán. 247 00:12:02,230 --> 00:12:05,290 Aztán van egy nyitott zárójel és egy lista az oszlopok 248 00:12:05,290 --> 00:12:08,070 hogy akarjuk helyezni értékeket. 249 00:12:08,070 --> 00:12:10,974 Bezár zárójelben következő értékeket, majd 250 00:12:10,974 --> 00:12:13,390 ismét felsoroljuk az értékeket akarjuk helyezni a táblázatban. 251 00:12:13,390 --> 00:12:15,950 >> Tehát egy példa erre a következő lenne. 252 00:12:15,950 --> 00:12:19,170 Azt akarom, hogy helyezze be a táblázatba a felhasználók a következő columns-- 253 00:12:19,170 --> 00:12:21,010 felhasználónév, jelszó, és fullname. 254 00:12:21,010 --> 00:12:25,282 Tehát egy új sor, ahol leteszem E három oszlop és mi vagyunk 255 00:12:25,282 --> 00:12:30,030 megy, hogy azokban az értékekben Newman, USMAIL, és Newman. 256 00:12:30,030 --> 00:12:32,730 Tehát ebben az esetben, én vagyok amivel a kisbetűs Newman 257 00:12:32,730 --> 00:12:38,710 a felhasználóneveddel oszlopban a jelszót USMAIL, és a teljes neve N betűvel 258 00:12:38,710 --> 00:12:41,940 Newman a fullname oszlopot. 259 00:12:41,940 --> 00:12:44,240 >> Tehát itt van, amit az adatbázis nézett ki, mint korábban. 260 00:12:44,240 --> 00:12:48,250 Itt van, amit a felhasználók táblázatot a top nézett ki, mint mielőtt ezt tette. 261 00:12:48,250 --> 00:12:50,760 Miután végre ezt Kérdés, megkapjuk ezt. 262 00:12:50,760 --> 00:12:54,790 Felvettünk egy új sort a táblához. 263 00:12:54,790 --> 00:12:56,810 De észre ezt az egy dolgot hogy nem adja meg, 264 00:12:56,810 --> 00:12:59,880 de valahogy kaptam egy értéket A, ami a 12 itt. 265 00:12:59,880 --> 00:13:02,820 Én nem mondtam akartam tedd azonosító száma van. 266 00:13:02,820 --> 00:13:04,900 Azt akartam, hogy a felhasználóneveddel, jelszót, fullname. 267 00:13:04,900 --> 00:13:06,440 És én csináltam, ez rendben van. 268 00:13:06,440 --> 00:13:07,760 >> De én is kaptam ezt a 12. 269 00:13:07,760 --> 00:13:09,490 Miért kaptam ezt a 12? 270 00:13:09,490 --> 00:13:12,904 Nos, kiderült, hogy ha meghatározó 271 00:13:12,904 --> 00:13:15,570 oszlopra, hogy lesz a elsődleges kulcsot, ami általában, 272 00:13:15,570 --> 00:13:16,510 mint mondtam, egy azonosító számot. 273 00:13:16,510 --> 00:13:18,718 Ez nem mindig feltétlenül lesz egy azonosítószámot, 274 00:13:18,718 --> 00:13:22,380 de ez általában egy jó ötlet, hogy Valamiféle egész érték. 275 00:13:22,380 --> 00:13:25,950 Van egy lehetőség a phpMyAdmin ha te létre az adatbázis 276 00:13:25,950 --> 00:13:31,130 vagy az asztalon beállítani, hogy oszlopban az automatikus megnöveli. 277 00:13:31,130 --> 00:13:34,520 >> Ami egy nagyon jó ötlet, ha dolgoztok egy elsődleges kulcsot, 278 00:13:34,520 --> 00:13:39,330 mert azt szeretnénk, minden érték Az oszlop egyedi. 279 00:13:39,330 --> 00:13:43,310 És ha elfelejti megadni ez több, mint egy személy, 280 00:13:43,310 --> 00:13:46,240 most már van egy helyzet, amikor Az oszlop már nem egyedülálló. 281 00:13:46,240 --> 00:13:50,200 Van két üres, így nem már egyedileg azonosítja a column-- 282 00:13:50,200 --> 00:13:54,150 vagy már nem tudja egyedileg azonosítani egy sorban alapuló oszlopon. 283 00:13:54,150 --> 00:13:57,010 Hogy elveszett minden a értékét az elsődleges kulcsot. 284 00:13:57,010 --> 00:14:02,010 >> És így látszólag mit tettem Itt van beállítva, a felhasználói azonosítót 285 00:14:02,010 --> 00:14:07,790 oszlop automatikus növekmény hogy minden Mire adjunk információt az asztalhoz, 286 00:14:07,790 --> 00:14:12,220 akkor automatikusan adj értékét az elsődleges kulcsot. 287 00:14:12,220 --> 00:14:15,570 Tehát soha nem felejtem el csinálni, mert Az adatbázis megcsinálja nekem. 288 00:14:15,570 --> 00:14:16,587 Szóval ez a fajta szép. 289 00:14:16,587 --> 00:14:18,670 És ez az, amiért megkapjuk 12 ott, mert már 290 00:14:18,670 --> 00:14:21,772 állítva, hogy oszlop akár automatikus növekmény. 291 00:14:21,772 --> 00:14:23,730 Ha én hozzá valaki más ez lenne a 13., ha hozzáadott 292 00:14:23,730 --> 00:14:27,890 valaki más lenne, 14, és így tovább. 293 00:14:27,890 --> 00:14:30,190 >> Tehát lássuk csak ezt még egy szerelést. 294 00:14:30,190 --> 00:14:34,530 Majd helyezze be a mamák asztalra, a Különösen a felhasználónév és anya 295 00:14:34,530 --> 00:14:37,390 oszlop, az értékeket Kramer és Babs Kramer. 296 00:14:37,390 --> 00:14:39,140 És így volt ez korábban. 297 00:14:39,140 --> 00:14:41,800 Miután végre, hogy SQL lekérdezés, mi ez. 298 00:14:41,800 --> 00:14:47,290 Már hozzá Kramer és Babs Kramer a mamák asztalra. 299 00:14:47,290 --> 00:14:48,350 >> Szóval ez behelyezésével. 300 00:14:48,350 --> 00:14:51,850 SELECT, amit használni kivonat információt a táblázatban. 301 00:14:51,850 --> 00:14:54,390 Szóval így jutunk információkat ki az adatbázisból. 302 00:14:54,390 --> 00:14:59,589 És így SELECT parancsok lesznek Nagyon gyakran használt programozási. 303 00:14:59,589 --> 00:15:02,130 Az általános framework-- a általános csontváz néz ki. 304 00:15:02,130 --> 00:15:06,550 Válasszon egy sor oszlopok egy táblázatot, és ezután adott esetben 305 00:15:06,550 --> 00:15:11,090 megadhatja a condition-- vagy amit általában hívni egy állítmány, 306 00:15:11,090 --> 00:15:13,010 Általában a kifejezést használjuk az SQL. 307 00:15:13,010 --> 00:15:16,490 >> De ez alapvetően mi Különösen sorok szeretne kapni. 308 00:15:16,490 --> 00:15:19,100 Ha azt szeretnénk, hogy, ahelyett, hogy mindent, keskeny le, 309 00:15:19,100 --> 00:15:20,060 ez hol lenne erre. 310 00:15:20,060 --> 00:15:22,777 Majd adott esetben, akkor is elrendelheti egy adott oszlopban. 311 00:15:22,777 --> 00:15:25,860 Így talán azt szeretné, hogy a dolgokat rendezve betűrendben alapján egy oszlopban 312 00:15:25,860 --> 00:15:27,540 vagy ABC alapján egy másik. 313 00:15:27,540 --> 00:15:30,610 >> Ismét hol és ORDER BY opcionális. 314 00:15:30,610 --> 00:15:32,681 De akkor valószínűleg useful-- különösen 315 00:15:32,681 --> 00:15:34,680 HOL hasznos lesz leszűkíteni, így nem 316 00:15:34,680 --> 00:15:37,460 kapni a teljes adatbázis-vissza kell feldolgoznia, akkor csak kap 317 00:15:37,460 --> 00:15:39,300 A darab az, hogy törődsz. 318 00:15:39,300 --> 00:15:44,932 Így például, talán szeretné kiválasztani Azonosító száma és fullname a felhasználóktól. 319 00:15:44,932 --> 00:15:46,140 Szóval, mi ez kinézni? 320 00:15:46,140 --> 00:15:48,270 Tehát itt az én felhasználók asztalra. 321 00:15:48,270 --> 00:15:51,080 Azt akarom, hogy kiválassza IDNUM és FullName a felhasználóktól. 322 00:15:51,080 --> 00:15:52,300 Mit fogok kapni? 323 00:15:52,300 --> 00:15:53,580 Megyek, hogy ezt. 324 00:15:53,580 --> 00:15:56,930 Én nem szűkül le, így nem vagyok azonosítójának számát minden sorban 325 00:15:56,930 --> 00:16:00,850 és kapok a teljes Íme minden sorban. 326 00:16:00,850 --> 00:16:02,210 >> OKÉ. 327 00:16:02,210 --> 00:16:05,640 Mit tegyünk, ha a kiválasztott jelszó A felhasználóktól WHERE-- így most 328 00:16:05,640 --> 00:16:10,370 Én vagyok hozzá egy állapot, egy predicate-- ahol IDNUM kevesebb, mint 12. 329 00:16:10,370 --> 00:16:13,660 Tehát itt az én adatbázisban újra, én felhasználók asztal tetején. 330 00:16:13,660 --> 00:16:17,030 Mit fogok, hogy ha azt akarom, válassza ki, hogy az információ, a jelszó, 331 00:16:17,030 --> 00:16:21,550 ahol a felhasználói azonosító vagy IDNUM kevesebb mint 12? 332 00:16:21,550 --> 00:16:24,910 Megyek, hogy ezt Vissza, ugye? 333 00:16:24,910 --> 00:16:29,170 Előfordul, hogy IDNUM 10, kevesebb, mint 12, 11-es azonosítót kevesebb, mint 12. 334 00:16:29,170 --> 00:16:32,160 Kezdek jelszavát azokat a sorokat. 335 00:16:32,160 --> 00:16:33,914 Ez az, amit kértem. 336 00:16:33,914 --> 00:16:34,580 Mi van ezzel? 337 00:16:34,580 --> 00:16:39,170 Mit tegyek, ha ki szeretné választani világsztár az anyukák asztalhoz, ahol felhasználónevét egyenlő Jerry? 338 00:16:39,170 --> 00:16:43,780 OK, válassza csillag a speciális egyfajta vad kártyát úgynevezett 339 00:16:43,780 --> 00:16:45,670 hogy az általunk használt, hogy mindent. 340 00:16:45,670 --> 00:16:48,620 Tehát azt mondják válasszuk felhasználónév vesszővel anya, amely 341 00:16:48,620 --> 00:16:51,060 történt, hogy az egyetlen Két oszlopot ezt a táblázatot, 342 00:16:51,060 --> 00:16:53,260 Én is csak válassza csillagos és mindent 343 00:16:53,260 --> 00:16:55,030 ahol a felhasználónév megegyezik Jerry. 344 00:16:55,030 --> 00:16:59,380 És ez az, amit szeretnék kapni ha tettem, hogy adott lekérdezés. 345 00:16:59,380 --> 00:17:01,810 >> Most, adatbázisok nagy, mert lehetővé teszik 346 00:17:01,810 --> 00:17:06,074 számunkra, hogy az információk talán egy kicsit hatékonyabban, mint mi 347 00:17:06,074 --> 00:17:06,740 egyébként. 348 00:17:06,740 --> 00:17:10,240 Mi nem feltétlenül kell tárolni minden szükséges információt, 349 00:17:10,240 --> 00:17:12,230 körülbelül egy felhasználó ugyanannál az asztalnál. 350 00:17:12,230 --> 00:17:13,730 Volt két asztal van. 351 00:17:13,730 --> 00:17:15,734 >> Meg kell tárolni mindenki anyja neve, 352 00:17:15,734 --> 00:17:18,900 és talán nincs szociális biztonság számú, már a születési dátum. 353 00:17:18,900 --> 00:17:21,819 Ez nem mindig kell hogy ugyanebben a táblázatban. 354 00:17:21,819 --> 00:17:25,339 Amíg tudjuk meg közötti kapcsolatok tables-- 355 00:17:25,339 --> 00:17:28,440 és ez az, ahol ez a relációs adatbázis távú fajta jön 356 00:17:28,440 --> 00:17:32,130 a play-- ameddig tudjuk meg táblák közötti viszonyok, 357 00:17:32,130 --> 00:17:35,545 akkor egyfajta felosztják vagy absztrakt dolgokat módon, 358 00:17:35,545 --> 00:17:37,670 ahol már csak a Nagyon fontos információk 359 00:17:37,670 --> 00:17:39,270 törődünk a felhasználó asztalra. 360 00:17:39,270 --> 00:17:43,220 És akkor mi van kiegészítő információk vagy extra információt más táblákban 361 00:17:43,220 --> 00:17:48,260 hogy tudunk kapcsolódni vissza a fő felhasználók tábla egy bizonyos módon. 362 00:17:48,260 --> 00:17:52,200 >> Tehát itt van ez a két asztal, de van egy kapcsolat közöttük, 363 00:17:52,200 --> 00:17:53,010 jobbra? 364 00:17:53,010 --> 00:17:55,070 Úgy tűnik, mintha felhasználónév Lehet, hogy valami 365 00:17:55,070 --> 00:17:59,909 hogy létezik a közös között E két különböző táblák. 366 00:17:59,909 --> 00:18:01,700 Szóval mi van, ha most már van olyan helyzetet, ahol 367 00:18:01,700 --> 00:18:06,046 szeretnénk, hogy egy felhasználó teljes nevét a felhasználó asztalra, és anyjuk 368 00:18:06,046 --> 00:18:07,170 Íme az anya asztalra? 369 00:18:07,170 --> 00:18:10,960 Nem kell a módját, hogy hogy ebben a formában, nem igaz? 370 00:18:10,960 --> 00:18:17,790 Nincs egyetlen tartalmazó tábla mind a teljes nevét, anyja nevét. 371 00:18:17,790 --> 00:18:20,400 Nem kell, hogy lehetőség attól, amit eddig láttunk. 372 00:18:20,400 --> 00:18:22,950 >> És így meg kell bevezetni Az ötlet egy JOIN. 373 00:18:22,950 --> 00:18:24,857 És csatlakozik valószínűleg A legtöbb complex-- 374 00:18:24,857 --> 00:18:27,940 ez tényleg legbonyolultabb művelet fogunk beszélni a videót. 375 00:18:27,940 --> 00:18:30,040 Ők egy kicsit bonyolultabb, de ha egyszer kap a nyitjára, 376 00:18:30,040 --> 00:18:31,248 ők valójában nem is olyan rossz. 377 00:18:31,248 --> 00:18:32,820 Ez csak egy speciális esete a SELECT. 378 00:18:32,820 --> 00:18:37,120 Fogunk válasszon egy sor oszlopok egy táblázat csatlakozás 379 00:18:37,120 --> 00:18:40,650 a második táblázat néhány állítmány. 380 00:18:40,650 --> 00:18:45,340 >> Ebben az esetben Gondolj bele, mint this-- asztal egyik egy kört itt, 381 00:18:45,340 --> 00:18:47,530 asztal két másik kört ide. 382 00:18:47,530 --> 00:18:49,410 És ez állítmány része a közepén, ez 383 00:18:49,410 --> 00:18:51,701 Valahogy úgy, mint ha úgy gondolja, körülbelül olyan Venn-diagramot, mit 384 00:18:51,701 --> 00:18:52,670 nem a közös bennük? 385 00:18:52,670 --> 00:18:55,960 Azt akarjuk, hogy ezt a két asztalok annak alapján, amit a közös bennük 386 00:18:55,960 --> 00:19:01,230 és hozzon létre ez a feltételezett asztal ez az egyesülés a kettő együtt. 387 00:19:01,230 --> 00:19:03,480 Szóval majd meglátjuk, ez egy Például, és talán, hogy segítünk 388 00:19:03,480 --> 00:19:04,521 takarítjuk el egy kicsit. 389 00:19:04,521 --> 00:19:09,260 Így talán ki szeretné választani user.fullname és moms.mother 390 00:19:09,260 --> 00:19:13,220 A felhasználóktól csatlakozott a anyukák táblázat minden helyzetben 391 00:19:13,220 --> 00:19:16,790 ahol a felhasználónév oszlop ugyanaz közöttük. 392 00:19:16,790 --> 00:19:19,240 És ez egy új mondattani itt, ebben a felhasználó. 393 00:19:19,240 --> 00:19:20,460 és anyukák .. 394 00:19:20,460 --> 00:19:26,697 Ha csinálok több tábla együtt, tudom meg táblát. 395 00:19:26,697 --> 00:19:29,530 Tudom különböztetni különösen hogy a legalján van. 396 00:19:29,530 --> 00:19:33,220 Tudom különböztetni a felhasználóneveddel oszlopa a felhasználók tábla 397 00:19:33,220 --> 00:19:36,010 A felhasználónév oszlopa anyukák asztalra, amelyek otherwise-- 398 00:19:36,010 --> 00:19:38,070 ha csak azt mondta felhasználónév megegyezik felhasználóneveddel, hogy nem igazán 399 00:19:38,070 --> 00:19:38,970 jelent semmit. 400 00:19:38,970 --> 00:19:41,440 Azt akarom csinálni, ha azok megfelelnek. 401 00:19:41,440 --> 00:19:46,080 >> Szóval adja meg a táblázat és a oszlop neve esetén olyan helyzet 402 00:19:46,080 --> 00:19:48,370 ahol nem lesz egyértelmű, mit beszélek. 403 00:19:48,370 --> 00:19:51,880 Szóval ez minden, amit csinálok van vagyok mondván ez az oszlop a táblázatból, 404 00:19:51,880 --> 00:19:54,020 és hogy nagyon egyértelmű. 405 00:19:54,020 --> 00:19:56,810 Szóval megint én vagyok kiválasztja a teljes név és az anyja neve 406 00:19:56,810 --> 00:20:00,950 a felhasználók táblázat kapcsolódik egymáshoz A mamák táblázat minden helyzetben 407 00:20:00,950 --> 00:20:05,960 ahol részt, hogy column-- osztoznak a felhasználónév fogalma. 408 00:20:05,960 --> 00:20:08,580 >> Tehát itt van a táblákat a miénk volt. 409 00:20:08,580 --> 00:20:12,210 Ez az állam a mi adatbázis, mert létezik most. 410 00:20:12,210 --> 00:20:16,390 Az információs vagyunk kitermelése ez kezdeni. 411 00:20:16,390 --> 00:20:19,820 Ez az új tábla megyünk létrehozásához kombinálja össze ezeket. 412 00:20:19,820 --> 00:20:23,585 És észre nem vagyunk kiemelve Newman sorban a felhasználó asztal, 413 00:20:23,585 --> 00:20:25,960 és mi nem kiemelve Kramer sor az anyukák táblázat 414 00:20:25,960 --> 00:20:31,250 mert egyik sem létezik Mindkét sets-- mindkét táblázatban. 415 00:20:31,250 --> 00:20:36,260 >> Az egyetlen információ, ami a közös köztük Jerry mindkét táblázatban 416 00:20:36,260 --> 00:20:39,100 és gcostanza van mindkét táblázatban. 417 00:20:39,100 --> 00:20:42,620 És így amikor mi az SQL JOIN, amit get-- és csinálunk valójában kap ez. 418 00:20:42,620 --> 00:20:44,830 Ez egyfajta ideiglenes változó. 419 00:20:44,830 --> 00:20:47,330 Ez olyan, mint egy hipotetikus egyesülés a két tábla. 420 00:20:47,330 --> 00:20:49,930 Mi valóban kap valamit mint ez, ahol 421 00:20:49,930 --> 00:20:54,730 mi már összefűzve a táblákat a információt, hogy a közös bennük. 422 00:20:54,730 --> 00:20:58,334 >> Tehát észre, hogy users.username és moms.username oszlop, 423 00:20:58,334 --> 00:20:59,250 ez pontosan ugyanaz. 424 00:20:59,250 --> 00:21:01,820 Ez volt az információ, hogy összhangban volt a felhasználók 425 00:21:01,820 --> 00:21:02,890 asztal és a mamák asztalra. 426 00:21:02,890 --> 00:21:04,270 És így összevontuk őket. 427 00:21:04,270 --> 00:21:06,919 Mi dobni Kramer mert Nem létezik a felhasználók tábla, 428 00:21:06,919 --> 00:21:09,710 és mi dobni Newman, mert ő nem létezik a mamák asztalra. 429 00:21:09,710 --> 00:21:16,450 Szóval ez a hipotetikus egyesülés használja a JOIN működését SELECT. 430 00:21:16,450 --> 00:21:21,250 >> És akkor kerestünk a felhasználó teljes nevét és a felhasználó anyja, 431 00:21:21,250 --> 00:21:24,999 és így ez az információ, hogy kapnánk az általános lekérdezés 432 00:21:24,999 --> 00:21:26,040 hogy mi történt SELECT. 433 00:21:26,040 --> 00:21:28,873 Így csatlakozott a táblákat együtt és kiemeltük a két oszlopot, 434 00:21:28,873 --> 00:21:31,610 és hogy az, amit kapnánk. 435 00:21:31,610 --> 00:21:33,370 De SQL csatlakozik egyfajta bonyolult. 436 00:21:33,370 --> 00:21:36,770 Valószínűleg nem fog nekik túl sok, de csak néhány ötlet a csontváz 437 00:21:36,770 --> 00:21:41,992 hogy akkor használja, hogy összevonja a két asztalok együtt, ha szükséges. 438 00:21:41,992 --> 00:21:43,700 Az utolsó két egy kicsit egyszerűbb ígérem. 439 00:21:43,700 --> 00:21:48,040 Szóval frissítése, tudjuk használni UPDATE megváltoztatni információt egy táblában. 440 00:21:48,040 --> 00:21:53,880 Az általános formátum UPDATE néhány asztal, meg néhány oszlop valamilyen érték 441 00:21:53,880 --> 00:21:55,540 Ahol néhány állítmány teljesül. 442 00:21:55,540 --> 00:21:57,850 Így például nem árt frissíteni a felhasználók tábla 443 00:21:57,850 --> 00:22:04,400 és állítsa be a jelszót, hogy blabla blabla, ahol az azonosító szám 10. 444 00:22:04,400 --> 00:22:06,400 >> Tehát ebben az esetben, mi vagyunk frissíti a felhasználók asztalra. 445 00:22:06,400 --> 00:22:08,275 Az azonosító szám 10 hogy első sorban ott, 446 00:22:08,275 --> 00:22:10,690 és azt akarjuk, hogy frissítse a jelszó blabla. 447 00:22:10,690 --> 00:22:12,170 És ez az, mi fog történni. 448 00:22:12,170 --> 00:22:13,628 Ez elég egyszerű, ugye? 449 00:22:13,628 --> 00:22:17,990 Ez csak egy nagyon egyszerű módosítását az asztalra. 450 00:22:17,990 --> 00:22:22,250 >> Törölni a művelet szoktuk adatok eltávolításához egy asztal. 451 00:22:22,250 --> 00:22:24,817 DELETE FROM asztal, ahol Néhány állítmány elégedett. 452 00:22:24,817 --> 00:22:26,900 Azt akarjuk, hogy törölje a a felhasználók például az asztalra 453 00:22:26,900 --> 00:22:28,254 ahol a felhasználónév Newman. 454 00:22:28,254 --> 00:22:31,420 Akkor valószínűleg hiszem, hogy mi fog itt történik, miután végre, hogy az SQL 455 00:22:31,420 --> 00:22:35,790 Kérdés, Newman elment az asztaltól. 456 00:22:35,790 --> 00:22:40,460 >> Tehát mindezen műveletek, mint mondtam, nagyon könnyű csinálni phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Ez egy nagyon felhasználóbarát felület. 458 00:22:43,020 --> 00:22:45,930 De ez nem igényel kézi erő. 459 00:22:45,930 --> 00:22:47,840 Nem akarunk foglalkoztatni kézi erő. 460 00:22:47,840 --> 00:22:51,280 Azt szeretnénk, programok ezt nekünk, ugye? 461 00:22:51,280 --> 00:22:53,190 Tehát érdemes csinálni ez a programból. 462 00:22:53,190 --> 00:22:56,410 Azt akarjuk, hogy bele SQL és valami mást csinálni ezt nekünk. 463 00:22:56,410 --> 00:23:02,710 >> De mit láttunk, amely lehetővé teszi számunkra, hogy programozottan tenni valamit? 464 00:23:02,710 --> 00:23:03,690 Láttuk PHP, ugye? 465 00:23:03,690 --> 00:23:05,760 Bevezeti néhány dinamizálja a programokat. 466 00:23:05,760 --> 00:23:10,430 És így szerencsére, az SQL és PHP játszani nagyon szépen össze. 467 00:23:10,430 --> 00:23:13,230 Van egy funkció a PHP úgynevezett lekérdezés, amelyet fel lehet használni. 468 00:23:13,230 --> 00:23:15,870 És akkor át a paraméter, vagy az érvet 469 00:23:15,870 --> 00:23:19,210 lekérdezni SQL lekérdezést szeretne végrehajtani. 470 00:23:19,210 --> 00:23:23,250 És a PHP fog tenni az Ön nevében. 471 00:23:23,250 --> 00:23:25,564 >> Szóval, miután csatlakozik hogy az adatbázis PHP, 472 00:23:25,564 --> 00:23:26,980 van két primer ezt megteszi. 473 00:23:26,980 --> 00:23:29,230 Van egy úgynevezett MySQLi és egy úgynevezett OEM. 474 00:23:29,230 --> 00:23:31,063 Mi nem megyünk bele egy hatalmas összegét részletet tartalmaz. 475 00:23:31,063 --> 00:23:32,957 Ebben CS50 használjuk OEM. 476 00:23:32,957 --> 00:23:34,790 Miután csatlakozik az adatbázishoz, akkor 477 00:23:34,790 --> 00:23:40,980 Ezután lekérdezések az adatbázis átadásával a lekérdezések érvek 478 00:23:40,980 --> 00:23:42,730 PHP függvények. 479 00:23:42,730 --> 00:23:46,460 És ha ezt teszed, akkor tárolja a eredményhalmaz egy asszociatív tömbben. 480 00:23:46,460 --> 00:23:50,290 >> És tudjuk, hogyan kell dolgozni asszociatív tömbök a PHP. 481 00:23:50,290 --> 00:23:52,630 Szóval lehet, hogy mondjon valamit mint this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 ez a PHP-- egyenlő lekérdezés. 483 00:23:55,470 --> 00:23:57,660 És akkor belsejét lekérdezés funkció ezt az érvet 484 00:23:57,660 --> 00:24:00,130 hogy én vagyok elhaladó lekérdezés úgy néz ki, mint az SQL. 485 00:24:00,130 --> 00:24:01,160 És tény, hogy az SQL. 486 00:24:01,160 --> 00:24:05,700 Ez a query string, hogy én is Szeretem, hogy végre én adatbázisban. 487 00:24:05,700 --> 00:24:09,250 >> És így piros, ez a PHP. 488 00:24:09,250 --> 00:24:11,890 Ez az SQL, hogy én vagyok integrálódva PHP azáltal, hogy 489 00:24:11,890 --> 00:24:15,020 ez az érv, hogy a lekérdezés funkciót. 490 00:24:15,020 --> 00:24:19,640 Azt akarom, hogy válasszon fullname re használók, ahol azonosító száma = 10. 491 00:24:19,640 --> 00:24:22,560 És akkor talán miután megvagy, Lehet, hogy ilyet mondjon. 492 00:24:22,560 --> 00:24:25,550 Azt akarom, hogy nyomtassa ki a Üzenet Kösz bejelentkezni. 493 00:24:25,550 --> 00:24:32,530 >> És azt akarom, hogy interpolate-- akarok interpolálásához $ eredmények fullname. 494 00:24:32,530 --> 00:24:36,280 És ez az, hogyan dolgozom, hogy asszociatív tömb, kaptam vissza. 495 00:24:36,280 --> 00:24:39,730 $ eredmények fullname lenne Alapvetően a végén kinyomtatja, 496 00:24:39,730 --> 00:24:42,870 kösz a bejelentkezés, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Ez volt a teljes neve ahol IDNUM = 10. 498 00:24:46,570 --> 00:24:48,850 >> És így minden, amit csinálok hogy én vagyok now-- tároltam 499 00:24:48,850 --> 00:24:52,780 lekérdezésem, az eredmények az én lekérdezés és az eredményeket egy asszociatív tömbben, 500 00:24:52,780 --> 00:24:56,330 és fullname a neve Az oszlop Kezdtem az. 501 00:24:56,330 --> 00:25:01,010 Szóval ez az én kulcsot a találatok asszociatív tömb, ami akarok. 502 00:25:01,010 --> 00:25:05,930 Tehát Kösz a bejelentkezés, $ eredmények, fullname kiírja, ragaszkodni fog 503 00:25:05,930 --> 00:25:08,654 kellős között göndör nadrágtartó, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 És én szeretem, hogy nyomtassa ki az üzenetet Köszönöm a bejelentkezés Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Most valószínűleg nem szeretné, hogy kemény kód ilyesmi, nem? 506 00:25:16,652 --> 00:25:19,860 Azt érdemes csinálni valamit, mint print f, ahol tudjuk helyettesíteni, és talán 507 00:25:19,860 --> 00:25:22,443 gyűjtsük össze a különböző információkat, vagy talán van lekérdezési folyamat 508 00:25:22,443 --> 00:25:23,370 különböző információkat. 509 00:25:23,370 --> 00:25:27,920 És így query -ben funkció ez a fogalom egyfajta cserék 510 00:25:27,920 --> 00:25:32,310 nagyon hasonló nyomtatni f százalékkal s és százalékos c, a kérdőjelek. 511 00:25:32,310 --> 00:25:34,290 >> És tudjuk használni kérdést jelek nagyon hasonló módon 512 00:25:34,290 --> 00:25:38,400 nyomtatni f helyettesítő változókat. 513 00:25:38,400 --> 00:25:44,120 Így talán a felhasználó bejelentkezett a korábbi, és mentette a felhasználói azonosító száma 514 00:25:44,120 --> 00:25:51,710 A a $ _SESSION PHP szuper globális key ID. 515 00:25:51,710 --> 00:25:55,947 Szóval lehet, miután bejelentkezett, beállítja a $ _SESSION ID = 10, 516 00:25:55,947 --> 00:25:58,280 levezetve a példa láttunk egy másodperccel ezelőtt. 517 00:25:58,280 --> 00:26:01,960 >> És így amikor ténylegesen végre ez a lekérdezés eredményét most, 518 00:26:01,960 --> 00:26:08,440 akkor csatlakoztassa a 10, vagy bármi $ _SESSION ID érték. 519 00:26:08,440 --> 00:26:10,790 És úgy, hogy lehetővé teszi számunkra, hogy egy kicsit dinamikusabb. 520 00:26:10,790 --> 00:26:12,699 Mi nem nehéz kódolás dolgokat többé. 521 00:26:12,699 --> 00:26:14,490 Mi információk elmentése Valahol majd 522 00:26:14,490 --> 00:26:18,924 tudjuk használni ezt az információt újra fajta általánosítani, mit akarunk csinálni, 523 00:26:18,924 --> 00:26:21,090 és csak a plug-in és a változás viselkedését oldalunkon 524 00:26:21,090 --> 00:26:26,489 annak alapján, amit a felhasználó azonosító száma valójában, miután már bejelentkezett. 525 00:26:26,489 --> 00:26:28,530 Az is lehetséges azonban, hogy az eredményeket beállítva 526 00:26:28,530 --> 00:26:30,840 állhat több sort. 527 00:26:30,840 --> 00:26:33,990 Ebben az esetben meg kell egy sor arrays-- 528 00:26:33,990 --> 00:26:35,334 tömb asszociatív tömbök. 529 00:26:35,334 --> 00:26:37,000 És akkor csak meg kell halad végig azt. 530 00:26:37,000 --> 00:26:41,950 És tudjuk, hogyan kell ismételget a tömb PHP, ugye? 531 00:26:41,950 --> 00:26:45,600 Tehát itt van talán a legnagyobb összetett dolog, amit eddig láttunk. 532 00:26:45,600 --> 00:26:49,640 Ez valójában integrálja Három nyelven össze. 533 00:26:49,640 --> 00:26:52,920 >> Itt a piros, ez valami HTML. 534 00:26:52,920 --> 00:26:56,872 Én nyilván starting-- ez egy részlet a HTML kódot, hogy van. 535 00:26:56,872 --> 00:26:59,580 Kezdek egy új bekezdést, amely mondja a mamák a TV Seinfeld. 536 00:26:59,580 --> 00:27:02,350 Majd közvetlenül ezután az Kezdek egy asztalt. 537 00:27:02,350 --> 00:27:06,060 És azután, hogy én Van néhány PHP, ugye? 538 00:27:06,060 --> 00:27:08,229 Én már mindezt PHP kódot is. 539 00:27:08,229 --> 00:27:09,645 Én nyilván fog tenni a lekérdezéshez. 540 00:27:09,645 --> 00:27:14,180 És hogy a lekérdezés, megyek lennie a SELECT anyák anyukák. 541 00:27:14,180 --> 00:27:15,970 >> Szóval ez getting-- ez SQL. 542 00:27:15,970 --> 00:27:17,300 Tehát az a kék SQL. 543 00:27:17,300 --> 00:27:19,680 A piros láttunk egy perce volt a HTML. 544 00:27:19,680 --> 00:27:21,360 És a zöld itt PHP. 545 00:27:21,360 --> 00:27:23,400 Úgyhogy lekérdezéssel hogy az adatbázis vagyok 546 00:27:23,400 --> 00:27:26,040 kijelölte az összes anyák anyukák asztalra. 547 00:27:26,040 --> 00:27:30,710 Nem csak szűkül le, hogy különösen sorban, kérek mindet. 548 00:27:30,710 --> 00:27:33,290 >> Aztán ellenőrizni, ha az eredmény Nem egyenlő felek egyenlő hamis. 549 00:27:33,290 --> 00:27:37,410 Ez csak az én utam az ellenőrzés egyfajta Az, ha az eredmények nem egyenlő null, 550 00:27:37,410 --> 00:27:40,260 hogy látnánk c például. 551 00:27:40,260 --> 00:27:44,000 Alapvetően ez csak ellenőrzi, hogy arról, hogy tényleg kapott adatokat vissza. 552 00:27:44,000 --> 00:27:47,041 Mert nem akarom, hogy indítsa el a nyomtatást ki az adatokat, ha nem kaptam semmilyen adatot. 553 00:27:47,041 --> 00:27:50,690 Ezután az egyes eredményeket ennek eredményeként a foreach szintaxis PHP, minden, amit csinálok 554 00:27:50,690 --> 00:27:53,399 nyomtatja $ result anyák. 555 00:27:53,399 --> 00:27:55,940 És így fogok kapni egy sor Az összes anyák each-- 556 00:27:55,940 --> 00:27:59,980 ez egy sor asszociatív arrays-- és én kinyomtatásával 557 00:27:59,980 --> 00:28:03,649 mindegyiket külön sorban az asztalra. 558 00:28:03,649 --> 00:28:05,690 És ez nagyon szép sok minden van hozzá. 559 00:28:05,690 --> 00:28:07,750 Tudom, hogy van egy kis kicsit folyik itt 560 00:28:07,750 --> 00:28:13,210 ebben az utolsó például tömbök arrays-- tömbök asszociatív tömbök. 561 00:28:13,210 --> 00:28:17,340 De ez tényleg csak forraljuk megállapított SQL lekérdezéssel, 562 00:28:17,340 --> 00:28:21,102 Általában kiválasztása után mi már tedd információt a táblázatba, 563 00:28:21,102 --> 00:28:22,310 és aztán csak kihúzza. 564 00:28:22,310 --> 00:28:25,710 >> És ez mi lenne húzza ebben a konkrét esetben. 565 00:28:25,710 --> 00:28:31,120 Szeretnénk kivonat minden az egyes anyák a mamák asztalra. 566 00:28:31,120 --> 00:28:35,970 Van egy egész sor őket, és mi szeretnénk, hogy halad végig, és nyomtassa ki 567 00:28:35,970 --> 00:28:37,630 mindegyik. 568 00:28:37,630 --> 00:28:40,510 Szóval megint, ez valószínűleg A legbonyolultabb példája 569 00:28:40,510 --> 00:28:44,510 láttuk, mert mi vagyunk a keverés három különböző nyelveken együtt, ugye? 570 00:28:44,510 --> 00:28:50,100 >> Ismét van HTML itt a piros, keverve némi SQL itt kék, 571 00:28:50,100 --> 00:28:52,049 keverve némi PHP zöld. 572 00:28:52,049 --> 00:28:53,840 De mindezen játszani szépen össze, ez 573 00:28:53,840 --> 00:28:57,060 csak egy kérdés a fejlődő jó szokásokat, hogy lehet kapni 574 00:28:57,060 --> 00:28:58,780 őket, hogy működjenek együtt a kívánt módon. 575 00:28:58,780 --> 00:29:03,790 És az egyetlen módja annak, hogy tényleg, hogy a gyakorlás, gyakorlás, gyakorlás. 576 00:29:03,790 --> 00:29:06,740 Én Doug Lloyd, ez CS50. 577 00:29:06,740 --> 00:29:08,647