1 00:00:00,000 --> 00:00:02,405 >> [Zenelejátszási] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVID MALAN: Rendben, ez CS50. 4 00:00:11,980 --> 00:00:13,740 Ez a hét végén nyolc. 5 00:00:13,740 --> 00:00:15,887 És ma, kezdjük hogy töltse ki az egyes darabokat 6 00:00:15,887 --> 00:00:17,720 amikor épületben dolgokat az interneten. 7 00:00:17,720 --> 00:00:20,020 Szóval, emlékszem, hogy hétfőn töltünk sok időt 8 00:00:20,020 --> 00:00:22,530 PHP, ami ezt a dinamikus programozási nyelv, 9 00:00:22,530 --> 00:00:26,872 lehetővé teszi számunkra kimenet, többek között dolgokat, HTML és egyéb ilyen tartalom 10 00:00:26,872 --> 00:00:27,830 hogy akkor szeretnénk látni. 11 00:00:27,830 --> 00:00:30,871 De nem igazán látszott, hogy mennyire fogunk tárol semmilyen információt. 12 00:00:30,871 --> 00:00:34,477 Valóban, szinte minden, hogy a szuper Érdekes weboldalakat látogat ma 13 00:00:34,477 --> 00:00:36,560 Van valamilyen adatbázis a háttérben, nem igaz? 14 00:00:36,560 --> 00:00:39,540 Facebook biztosan tárolja sok adatot rólunk és a Gmail tárolja 15 00:00:39,540 --> 00:00:40,210 Az e-mailjeit. 16 00:00:40,210 --> 00:00:44,150 >> És igen, sok más oldalak nem csak statikus tartalmakat, amelyek tájékoztató. 17 00:00:44,150 --> 00:00:45,640 Ez valójában dinamikus valamilyen módon. 18 00:00:45,640 --> 00:00:48,480 Akkor járuljon, frissíti Az oldalak más emberek. 19 00:00:48,480 --> 00:00:50,620 Kapsz üzeneteket küldünk üzeneteket, és így tovább. 20 00:00:50,620 --> 00:00:54,250 Tehát ma, nézzük meg közelebbről A alapjait a projekt 21 00:00:54,250 --> 00:00:57,330 hogy akkor belevetik magukat következő héten, CS50 pénzügyek, amely 22 00:00:57,330 --> 00:01:00,509 valójában megy, hogy építeni valami nem C, hanem a PHP. 23 00:01:00,509 --> 00:01:02,550 A honlap úgy néz ki, a kicsit valami ilyesmi 24 00:01:02,550 --> 00:01:05,810 amely lehetővé teszi, hogy vásárolni és eladni állományok, amelyek valóban 25 00:01:05,810 --> 00:01:09,044 fog támaszkodni, valós idejű állományi adatok a Yahoo Finance. 26 00:01:09,044 --> 00:01:11,960 És így végső soron, akkor még a illúzió magad és felhasználók 27 00:01:11,960 --> 00:01:14,550 hogy te tényleg vételi és eladási készletek és egyre közel valós idejű 28 00:01:14,550 --> 00:01:16,800 frissítések, kezelése egy portfolió, amelyek mindegyike 29 00:01:16,800 --> 00:01:20,310 lesz szükség, amelyek, végül, egy adatbázist a felhasználók. 30 00:01:20,310 --> 00:01:23,330 >> Szóval, a saját szavaival, különösen akkor, ha nem 31 00:01:23,330 --> 00:01:25,670 szuper jártas a számítógépes tudomány vagy adatbázisok, milyen 32 00:01:25,670 --> 00:01:30,790 Ismersz egy adatbázist is Most, a műszaki beállítottságú szempontjából? 33 00:01:30,790 --> 00:01:32,300 Mi az? 34 00:01:32,300 --> 00:01:36,882 Hogyan írnád le hogy egy szobatársat, vagy egy barát? 35 00:01:36,882 --> 00:01:40,100 >> Közönség: [hallható] információk [hallhatatlan] 36 00:01:40,100 --> 00:01:44,430 >> DAVID MALAN: Szóval, a fenti információk, vagy store-- információk listáját 37 00:01:44,430 --> 00:01:47,160 hogy érdemes tárolni valami, mint a felhasználó. 38 00:01:47,160 --> 00:01:50,190 És mit felhasználók velük kapcsolatban? 39 00:01:50,190 --> 00:01:53,160 Ha egy felhasználó a Facebook-on, vagy Gmail, mik a jellemzői 40 00:01:53,160 --> 00:01:54,940 hogy mindannyian felhasználó? 41 00:01:54,940 --> 00:01:58,530 Mint, mi lehet néhány oszlopok a táblázatban, amihez 42 00:01:58,530 --> 00:01:59,390 utalt utoljára? 43 00:01:59,390 --> 00:02:01,140 Mert újra, akkor gondolom, egy adatbázis 44 00:02:01,140 --> 00:02:05,810 Tényleg, mint egy díszes Excel fájl vagy Google Táblázatkezelő vagy az Apple számok fájlt. 45 00:02:05,810 --> 00:02:08,280 >> Szóval, mit gondolsz a ha úgy gondolja, hogy egy felhasználó? 46 00:02:08,280 --> 00:02:11,290 Mit vannak? 47 00:02:11,290 --> 00:02:11,790 Az mi? 48 00:02:11,790 --> 00:02:12,470 >> Közönség: A név. 49 00:02:12,470 --> 00:02:13,303 >> DAVID MALAN: A név. 50 00:02:13,303 --> 00:02:16,840 Tehát, ha nevet, mint, David Malan lenne a neve néhány felhasználó. 51 00:02:16,840 --> 00:02:17,980 Mit csinál egy felhasználó van? 52 00:02:17,980 --> 00:02:18,770 >> Közönség: egy azonosítót. 53 00:02:18,770 --> 00:02:19,561 >> DAVID MALAN: az id. 54 00:02:19,561 --> 00:02:23,320 Tehát, mint egy azonosító szám, mint a Harvard ID vagy a Yale Net ID vagy hasonlók. 55 00:02:23,320 --> 00:02:24,923 Mi mást lehet egy felhasználó van? 56 00:02:24,923 --> 00:02:25,890 >> Közönség: Jelszó. 57 00:02:25,890 --> 00:02:29,240 >> DAVID MALAN: A jelszó, talán egy címet, esetleg egy telefonszámot, talán 58 00:02:29,240 --> 00:02:30,050 egy e-mail címet. 59 00:02:30,050 --> 00:02:32,640 Szóval, van csokrok a területen, és ez a lehetne egyfajta kikerültek az ellenőrzés 60 00:02:32,640 --> 00:02:34,760 Gyorsan, amint elkezd felismerve, ó, hadd tárolja a 61 00:02:34,760 --> 00:02:36,190 és menjünk tárolni ezt és ezt. 62 00:02:36,190 --> 00:02:37,657 >> De hogyan valójában csinálni? 63 00:02:37,657 --> 00:02:39,740 Tehát még egyszer: a mentális modell hogy a mai, mint mi 64 00:02:39,740 --> 00:02:42,320 belevetik magukat a tényleges SQL, Structured Query Language, 65 00:02:42,320 --> 00:02:44,186 egy adatbázis, amely úgy néz ki, mint ez. 66 00:02:44,186 --> 00:02:45,310 Ez csak a sorok és oszlopok. 67 00:02:45,310 --> 00:02:48,309 És tudod képzelni Google Táblázatok vagy bármilyen számú más programok. 68 00:02:48,309 --> 00:02:52,130 De mi a kulcsa a MySQL, amely a adatbázis-kezelő szoftverek fogunk használni, 69 00:02:52,130 --> 00:02:54,920 A szabadon nyíltan available-- Facebook felhasználási 70 00:02:54,920 --> 00:02:59,200 azt, és tetszőleges számú egyéb websites-- adatbázis tárolja a dolgokat relációsan. 71 00:02:59,200 --> 00:03:01,770 És egy relációs adatbázis csak azt jelenti, hogy egy szó 72 00:03:01,770 --> 00:03:03,672 ezt az adatot sorok és oszlopok. 73 00:03:03,672 --> 00:03:04,630 Ez ennyire egyszerű. 74 00:03:04,630 --> 00:03:07,230 >> Tehát, még valami, mint az Oracle, hogy lehet, hogy általában hallott 75 00:03:07,230 --> 00:03:08,271 egy relációs adatbázis. 76 00:03:08,271 --> 00:03:10,929 És a motorháztető alatt, akkor tárolja az adatokat a sorok és oszlopok. 77 00:03:10,929 --> 00:03:12,970 És az Oracle számít fel Önnek csomó pénzt erre, 78 00:03:12,970 --> 00:03:15,550 mivel MySQL díjak Semmit sem ugyanaz. 79 00:03:15,550 --> 00:03:18,790 Szóval, SQL fog adni nekünk legalább négy műveleteket. 80 00:03:18,790 --> 00:03:23,190 Az a képesség, hogy kiválassza az adatok, mint például olvasási adatok, beszúrás, törlés, és frissíteni az adatokat. 81 00:03:23,190 --> 00:03:25,525 Más szóval, ezek Tényleg a négy kulcsfontosságú műveletek 82 00:03:25,525 --> 00:03:28,950 hogy fognak teszi számunkra, hogy változtatni cucc azokat a sorokat és oszlopokat. 83 00:03:28,950 --> 00:03:33,250 >> Az eszköz, amely fogjuk használni ma különösen tanulni SQL és játszani vele 84 00:03:33,250 --> 00:03:34,627 ismét felhívta a PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 Ez a web alapú eszköz. 86 00:03:35,460 --> 00:03:38,200 Összesen véletlen, hogy ez van írva a PHP. 87 00:03:38,200 --> 00:03:42,400 De ez meg fog adni nekünk egy grafikus felhasználói felületet úgy, hogy mi is valójában 88 00:03:42,400 --> 00:03:46,054 létrehozni ezeket a sorokat és oszlopokat majd beszélgetni velük útján kódot. 89 00:03:46,054 --> 00:03:47,970 Nos, nézzük most kezd azt hiszem, ez őszintén 90 00:03:47,970 --> 00:03:51,000 fajta szórakozás folyamata épület hátsó része honlapok, 91 00:03:51,000 --> 00:03:54,580 a részek, hogy a felhasználók nem látni, de biztosan nem törődnek, 92 00:03:54,580 --> 00:03:56,170 mert ez sokkal inkább az adatok folyik. 93 00:03:56,170 --> 00:03:59,570 Tehát, hasonló a C-on és kicsit kevesebb, mint a PHP, 94 00:03:59,570 --> 00:04:04,954 SQL, vagy egy adatbázis, amely támogatja SQL, legalább ezen adattípusok 95 00:04:04,954 --> 00:04:05,870 és fürtök mások. 96 00:04:05,870 --> 00:04:08,107 CHAR, VARCHAR, INT, BIGINT, Tízes és DATETIME. 97 00:04:08,107 --> 00:04:09,940 És van egy egész csomó más funkciók, 98 00:04:09,940 --> 00:04:11,940 de csináljuk ezt módja a példát. 99 00:04:11,940 --> 00:04:16,450 >> Én megyek be CS50 IDE ahol előre, amit bejelentkezve 100 00:04:16,450 --> 00:04:19,372 és én is meglátogatott egy URL-t Ez az eszköz az úgynevezett PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 És a probléma állítva hét, mi megmondjuk hogy pontosan hogyan kell eljutni ezen a felületen 102 00:04:22,580 --> 00:04:23,200 is. 103 00:04:23,200 --> 00:04:25,640 A bal felső sarokban, észre azt mondja előadást. 104 00:04:25,640 --> 00:04:27,610 És ez csak azt jelenti, hogy előre hoztam létre, 105 00:04:27,610 --> 00:04:31,360 egy üres adatbázist nevű előadás hogy nincs táblázatkezelő, hogy még. 106 00:04:31,360 --> 00:04:32,600 Nincs sorok és oszlopok. 107 00:04:32,600 --> 00:04:34,308 Mivel az első dolog, amit csinálsz 108 00:04:34,308 --> 00:04:37,100 A kezdeni, hogy hozzon létre egy táblázatot hogy fog tárolni a felhasználók. 109 00:04:37,100 --> 00:04:39,100 >> Szóval, szó fölött Itt a jobb vagyok 110 00:04:39,100 --> 00:04:42,070 fogja mondani az adatbázisban Szeretnék egy asztal nevű felhasználó. 111 00:04:42,070 --> 00:04:44,845 Szóval, ez olyan, mint a fájl, hogy én szeretné tárolni az összes adataimat. 112 00:04:44,845 --> 00:04:45,720 És hány oszlop? 113 00:04:45,720 --> 00:04:47,740 Nos, hogy ez egyszerű most. 114 00:04:47,740 --> 00:04:51,855 Csak azt akarom, hogy tárolja, mint egy felhasználónév és egy nevet a felhasználó. 115 00:04:51,855 --> 00:04:53,020 Kezdjük kicsi. 116 00:04:53,020 --> 00:04:55,370 Szóval, azt akarom, két oszlop összesen. 117 00:04:55,370 --> 00:04:57,360 És én megyek előre, és kattintson a Mehet gombra. 118 00:04:57,360 --> 00:04:59,210 És akkor, ezekre oszlopok, mit fogok 119 00:04:59,210 --> 00:05:04,576 hogy do-- ha ezt az internetes cooperates-- rendben, 120 00:05:04,576 --> 00:05:05,950 így fogunk próbálni, hogy újra. 121 00:05:05,950 --> 00:05:09,180 Megyek, hogy hozzon létre egy táblázatot az úgynevezett Felhasználók két oszlop, kattintson a Go OK. 122 00:05:09,180 --> 00:05:10,520 Most már van, hogy valóban gyors. 123 00:05:10,520 --> 00:05:12,065 Köszönöm, nagyon jól sikerült. 124 00:05:12,065 --> 00:05:14,440 Rendben, akkor mi akarunk ezeket az oszlopokat, hogy hívják? 125 00:05:14,440 --> 00:05:16,080 >> Szóval, az egyik meg fog hívni felhasználónévre. 126 00:05:16,080 --> 00:05:19,480 Szóval, látom here-- és a felület őszintén kap egy kicsit csúnya végül, 127 00:05:19,480 --> 00:05:21,270 egyszer elkezd írni az összes adatot. 128 00:05:21,270 --> 00:05:27,450 De mi a szép, hogy egyfajta paradox módon, hozok létre oszlopok, 129 00:05:27,450 --> 00:05:29,977 de a szerszám ostobán fektette sorokba 130 00:05:29,977 --> 00:05:31,560 így én is beállítani ezeket az oszlopokat. 131 00:05:31,560 --> 00:05:33,550 Szóval, van két szelvényt ott a Név. 132 00:05:33,550 --> 00:05:36,180 És egyikre azt szeretnénk, hogy az úgynevezett Felhasználónév, 133 00:05:36,180 --> 00:05:38,000 és a többi területen akarom hívni neve. 134 00:05:38,000 --> 00:05:40,340 >> És most azt kell választani adattípusok ezeket a dolgokat. 135 00:05:40,340 --> 00:05:42,330 Tehát, mivel az Excel és a Google Táblázatok, 136 00:05:42,330 --> 00:05:45,531 ha szeretnél egy oszlop, akkor szó csak típus neve vagy felhasználónév, az Enter leütése. 137 00:05:45,531 --> 00:05:48,030 Talán akkor teszi félkövér Csak az egyértelműség kedvéért, de ennyi. 138 00:05:48,030 --> 00:05:50,140 Nem adja meg a típusú oszlopok. 139 00:05:50,140 --> 00:05:53,790 Most a Google Spreadsheets vagy Excel, akkor Lehet, meghatározza, hogyan teszi az adatokat. 140 00:05:53,790 --> 00:05:58,120 Lehet menni a Formátum menü és megadhatja mutatni ezt, mint a dollár jel, 141 00:05:58,120 --> 00:05:59,900 jelenjen meg ez, mint egy lebegőpontos értéket. 142 00:05:59,900 --> 00:06:01,990 >> Szóval, ez hasonló szellemiségben hogy amit most tenni, 143 00:06:01,990 --> 00:06:04,740 de ez valójában fogja kényszeríteni az adatokat, hogy egy bizonyos típusú. 144 00:06:04,740 --> 00:06:07,750 Most, bár egy perccel ezelőtt én azt mondta, csak néhány adattípusok, 145 00:06:07,750 --> 00:06:11,120 van valójában egy csomó, és ők 146 00:06:11,120 --> 00:06:12,910 különböző fokú jellegét. 147 00:06:12,910 --> 00:06:14,970 És mint félre, akkor is csinálni extra dolgot 148 00:06:14,970 --> 00:06:17,520 mint a tároló geometria belsejében egy adatbázisban. 149 00:06:17,520 --> 00:06:19,250 Tudod tárolni a dolgokat mint a GPS koordinátákat 150 00:06:19,250 --> 00:06:22,420 és ténylegesen meg, matematikailag, pont, amelyek közel vannak mások. 151 00:06:22,420 --> 00:06:24,128 De megyünk tartani ezt a szuper egyszerű 152 00:06:24,128 --> 00:06:26,800 és menj fel ide, minden az úgynevezett sztring típusú. 153 00:06:26,800 --> 00:06:29,240 >> Szóval, itt van egy lista csomó lehetőséget. 154 00:06:29,240 --> 00:06:32,740 CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 És ez a fajta elsöprő. 156 00:06:34,110 --> 00:06:37,610 És sajnos, kissé paradox módon a C, 157 00:06:37,610 --> 00:06:40,120 Char nem igazán KAR. 158 00:06:40,120 --> 00:06:44,170 Ha megad egy adatbázisban hogy az adatok típusa CHAR, 159 00:06:44,170 --> 00:06:47,390 ez azt jelenti, hogy igen, ez egy CHAR, de egy vagy több karakter. 160 00:06:47,390 --> 00:06:49,630 És meg kell adnia Hány KARAKTEREKRE akarsz. 161 00:06:49,630 --> 00:06:51,636 Szóval, mi az a tipikus hossza a felhasználónevet? 162 00:06:51,636 --> 00:06:52,760 Van egy határ általában? 163 00:06:52,760 --> 00:06:53,920 >> Közönség: [hallható] 164 00:06:53,920 --> 00:06:55,050 >> DAVID MALAN: 16 talán? 165 00:06:55,050 --> 00:06:55,990 Valami hasonló. 166 00:06:55,990 --> 00:06:57,948 Tudod, vissza a nap, ez szokott lenni nyolc. 167 00:06:57,948 --> 00:07:00,289 Néha 16, néha ez még ennél is többet. 168 00:07:00,289 --> 00:07:02,080 És igen, ez nem jelenti, hogy nekem egy CHAR. 169 00:07:02,080 --> 00:07:04,730 Ez azt jelenti, kell megadnom a hossza a mező, 170 00:07:04,730 --> 00:07:07,402 és most talán mond valamit, mint 16. 171 00:07:07,402 --> 00:07:08,610 És van egy trade off itt. 172 00:07:08,610 --> 00:07:11,360 Szóval majd meglátjuk, egy pillanat alatt hogy ez azt jelenti egy, 173 00:07:11,360 --> 00:07:14,620 Minden felhasználónevet kell lennie 16 karakternél. 174 00:07:14,620 --> 00:07:18,720 De várj egy percet, M-A-L-A-N. Ha ez felhasználói nevem, és én csak használ öt, 175 00:07:18,720 --> 00:07:23,070 mit javasolna, hogy az adatbázis csinálni, a többi 11 karakter, hogy 176 00:07:23,070 --> 00:07:24,471 Már fenntartva helyet? 177 00:07:24,471 --> 00:07:25,220 Mit csinálnál? 178 00:07:25,220 --> 00:07:26,480 >> Közönség: [hallható] 179 00:07:26,480 --> 00:07:27,160 >> DAVID MALAN: Ja, csak azokat minden null. 180 00:07:27,160 --> 00:07:28,290 Hogy azok terek. 181 00:07:28,290 --> 00:07:30,816 De talán null, így egy Sok backslash nullák. 182 00:07:30,816 --> 00:07:33,190 Tehát, egyrészt, most már most már biztos, hogy a felhasználói nevem 183 00:07:33,190 --> 00:07:34,780 nem lehet több, mint 16 karakter. 184 00:07:34,780 --> 00:07:37,590 És a másik oldala az, hogy a hogy ha volt egy nagyon hosszú név 185 00:07:37,590 --> 00:07:39,940 vagy akart egy nagyon hosszú felhasználónév mint néhányan közületek 186 00:07:39,940 --> 00:07:44,840 srácok talán az, hogy főiskolára vagy A Yale.edu, akkor nem egy van. 187 00:07:44,840 --> 00:07:47,177 És így tulajdonképpen, ha már valaha regisztrált a honlapon 188 00:07:47,177 --> 00:07:49,385 és kapsz kiabált mondván jelszó túl hosszú 189 00:07:49,385 --> 00:07:52,710 vagy felhasználónév túl hosszú, ez egyszerűen azért, mert a programozó, ha 190 00:07:52,710 --> 00:07:55,500 konfigurálása saját adatbázis, úgy döntött, hogy ez a mező 191 00:07:55,500 --> 00:07:57,150 nem lehet hosszabb, mint ez a hossz. 192 00:07:57,150 --> 00:08:00,580 >> Rendben, akkor mi lenne, ha haladunk elnevezni? 193 00:08:00,580 --> 00:08:05,240 Mennyi ideig kell a tipikus emberi neve legyen? 194 00:08:05,240 --> 00:08:07,492 Hány karakter, 16? 195 00:08:07,492 --> 00:08:09,450 Gondolom tudtunk találni valakit, ebben a szobában 196 00:08:09,450 --> 00:08:13,210 ahol az ő első és utolsó név hosszabb, mint 16 karakter. 197 00:08:13,210 --> 00:08:14,850 Szóval, mi a jobb, mint, hogy 17? 198 00:08:14,850 --> 00:08:17,040 18? 199 00:08:17,040 --> 00:08:18,830 25? 200 00:08:18,830 --> 00:08:20,350 Nagyobb? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> Közönség: [hallható] 203 00:08:21,855 --> 00:08:23,700 DAVID MALAN: 5000, istenem. 204 00:08:23,700 --> 00:08:26,309 Szóval, ez valószínűleg egy tisztességes felső határértéket, mondjuk. 205 00:08:26,309 --> 00:08:28,350 És itt ilyen van hogy az ítélet hívást. 206 00:08:28,350 --> 00:08:30,400 Mint, nincs jó válasz van. 207 00:08:30,400 --> 00:08:32,740 Végtelen nem egészen lehetőség mert mi vagyunk végül 208 00:08:32,740 --> 00:08:34,781 fog have-- vagyunk fog elfogy a memória. 209 00:08:34,781 --> 00:08:36,909 Szóval, van, hogy egy ítélet hívást egy bizonyos ponton. 210 00:08:36,909 --> 00:08:41,010 >> Nagyon gyakori lenne, például, hogy use-- és hadd adja KAR itt 211 00:08:41,010 --> 00:08:46,050 mint before-- 255 volt szó a felső határa az adatbázisban szoftver 212 00:08:46,050 --> 00:08:46,700 évekkel ezelőtt. 213 00:08:46,700 --> 00:08:48,575 És így, a sok emberre csak azt mondom, rendben. 214 00:08:48,575 --> 00:08:49,420 255 a határ. 215 00:08:49,420 --> 00:08:50,620 Nézzük csak használja a maximumot. 216 00:08:50,620 --> 00:08:51,870 És ez elég nevetséges. 217 00:08:51,870 --> 00:08:55,060 Mint, ha írsz valaki nevét 200 plusz karakter, 218 00:08:55,060 --> 00:08:56,140 hogy egy kicsit nevetséges. 219 00:08:56,140 --> 00:08:59,624 >> De ne feledjük, hogy az ASCII nem az egyetlen rendszer karaktereket. 220 00:08:59,624 --> 00:09:01,540 És így, különösen egy Sok ázsiai nyelvek 221 00:09:01,540 --> 00:09:04,248 ahol van karakter nem tudjuk kifejezni a billentyűs, mint az én US 222 00:09:04,248 --> 00:09:08,209 billentyűzet, néhány karakter ténylegesen vegye fel 16 bit helyett nyolc bit. 223 00:09:08,209 --> 00:09:10,250 És igen, ez valójában egyáltalán nem olyan ésszerűtlen 224 00:09:10,250 --> 00:09:12,250 hogy több kell helyet, ha azt akarjuk, hogy illeszkedjen 225 00:09:12,250 --> 00:09:16,252 nagyobb karakter, mint az USA-ban nagyon centrikus is, amit inkább, hogy megvitassák. 226 00:09:16,252 --> 00:09:17,460 Szóval, mi kell egy kis felső korlát. 227 00:09:17,460 --> 00:09:21,470 Nem tudom, hogy mi a legjobb egy, de 255 általában egy közös egy. 228 00:09:21,470 --> 00:09:22,700 25 úgy érzi, alacsony. 229 00:09:22,700 --> 00:09:23,857 16, 32 úgy érzi, alacsony. 230 00:09:23,857 --> 00:09:25,690 Én err oldalán valami magasabb. 231 00:09:25,690 --> 00:09:27,330 De van egy kompromisszum, mint mindig. 232 00:09:27,330 --> 00:09:31,902 Mi az, talán nyilvánvaló kompromisszumot foglalásra 255 KARAKTEREKRE 233 00:09:31,902 --> 00:09:33,360 mindenki neve mellett a adatbázis? 234 00:09:33,360 --> 00:09:34,230 >> Közönség: [hallható] 235 00:09:34,230 --> 00:09:34,510 >> DAVID MALAN: Mi ez? 236 00:09:34,510 --> 00:09:35,430 >> Közönség: [hallható] 237 00:09:35,430 --> 00:09:37,138 >> DAVID MALAN: Ez egy sok memóriát, ugye? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N. Épp most kárba 250 karakterek csak tárolni a nevem 239 00:09:42,280 --> 00:09:46,000 védekezően, csak abban az esetben, ha valaki az osztályban van egy nagyon hosszú nevet. 240 00:09:46,000 --> 00:09:47,940 Úgy tűnik, mint egy indokolatlan kompromisszum. 241 00:09:47,940 --> 00:09:52,040 >> Szóval, kiderül, hogy az SQL, Ebben az adatbázisban nyelv, 242 00:09:52,040 --> 00:09:55,480 ténylegesen támogatja valamit nevű VARCHAR, vagy változó KAR. 243 00:09:55,480 --> 00:09:59,390 És ez a fajta szép, hogy ezt megadhatja, hogy nem egy fix 244 00:09:59,390 --> 00:10:01,900 szélesség, hanem egy változó szélességű. 245 00:10:01,900 --> 00:10:05,060 És Közelebbről, egy maximális szélessége a területen. 246 00:10:05,060 --> 00:10:08,901 Tehát, ez azt jelenti, hogy egy név nem lehet több mint 250 karakter, 247 00:10:08,901 --> 00:10:10,150 de minden bizonnyal kevesebb. 248 00:10:10,150 --> 00:10:11,733 És az adatbázis lesz okos. 249 00:10:11,733 --> 00:10:14,860 Ha életbe M-A-L-A-N, ez csak akkor fog használni öt, 250 00:10:14,860 --> 00:10:18,120 talán hat byte, mint A záró null karaktert, 251 00:10:18,120 --> 00:10:23,330 és nem költenek egy további 249 vagy 250 byte feleslegesen. 252 00:10:23,330 --> 00:10:27,380 >> Szóval, ez úgy tűnik, mint kéne kezdtek ezzel a történettel. 253 00:10:27,380 --> 00:10:29,140 De mindig van egy üzlet. 254 00:10:29,140 --> 00:10:33,024 Szóval, egyrészt, egy felhasználónevet voltam megadva kell bedrótozott 16, 255 00:10:33,024 --> 00:10:34,940 és lehet, hogy nem volt a jobb hívás, talán 256 00:10:34,940 --> 00:10:40,040 van, de miért nem használja VARCHARs mindent? 257 00:10:40,040 --> 00:10:42,020 >> Létezik, az oka. 258 00:10:42,020 --> 00:10:46,200 Miért nem használja VARCHARs minden téren amelynek hossza nem tudod előre 259 00:10:46,200 --> 00:10:48,180 ha úgy tűnik, hogy egy nagy dolog, ugye? 260 00:10:48,180 --> 00:10:50,482 Csak annyi helyet, mint meg kell akár ezt a határt? 261 00:10:50,482 --> 00:10:51,271 >> Közönség: Lassabb. 262 00:10:51,271 --> 00:10:52,146 DAVID MALAN: helyesírás? 263 00:10:52,146 --> 00:10:53,120 Közönség: Teszi lassabb? 264 00:10:53,120 --> 00:10:53,970 DAVID MALAN: Ó, ez lassabb. 265 00:10:53,970 --> 00:10:55,720 Jó, hogy szinte mindig a válasz, őszintén szólva. 266 00:10:55,720 --> 00:10:56,520 Mint, mi a kompromisszum? 267 00:10:56,520 --> 00:10:58,570 Ez akár többe hely vagy többe időt. 268 00:10:58,570 --> 00:11:00,111 Tehát, ebben az esetben, lehet, hogy lassabb. 269 00:11:00,111 --> 00:11:00,920 Miért? 270 00:11:00,920 --> 00:11:05,830 >> Közönség: [hallható] meghatározására [hallható]. 271 00:11:05,830 --> 00:11:06,640 >> DAVID MALAN: Jó. 272 00:11:06,640 --> 00:11:09,670 Szóval, lehet, hogy visszahívja a még PSED5, játszik a megközelítést 273 00:11:09,670 --> 00:11:12,750 a szótárba, ha kell memóriát lefoglalni dinamikusan vagy tartsa 274 00:11:12,750 --> 00:11:14,630 növekvő egy puffer, amely is lehet lassú. 275 00:11:14,630 --> 00:11:16,963 Ha kell hívni malloc a motorháztető alatt, és talán 276 00:11:16,963 --> 00:11:19,610 ez az, amit a MySQL csinál, így biztosan, hogy lehet a helyzet. 277 00:11:19,610 --> 00:11:22,430 És ha úgy gondolja módon vissza PSet-- vagy akár 278 00:11:22,430 --> 00:11:26,340 hetek két, amikor nem a dolgok, mint bináris keresés, vagy akár lineáris keresés, 279 00:11:26,340 --> 00:11:30,690 Az egyik szép dolog minden szó adatbázisban vagy minden szót egy oszlopban 280 00:11:30,690 --> 00:11:33,690 hogy pontosan azonos hosszúságú, még ha egy csomó ezeket a karaktereket 281 00:11:33,690 --> 00:11:37,390 üresek, hogy tudod használni véletlenszerű hozzáférés az Ön adatait, ugye? 282 00:11:37,390 --> 00:11:40,310 >> Ha tudod, hogy minden szó 16 karakteres el, 283 00:11:40,310 --> 00:11:46,460 akkor a mutató aritmetika, így a beszélnek, és megy nekünk 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 és akkor csak ugorj segítségével azonnal számtani 285 00:11:49,589 --> 00:11:51,130 bármely szó szerepel az adatbázisban. 286 00:11:51,130 --> 00:11:54,280 Mivel ha ez egy VARCHAR, Mit helyett kell tenned? 287 00:11:54,280 --> 00:11:55,960 >> [Telefon csörgése] 288 00:11:55,960 --> 00:11:58,680 >> Ha ez egy VARCHAR, akkor Nem véletlen hozzáférést. 289 00:11:58,680 --> 00:12:01,341 Mit kell keresni, vagy nem? 290 00:12:01,341 --> 00:12:01,840 Igen? 291 00:12:01,840 --> 00:12:03,240 >> Közönség: [hallható] 292 00:12:03,240 --> 00:12:04,310 >> DAVID MALAN: Nézd a whole-- nyoma 293 00:12:04,310 --> 00:12:06,518 az egész listát keres, amit valószínűleg? 294 00:12:06,518 --> 00:12:08,356 Milyen különleges értéket? 295 00:12:08,356 --> 00:12:09,230 Közönség: [hallható] 296 00:12:09,230 --> 00:12:11,105 DAVID MALAN: Keresek A null terminátorok 297 00:12:11,105 --> 00:12:13,637 hogy elhatárolják a szétválasztása szó. 298 00:12:13,637 --> 00:12:15,720 Tehát ismét egy kompromisszum, és nincs jó válasz. 299 00:12:15,720 --> 00:12:18,380 De ez az, ahol, különösen amikor a felhasználó kap, hogy sok 300 00:12:18,380 --> 00:12:21,700 és a terhelést a szerverek, a igénybe vevők száma nem lesz nagy, 301 00:12:21,700 --> 00:12:23,650 ezek valójában nem triviális döntéseket. 302 00:12:23,650 --> 00:12:26,640 Szóval, mi is hagyja ezeket, mint ez, de hadd lépjünk le a jobb oldalra 303 00:12:26,640 --> 00:12:27,332 itt. 304 00:12:27,332 --> 00:12:30,290 Nos, van egy pár oszlopok ahol van, hogy az ítélet hívást. 305 00:12:30,290 --> 00:12:35,170 Van-e értelme, hogy a felhasználó Íme, a felhasználó felhasználónév vagy a felhasználó 306 00:12:35,170 --> 00:12:36,370 nevet, hogy semmis? 307 00:12:36,370 --> 00:12:37,610 Azaz, csak üres. 308 00:12:37,610 --> 00:12:40,360 Olyan egy kicsit értelmetlen, tehát vagyok Nem fogja ellenőrizni ezeket a dobozokat. 309 00:12:40,360 --> 00:12:42,670 De kiderül, egy adatbázis, akkor azt mondják, 310 00:12:42,670 --> 00:12:44,620 valaki tud opcionálisan ez az érték. 311 00:12:44,620 --> 00:12:47,180 Ez az oszlop nem hogy valóban ott lesz. 312 00:12:47,180 --> 00:12:48,570 >> Most itt van ez a legördülő menüből. 313 00:12:48,570 --> 00:12:50,810 És észre én még mindig az első sorban ott, 314 00:12:50,810 --> 00:12:52,520 így beszélek felhasználónév most. 315 00:12:52,520 --> 00:12:56,290 És kiderül, hogy egy adatbázis, eltérően egy egyszerű puszta táblázatkezelő, 316 00:12:56,290 --> 00:12:58,520 van erős jellegét nevezett indexek. 317 00:12:58,520 --> 00:13:02,600 És egy index mód, amely a adatbázis előre, hogy én, az emberi 318 00:13:02,600 --> 00:13:03,900 vagyok okosabb, mint te. 319 00:13:03,900 --> 00:13:10,430 >> Tudom, milyen lekérdezések, válassza ki vagy beszúrni vagy törölni, vagy frissítés, 320 00:13:10,430 --> 00:13:13,182 hogy a kód lesz a vége csinál az adatbázisban. 321 00:13:13,182 --> 00:13:14,390 Szeretnék olvasni egy csomó adat. 322 00:13:14,390 --> 00:13:15,681 Azt akarom, hogy helyezzen be egy csomó adat. 323 00:13:15,681 --> 00:13:17,530 Azt akarom, hogy folyamatosan törölni egy csomó adat. 324 00:13:17,530 --> 00:13:21,520 Ha tudom, hogy én leszek belépsz a területen, mint Felhasználónév sokat, 325 00:13:21,520 --> 00:13:24,770 Én preemptively mondani a adatbázis, többet tudok, mint te, 326 00:13:24,770 --> 00:13:29,220 és szeretném rendeletet, amely be index ezen a területen. 327 00:13:29,220 --> 00:13:33,200 Amennyiben indexelés egy mező vagy egy oszlop azt jelenti, hogy az adatbázis előre 328 00:13:33,200 --> 00:13:37,040 kell, hogy kölcsönözzön néhány ötletet, mint, heti négy-öt-hat-re CS50 329 00:13:37,040 --> 00:13:39,240 és valóban létrejöjjön olyasmi, mint egy bináris keresés 330 00:13:39,240 --> 00:13:41,560 fa, vagy valami általában az úgynevezett B-fa 331 00:13:41,560 --> 00:13:43,410 hogy akkor tanulni egy osztály, mint a CS124 332 00:13:43,410 --> 00:13:46,710 A Harvard, a algoritmusokat osztály, vagy bármilyen számú más helyeken. 333 00:13:46,710 --> 00:13:49,570 >> Az adatbázis és az intelligens emberek, akik végre is hajtotta azt 334 00:13:49,570 --> 00:13:53,880 majd kitaláljuk, hogyan kell tárolni hogy információs táblázat 335 00:13:53,880 --> 00:13:57,061 a memóriában, hogy a keresés és Más műveletek szuper gyors. 336 00:13:57,061 --> 00:13:58,060 Nem kell csinálni. 337 00:13:58,060 --> 00:14:00,640 Nem kell végrehajtani lineáris keresés, vagy bináris keresés 338 00:14:00,640 --> 00:14:03,300 vagy összeolvad ilyen vagy kiválasztás sort, minden erre. 339 00:14:03,300 --> 00:14:06,590 Az adatbázis nem az Ön számára, ha azt mondja ez preemptively az index ezen a területen. 340 00:14:06,590 --> 00:14:09,100 >> És láthatjuk is, van Néhány egyéb jellemzői 341 00:14:09,100 --> 00:14:11,010 meg tudjuk mondani az adatbázis érvényesíteni. 342 00:14:11,010 --> 00:14:16,431 Mi lehet ez azt jelenti, ha úgy döntök Egyedi Ebből a menüből, csak ösztönösen? 343 00:14:16,431 --> 00:14:16,930 Igen? 344 00:14:16,930 --> 00:14:17,889 >> Közönség: [hallható] 345 00:14:17,889 --> 00:14:19,930 DAVID MALAN: Igen, a felhasználónév egyedinek kell lennie. 346 00:14:19,930 --> 00:14:23,330 Ez egy jó dolog vagy rossz dolog egy adatbázis, egy honlap a felhasználók? 347 00:14:23,330 --> 00:14:24,965 Amennyiben felhasználónevek egyediek? 348 00:14:24,965 --> 00:14:25,880 Igen, valószínűleg. 349 00:14:25,880 --> 00:14:27,800 Ha ez az, amit a mező használjuk lépnie, 350 00:14:27,800 --> 00:14:31,867 nem igazán akar emberek, amelyek ugyanolyan érzés, vagy ugyanazzal a felhasználónévvel. 351 00:14:31,867 --> 00:14:33,700 Szóval, mi lehet a adatbázis érvényesíteni, hogy így 352 00:14:33,700 --> 00:14:37,880 hogy most az én PHP kódot vagy bármilyen nyelven, Nem kell például, ellenőrizze 353 00:14:37,880 --> 00:14:41,490 feltétlenül jelent ez a felhasználóneveddel léteznek, mielőtt hagyja valaki regisztrálni? 354 00:14:41,490 --> 00:14:46,690 Az adatbázis nem fogja hagyni két ember nevű David vagy Malans regisztrálj ebben az esetben. 355 00:14:46,690 --> 00:14:50,030 >> És mint félre, bár ez a Csak menü segítségével válassza ki az egyik, 356 00:14:50,030 --> 00:14:54,550 egyedi index az, amelyik indexelve szupergyors teljesítményt, 357 00:14:54,550 --> 00:14:56,100 de ez is érvényesíti az egyediség. 358 00:14:56,100 --> 00:14:58,850 És mi jön vissza, amit a másik két értem csak egy pillanatra. 359 00:14:58,850 --> 00:15:00,930 Közben, ha elmegyek a második sorban, amely 360 00:15:00,930 --> 00:15:06,230 a felhasználó nevét, kéne határozni hogy a nevének egyedinek kell lennie? 361 00:15:06,230 --> 00:15:09,550 Nem, mert akkor minden bizonnyal have-- nincs két Dávid 362 00:15:09,550 --> 00:15:11,050 Malans ebben a szobában, a legvalószínűbb. 363 00:15:11,050 --> 00:15:14,290 De ha úgy döntünk, a másik nevet, talán biztosan ütközések. 364 00:15:14,290 --> 00:15:16,130 >> Gondolj vissza hash táblák és hasonlók. 365 00:15:16,130 --> 00:15:18,604 Szóval, mi persze nem akarjuk hogy a név mezőben egyedi. 366 00:15:18,604 --> 00:15:21,270 Szóval, mi csak elmegyünk hogy a kötőjel, kötőjel, kötőjel, semmi. 367 00:15:21,270 --> 00:15:22,660 És fogom elhagyni minden mást egyedül. 368 00:15:22,660 --> 00:15:25,035 Sőt, a legtöbb ilyen mezők akkor nem kell törődnünk. 369 00:15:25,035 --> 00:15:27,830 És amikor készen állok, hogy megmentse ezt, ha az interneten együttműködik, 370 00:15:27,830 --> 00:15:35,032 Én kattintson a Mentés, és nagyon, nagyon, nagyon Lassan azonban az adatbázis mentette. 371 00:15:35,032 --> 00:15:37,240 És most itt vagyok, hogy ezt interfész, amely bevallottan 372 00:15:37,240 --> 00:15:38,680 elsöprő első pillantásra. 373 00:15:38,680 --> 00:15:42,450 De minden fogom csinálni, hogy kattintson a szó felhasználók a bal felső sarokban. 374 00:15:42,450 --> 00:15:47,630 Én megyek ide kattintva Felhasználók, és alapértelmezés szerint ez 375 00:15:47,630 --> 00:15:50,180 végrehajtotta néhány SQL, de bővebben, hogy egy pillanatra. 376 00:15:50,180 --> 00:15:52,654 Itt csak egy összefoglalót, amit tettem. 377 00:15:52,654 --> 00:15:55,320 És nem kell aggódnia, hogy látod beszélve a latin és a svéd itt. 378 00:15:55,320 --> 00:16:00,490 Ezek csak az alapértelmezett beállításokat, mert a MySQL eredetileg, 379 00:16:00,490 --> 00:16:04,000 vagy PHP MyAdmin, az egyik a két történt írandó néhány svéd nép. 380 00:16:04,000 --> 00:16:06,100 De ez lényegtelen a mi esetünkben itt. 381 00:16:06,100 --> 00:16:08,280 >> Rendben, akkor miért van ez mind érdekes? 382 00:16:08,280 --> 00:16:13,050 Kiderül, tudok beszúrni adatok egy adatbázisba kód írásával. 383 00:16:13,050 --> 00:16:15,940 És én megy előre, és az én fájl itt vagyok 384 00:16:15,940 --> 00:16:19,000 fog menni előre, és úgy tenni, mintha ez van bekötve, hogy az adatbázis, amely 385 00:16:19,000 --> 00:16:23,040 ez nem abban a pillanatban, de ez lesz lennie, amikor elérjük a problémát beállítani hét. 386 00:16:23,040 --> 00:16:25,640 És én megyek előre, és végrehajt egy funkciót nevű lekérdezést, 387 00:16:25,640 --> 00:16:28,730 amit kapsz a problémát állítsa hét forgalmazási kódot, hogy 388 00:16:28,730 --> 00:16:31,490 ideje legalább egy érvet, amely csak egy húr. 389 00:16:31,490 --> 00:16:33,460 Egy sor SQL-kódot. 390 00:16:33,460 --> 00:16:36,700 Szóval, te arról, hogy megtanulják, hogyan kell levelet Structured Query Language. 391 00:16:36,700 --> 00:16:41,270 >> Ha azt szeretnénk, hogy helyezzen be egy új sort az én adatbázis, mert valaki azt benyújtott 392 00:16:41,270 --> 00:16:47,600 olyan formában, hogy a kódomat, azt szó szerint levelet INSERT INTO felhasználók a következő 393 00:16:47,600 --> 00:16:52,800 mezőket: felhasználónév, vessző, nevét, az értékek, az 394 00:16:52,800 --> 00:16:57,480 és most azt kell beszúrni valami ilyesmit Malan, és idézet, 395 00:16:57,480 --> 00:17:01,490 idézet vége "David Malan." És most még azok számára is ismerik SQL, 396 00:17:01,490 --> 00:17:07,830 Ezért használom szimpla idézőjelet belsejében ez a zöld húr? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Mi lehet az oka annak itt? 399 00:17:13,040 --> 00:17:14,609 >> Figyeljük meg vagyok társ-keveredés a két nyelvet. 400 00:17:14,609 --> 00:17:18,099 Kérdés egy PHP függvény, de tart egy érvet. 401 00:17:18,099 --> 00:17:21,740 És ez az érv, hogy maga is más nyelven íródtak nevezett 402 00:17:21,740 --> 00:17:23,500 SQL, Structured Query Language. 403 00:17:23,500 --> 00:17:27,940 Szóval, mindent, amit most emeltük 404 00:17:27,940 --> 00:17:30,380 az ezen a nyelven úgynevezett SQL. 405 00:17:30,380 --> 00:17:36,290 Szóval, mi ez a szimpla idézőjelet, Csak egy gyors józanság csekket? 406 00:17:36,290 --> 00:17:37,324 Előre. 407 00:17:37,324 --> 00:17:37,990 Ők szálakat. 408 00:17:37,990 --> 00:17:41,590 Szóval, idézet, idézet vége Malan és idézet, idézet vége David Malan füzér. 409 00:17:41,590 --> 00:17:45,210 És csak arra gondoltam, ösztönösen most, tudva, hogy mit tud a C és a PHP, 410 00:17:45,210 --> 00:17:50,220 Hogy miért nem ezt, amit általában Használt idézőjelek között a húrok? 411 00:17:50,220 --> 00:17:52,310 Miért én nem akarom ezt csinálni? 412 00:17:52,310 --> 00:17:52,810 Igen? 413 00:17:52,810 --> 00:17:53,685 >> Közönség: [hallható] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID MALAN: Pontosan. 416 00:17:57,570 --> 00:17:59,653 Mert már használom idézőjelek között az úton 417 00:17:59,653 --> 00:18:01,929 kívül az érvelés A PHP függvény, 418 00:18:01,929 --> 00:18:03,470 Én csak megzavarja a tolmács. 419 00:18:03,470 --> 00:18:04,860 Nem fog tudni, ezek együtt járnak? 420 00:18:04,860 --> 00:18:05,735 Vajon ezek együtt járnak? 421 00:18:05,735 --> 00:18:06,810 Vajon ezek együtt járnak? 422 00:18:06,810 --> 00:18:08,070 Szóval, én felváltva helyett. 423 00:18:08,070 --> 00:18:11,784 >> Vagy tehettem ilyet, backslash idézni, vagy backslash árajánlatot. 424 00:18:11,784 --> 00:18:14,200 Őszintén szólva, ez csak kezd kap nagyon olvashatatlan és csúnya. 425 00:18:14,200 --> 00:18:16,790 De hogy lehetne elérni ugyanazt az eredményt is. 426 00:18:16,790 --> 00:18:19,760 >> Tehát, ha én is végre ezt lekérdezés most lássuk, mi történik. 427 00:18:19,760 --> 00:18:22,740 Megyek, hogy menjen előre, és most inkább mint végrehajtani a PHP kódot, amely 428 00:18:22,740 --> 00:18:24,610 Itt kapsz játszani A probléma állítva hét, 429 00:18:24,610 --> 00:18:27,200 Megyek inkább megy a PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 És én kézzel megy menni a SQL fülre, 431 00:18:29,770 --> 00:18:31,580 és hadd ráközelít a felületen. 432 00:18:31,580 --> 00:18:34,007 És fogok illeszd A dolog, amit csak gépelt. 433 00:18:34,007 --> 00:18:36,090 És a színkód van megváltozott egy kicsit most, 434 00:18:36,090 --> 00:18:38,750 csak azért, mert a program formátumok dolgok egy kicsit másképp. 435 00:18:38,750 --> 00:18:41,960 De észre, hogy amit tettem van, amit mondtam, helyezze felhasználók. 436 00:18:41,960 --> 00:18:45,790 Adtam meg, majd egy vessző elválasztva zárójeles lista a két 437 00:18:45,790 --> 00:18:48,850 mezőket, hogy szeretnék beilleszteni, és Ezután Én szó szerint azt mondta értékek 438 00:18:48,850 --> 00:18:51,510 majd egy másik zárójel, majd a két értéket 439 00:18:51,510 --> 00:18:53,520 Azt akarom, hogy a plug-in, és Most a jó intézkedés, 440 00:18:53,520 --> 00:18:55,010 Teszek pontosvessző végén. 441 00:18:55,010 --> 00:18:56,570 Szóval, ez nem C. Ez nem PHP. 442 00:18:56,570 --> 00:18:59,970 Ez most az SQL, és én beillesztéssel is ebbe a webes felület, ami 443 00:18:59,970 --> 00:19:02,710 Csak hagyom, hogy nekem, amint kattintson a Go 444 00:19:02,710 --> 00:19:08,060 végre ez a lekérdezést az adatbázisban belül futó CS50 IDE. 445 00:19:08,060 --> 00:19:09,470 >> Szóval ez jó. 446 00:19:09,470 --> 00:19:12,520 Figyeljük meg, hogy az egy sorban egészül ki, ment szuper gyors, 447 00:19:12,520 --> 00:19:15,190 0,0054 másodperc beszúrni, hogy az adatokat. 448 00:19:15,190 --> 00:19:16,610 Tehát, hogy a hangok nagyon egészséges. 449 00:19:16,610 --> 00:19:19,350 Ez átszerkesztett lekérdezésem Nekem itt csak látni 450 00:19:19,350 --> 00:19:21,730 a fajta színkódolt változat. 451 00:19:21,730 --> 00:19:24,540 De most, ha rákattintok Tallózás észre, hogy még 452 00:19:24,540 --> 00:19:29,070 bár van egy csomó rendetlenséget A képernyőn, az én asztalomnál most két sor. 453 00:19:29,070 --> 00:19:30,700 >> Szóval, hadd menjen előre, és nem egy másik. 454 00:19:30,700 --> 00:19:33,760 Ehelyett hadd megy a SQL fülre újra. 455 00:19:33,760 --> 00:19:40,723 És ezúttal én beszúrni valami ilyesmi Rob és az ő neve lesz Rob Bowden. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 Nézzük a Mentés gombra. 458 00:19:44,040 --> 00:19:46,140 Hoppá, inkább menjen. 459 00:19:46,140 --> 00:19:48,890 >> Kattintson a Tallózás gombra újra, és Most észre Van két sorban. 460 00:19:48,890 --> 00:19:52,390 Szóval, ez csak egy sokkal komplexebb módja nyitás Google Táblázatok 461 00:19:52,390 --> 00:19:54,010 és csak gépelési sorban egy oszlopot. 462 00:19:54,010 --> 00:19:57,070 De mi a legfontosabb az, hogy most már a szintaxis 463 00:19:57,070 --> 00:20:00,220 amellyel kódot írni, hogy végül, mi is valójában 464 00:20:00,220 --> 00:20:01,790 némi és ez. 465 00:20:01,790 --> 00:20:05,380 Emlékezzünk vissza, hogy a PHP támogatja szuper globális változók. 466 00:20:05,380 --> 00:20:08,415 >> Mi van benne dollár jelentkezzen aláhúzás GET PHP-ben? 467 00:20:08,415 --> 00:20:10,290 Vettünk egy pillantást az egyik vagy két egyszerű példát. 468 00:20:10,290 --> 00:20:15,640 És PSet6, emlékszem akkor szia dot PHP amely felhasználja ezt a változót. 469 00:20:15,640 --> 00:20:17,870 Mi megy itt? 470 00:20:17,870 --> 00:20:21,015 Vagy mi ez? 471 00:20:21,015 --> 00:20:22,522 Egy kicsit hangosabban. 472 00:20:22,522 --> 00:20:23,790 >> Közönség: [hallható] 473 00:20:23,790 --> 00:20:25,030 >> DAVID MALAN: Ez egy hó magja tömb, amely 474 00:20:25,030 --> 00:20:27,714 csak egy divatos szóval egy tömb, amelynek legfontosabb érték párokat. 475 00:20:27,714 --> 00:20:28,880 És a billentyűzet nem numerikus. 476 00:20:28,880 --> 00:20:30,420 Ők szavak vagy szövegek. 477 00:20:30,420 --> 00:20:32,750 És konkrétan mit azok legfontosabb érték párokat? 478 00:20:32,750 --> 00:20:35,110 Honnan jöttek? 479 00:20:35,110 --> 00:20:35,620 Bocsánat? 480 00:20:35,620 --> 00:20:36,994 >> Közönség: [hallható] 481 00:20:36,994 --> 00:20:37,660 DAVID MALAN: Nem? 482 00:20:37,660 --> 00:20:40,700 Hol az olyan alapvető érték párokat származik? 483 00:20:40,700 --> 00:20:42,490 Mondd ismét? 484 00:20:42,490 --> 00:20:44,610 Újra? 485 00:20:44,610 --> 00:20:46,472 Én vagyok az egyetlen, aki hallott valamit? 486 00:20:46,472 --> 00:20:47,810 >> [Nevetés] 487 00:20:47,810 --> 00:20:49,042 >> Ez így van, ugye? 488 00:20:49,042 --> 00:20:50,435 >> Közönség: [hallható] 489 00:20:50,435 --> 00:20:52,560 DAVID MALAN: Igen, jönnek a query string. 490 00:20:52,560 --> 00:20:55,380 Tehát, ha visszalép az időben, hogy amikor már játszott a Google 491 00:20:55,380 --> 00:20:59,600 és már ment a Google.com perjel keresés kérdőjel q egyenlő macskák, 492 00:20:59,600 --> 00:21:03,550 ha én az Enter leütése és ha Google hajtottak végre a PHP, 493 00:21:03,550 --> 00:21:07,017 PHP kódot, hogy a Google írt jutnának hozzá dollár jel 494 00:21:07,017 --> 00:21:11,600 aláhúzzák bejutni, amely kulcsfontosságú úgynevezett Q és egy értéket 495 00:21:11,600 --> 00:21:17,680 nevű macska, hogy lehet majd használni szokta tényleges keresést. 496 00:21:17,680 --> 00:21:20,860 >> Tehát valójában, mit fogok tennie, most menj vissza a PHP kód 497 00:21:20,860 --> 00:21:23,140 hogy akkor ismét többet látni a PSet7. 498 00:21:23,140 --> 00:21:25,440 És ahelyett, hogy dugulás a bedrótozott értékek 499 00:21:25,440 --> 00:21:27,630 nem tűnik, mint egy Nagyon dinamikus weboldal, 500 00:21:27,630 --> 00:21:30,680 Megyek, hogy adjak egy teaser mi a tényleges kódot tenne. 501 00:21:30,680 --> 00:21:32,854 Akkor tedd a két kérdőjel, mint ez. 502 00:21:32,854 --> 00:21:34,270 Én nem tudom, mi a felhasználónév. 503 00:21:34,270 --> 00:21:37,390 Én nem tudom, mi az név lesz, 504 00:21:37,390 --> 00:21:39,470 de azt tudom, tudom kérni őket, dinamikusan. 505 00:21:39,470 --> 00:21:43,420 >> Tehát, ha a kód írunk most a kód fut a Google szerverein, 506 00:21:43,420 --> 00:21:46,940 vagy ha ez helló dot PHP, ami jön PSet6, 507 00:21:46,940 --> 00:21:48,650 Megyek bejut A lekérdezés funkció 508 00:21:48,650 --> 00:21:51,450 akárcsak a printf, két másik érvet. 509 00:21:51,450 --> 00:21:57,120 GET, idézet, idézet vége felhasználóneveddel, és a GET, idézet, idézet vége nevet. 510 00:21:57,120 --> 00:22:00,720 És most, figyeld meg, mi a általános szerkezete van. 511 00:22:00,720 --> 00:22:03,320 Megvan a bal oldalon oldalán a hívást, 512 00:22:03,320 --> 00:22:05,480 Ez a funkció az úgynevezett lekérdezés PHP-ben. 513 00:22:05,480 --> 00:22:08,160 Még mindig van, amely az első érv, csak egy csomó szöveget. 514 00:22:08,160 --> 00:22:11,000 >> De, hogy sor szöveg nyelven írt úgynevezett SQL. 515 00:22:11,000 --> 00:22:12,616 És őszintén szólva, ez nem egy nagy nyelv. 516 00:22:12,616 --> 00:22:14,990 Mi csak beszélgetünk hivatalosan ma, tényleg. 517 00:22:14,990 --> 00:22:17,031 És akkor a probléma beállítva hét, van viszonylag 518 00:22:17,031 --> 00:22:18,800 néhány jellemzője, hogy mi vagyunk fog mozgósítani. 519 00:22:18,800 --> 00:22:22,530 A kérdőjelek, bár értem dugó ide értéket és a dugó más érték 520 00:22:22,530 --> 00:22:23,130 itt. 521 00:22:23,130 --> 00:22:26,010 És észre, amit kihagyott, amit az egész rohadt quote-- 522 00:22:26,010 --> 00:22:30,470 it-- körül idézet jelzi ebben az időben. 523 00:22:30,470 --> 00:22:34,930 Már elhagytuk a jegyzés körüli jelölések kérdőjel, 524 00:22:34,930 --> 00:22:36,410 Sajnáljuk, de ez idő tájt. 525 00:22:36,410 --> 00:22:38,870 >> Szóval, mi szép erről kérdőjel funkció, amely 526 00:22:38,870 --> 00:22:42,830 PHP látszik alátámasztani, Ruby és Python és más nyelveken, 527 00:22:42,830 --> 00:22:45,730 ez csak azt jelenti, dugó egyes érték itt, és tudod mit? 528 00:22:45,730 --> 00:22:48,300 Kitalálni, hogy használja-e Egyetlen vagy dupla idézőjel. 529 00:22:48,300 --> 00:22:50,966 Nem zavar engem azokkal szellemileg érdektelen részleteket. 530 00:22:50,966 --> 00:22:53,780 De, akkor ellenőrizd, hogy helyes úgy, hogy a kód végül 531 00:22:53,780 --> 00:22:57,010 működési és biztonságos, amely akkor van értelme, mielőtt hosszú. 532 00:22:57,010 --> 00:23:00,460 >> Most, hogy hány érvek összesen, csak azért, hogy világos, a lekérdezés funkció kezelésére? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Bárki, aki akar szavazni kettőnél többet? 535 00:23:07,581 --> 00:23:08,080 Három? 536 00:23:08,080 --> 00:23:10,001 Persze, miért is? 537 00:23:10,001 --> 00:23:10,920 Miért három? 538 00:23:10,920 --> 00:23:12,305 >> Közönség: [hallható] 539 00:23:12,305 --> 00:23:13,180 DAVID MALAN: Pontosan. 540 00:23:13,180 --> 00:23:14,610 Az első rész a húr. 541 00:23:14,610 --> 00:23:18,640 A második érv dollár jel aláhúzás GET tartó felhasználónév. 542 00:23:18,640 --> 00:23:21,950 És a harmadik érv az ugyanaz a dolog, de csak a neve. 543 00:23:21,950 --> 00:23:24,590 Tehát más szavakkal, most ha lenne egy webes formában 544 00:23:24,590 --> 00:23:27,149 hogy kellett szöveges mezők, az egyik a felhasználó felhasználóneve, 545 00:23:27,149 --> 00:23:29,690 az egyik a saját nevét, csak mint te is látna egy website 546 00:23:29,690 --> 00:23:32,120 amikor regisztrációs Néhány honlap, ez lehet 547 00:23:32,120 --> 00:23:35,450 a kód a háttérben, hogy valójában nem a beillesztés most 548 00:23:35,450 --> 00:23:37,220 az adatbázisba. 549 00:23:37,220 --> 00:23:40,870 >> Most ezzel szemben, nézzük gyorsan előre. 550 00:23:40,870 --> 00:23:43,840 Tegyük fel, hogy egy felhasználó jelenleg bejelentkezés és szeretne 551 00:23:43,840 --> 00:23:48,860 írni PHP kód, amely ellenőrzi, hogy az a személy, aki csak bejelentkezve 552 00:23:48,860 --> 00:23:52,250 valójában egy felhasználó, akkor Használja elég egyszerű forma. 553 00:23:52,250 --> 00:23:55,832 Azt lehet mondani, SELECT, mondjuk csillag, ahol csillagos jelent mindent. 554 00:23:55,832 --> 00:23:57,540 Nem tudom, mit szeretnénk, így csak adj 555 00:23:57,540 --> 00:24:01,585 az összes oszlopot a táblázatban nevű felhasználó hol, és ez szép. 556 00:24:01,585 --> 00:24:03,710 Válasszuk támogatja mi úgynevezett állítmány, amely 557 00:24:03,710 --> 00:24:06,630 mint egy módja a minősített amit akarsz. 558 00:24:06,630 --> 00:24:10,590 Hol felhasználónév megegyezik idézet, idézet vége Malan. 559 00:24:10,590 --> 00:24:13,680 Tehát itt is, amit a beágyazott belsejében az érvet 560 00:24:13,680 --> 00:24:16,110 egy PHP függvény, egy sor SQL-kódot. 561 00:24:16,110 --> 00:24:18,680 És, hogy az SQL-kód ezt alkalommal szó szerint fog 562 00:24:18,680 --> 00:24:21,790 keresni idézet, idézet vége Malan. 563 00:24:21,790 --> 00:24:24,420 >> Most ez még nem minden, hogy hasznos, így fogok ugrani, hogy 564 00:24:24,420 --> 00:24:28,650 és megyek, hogy eltette ezt a tippet: Brady, és menj 565 00:24:28,650 --> 00:24:30,990 és plug-in helyett egy kérdőjel van. 566 00:24:30,990 --> 00:24:33,290 Szóval, csak hogy tisztázzuk, mit amennyiben a második érv 567 00:24:33,290 --> 00:24:37,480 lehet, ha valaki bejelentkezik, és én ellenőrizni szeretné, ha ő valójában 568 00:24:37,480 --> 00:24:39,265 Egy felhasználó? 569 00:24:39,265 --> 00:24:40,140 Közönség: [hallható] 570 00:24:40,140 --> 00:24:40,890 DAVID MALAN: Igen. 571 00:24:40,890 --> 00:24:44,120 Hallom dollár jel aláhúzás Kérés, idézet vége felhasználónév. 572 00:24:44,120 --> 00:24:50,040 És, hogy vissza kell térnie nekem bármelyik sort az én adatbázisban 573 00:24:50,040 --> 00:24:51,986 hogy van felhasználóneve a Malan. 574 00:24:51,986 --> 00:24:54,860 Remélhetőleg most megyek, hogy újra nulla, ha Malan soha nem volt itt, 575 00:24:54,860 --> 00:24:56,290 vagy az egyik, ha van. 576 00:24:56,290 --> 00:24:59,026 Nem kellett, hogy újra két vagy három vagy négy. 577 00:24:59,026 --> 00:24:59,526 Miért? 578 00:24:59,526 --> 00:25:00,220 >> Közönség: [hallható] 579 00:25:00,220 --> 00:25:01,120 >> DAVID MALAN: Azt mondtam egyedülálló, ugye? 580 00:25:01,120 --> 00:25:01,750 Egyszerű oka. 581 00:25:01,750 --> 00:25:04,030 Mert azt mondtam ez van, egyedinek kell lennie, csak logikailag, 582 00:25:04,030 --> 00:25:07,940 akkor csak nulla vagy egy Malans ebben a konkrét adatbázis tábla. 583 00:25:07,940 --> 00:25:10,965 Most, mint egy félre, csak azért láttad ez, bár én tartani a GET 584 00:25:10,965 --> 00:25:14,350 és bár PSet6 csak akkor kell használni GET, akkor bizonyára POST. 585 00:25:14,350 --> 00:25:17,212 És emlékszem, hogy a Post egy másik technika információk benyújtásának 586 00:25:17,212 --> 00:25:19,170 egy formája, de nem jelenik meg az URL-ben. 587 00:25:19,170 --> 00:25:22,690 Ez egy kicsit biztonságosabb bizonnyal dolgok, mint a felhasználónevek és jelszavak, 588 00:25:22,690 --> 00:25:25,210 amely PSet7 lesz, sőt, járnak. 589 00:25:25,210 --> 00:25:28,130 >> Nos, nézzük ezt a PHP MyAdmin és meglátjuk, mi történik. 590 00:25:28,130 --> 00:25:30,020 Én megyek, hogy a MySQL fület. 591 00:25:30,020 --> 00:25:34,450 És észre, hogy az alapértelmezett érték PHP MyAdmin, csak hogy megpróbálja, hogy hasznos, 592 00:25:34,450 --> 00:25:37,050 az, hogy válassza csillag felhasználók, ha az egyik. 593 00:25:37,050 --> 00:25:39,430 Nos, az egyik mindig igaz, így ennek az ostoba hatékony 594 00:25:39,430 --> 00:25:40,400 A csak válassza ki mindent. 595 00:25:40,400 --> 00:25:42,691 De megyek, hogy egy kicsit pedánsabb és manuálisan 596 00:25:42,691 --> 00:25:45,920 írja ki SELECT csillag felhasználók. 597 00:25:45,920 --> 00:25:48,294 >> Most technikailag, akkor jegyezze fel a nevét a táblák. 598 00:25:48,294 --> 00:25:50,460 Ez ritka, hogy meg kell, de észre ezek nem 599 00:25:50,460 --> 00:25:52,240 A normál idézetek az amerikai billentyűzeten. 600 00:25:52,240 --> 00:25:54,760 Ez az úgynevezett végrehajtóoperátor, amely általában a bal felső 601 00:25:54,760 --> 00:25:56,000 sarkában a billentyűzeten. 602 00:25:56,000 --> 00:25:58,500 De ez ritka, hogy akkor valóban nem kell bajlódnia, hogy 603 00:25:58,500 --> 00:25:59,950 úgyhogy most kihagyja őket. 604 00:25:59,950 --> 00:26:02,280 Tehát most, hadd menjen előre és nyomd megy. 605 00:26:02,280 --> 00:26:06,616 És hány sort kell kapok vissza, amikor kiválasztom csillag felhasználók? 606 00:26:06,616 --> 00:26:08,407 >> Közönség: [hallható] 607 00:26:08,407 --> 00:26:09,990 DAVID MALAN: A sorok száma, az biztos. 608 00:26:09,990 --> 00:26:12,390 De hány e beton történet most? 609 00:26:12,390 --> 00:26:14,640 Két, mert nem volt nekem és nem volt Rob. 610 00:26:14,640 --> 00:26:19,370 Tehát, ha én kattintson a Go látom, hogy vizuálisan Kaptam vissza, sőt, két sorban. 611 00:26:19,370 --> 00:26:22,060 Van egy csomó felfordulást az képernyőn, de én csak két sort. 612 00:26:22,060 --> 00:26:28,580 Ezzel szemben, ha ezt újra és csinál SELECT csillag felhasználók, ahol a felhasználónév 613 00:26:28,580 --> 00:26:31,840 egyenlő idézet, idézet vége Malan, ha most kattintson a Go 614 00:26:31,840 --> 00:26:33,970 Én csak megy, hogy újra egy sorban. 615 00:26:33,970 --> 00:26:36,499 És végül, ha megteszem valami ilyesmi, tegyük fel, 616 00:26:36,499 --> 00:26:38,290 hogy én nem érdekel kezd mindent, 617 00:26:38,290 --> 00:26:41,020 ami elég értelmetlen most, Mert csak két oszlopot. 618 00:26:41,020 --> 00:26:43,103 Nem mintha én kiválasztása A hatalmas mennyiségű adat. 619 00:26:43,103 --> 00:26:46,720 Tegyük fel, hogy menjen előre, és ne Válassza a NÉV 620 00:26:46,720 --> 00:26:51,990 a felhasználók, ahol a felhasználónév megegyezik Malan, Mi a szép SQL őszintén, 621 00:26:51,990 --> 00:26:54,290 az, hogy ez tényleg csak nem amit mondani, hogy igen. 622 00:26:54,290 --> 00:26:57,550 Elég szűkszavú, de szó csak mondd meg, mit akarsz csinálni. 623 00:26:57,550 --> 00:27:01,130 Válassza ki a nevét, ahol a felhasználók A felhasználónév megegyezik Malan. 624 00:27:01,130 --> 00:27:03,440 És ez tényleg ilyen egyértelmű. 625 00:27:03,440 --> 00:27:08,410 Tehát, ha most hit Go, hány sorok fogok visszatérni? 626 00:27:08,410 --> 00:27:10,770 Az egyik, mert ez csak Malan, remélhetőleg. 627 00:27:10,770 --> 00:27:13,100 Vagy nulla, ha ő nem van, de az egyik maximálisan. 628 00:27:13,100 --> 00:27:17,610 >> És hány oszlop kapok vissza? 629 00:27:17,610 --> 00:27:18,450 Hány oszlopok? 630 00:27:18,450 --> 00:27:20,658 Ezúttal én csak fog hogy egy, mert én nem 631 00:27:20,658 --> 00:27:22,380 válassza csillag, ami mindent. 632 00:27:22,380 --> 00:27:27,900 Most kiválasztásával csak nevet, úgyhogy csak kap vissza egy oszlop és egy sor. 633 00:27:27,900 --> 00:27:31,730 És úgy néz ki, egyfajta megfelelően Nevetséges, csak néz szuper 634 00:27:31,730 --> 00:27:33,060 kis, mint ez. 635 00:27:33,060 --> 00:27:34,290 Szóval, mi történik valójában? 636 00:27:34,290 --> 00:27:36,890 Amikor végre egy SQL lekérdezés segítségével válasszuk, 637 00:27:36,890 --> 00:27:38,700 mit kapsz vissza az adatbázisból 638 00:27:38,700 --> 00:27:42,970 olyan, mint egy ideiglenes táblát A sorok és oszlopok, talán, 639 00:27:42,970 --> 00:27:46,260 de hiányzik semmi, hogy valójában nem az Ön által kiválasztott. 640 00:27:46,260 --> 00:27:49,010 Szóval, ez olyan, mint ha valaki volt egy nagy táblázatkezelő, minden tanuló 641 00:27:49,010 --> 00:27:51,610 regisztrált valamilyen tanulócsoport, és azt mondod, 642 00:27:51,610 --> 00:27:55,097 adj minden gólya, akik már regisztrált hallgatói csoport, milyen 643 00:27:55,097 --> 00:27:56,930 A kolléga a diákcsoport lehet csinálni 644 00:27:56,930 --> 00:27:58,430 A tudták csak kézi Ön a teljes táblázatot. 645 00:27:58,430 --> 00:27:59,742 Ez mintha azt mondanánk, válasszuk a csillag. 646 00:27:59,742 --> 00:28:02,200 És ez egy kicsit bosszantó, ha csak akarta, hogy a gólya. 647 00:28:02,200 --> 00:28:05,640 És így, ha ehelyett azt mondta, válasszuk csillag adatbázis tábla 648 00:28:05,640 --> 00:28:08,470 ahol évente egyenlő idézet, idézet vége gólya, 649 00:28:08,470 --> 00:28:10,810 olyan, mintha a barátja A diákcsoport 650 00:28:10,810 --> 00:28:13,770 Szó szerint emelni és másolása csak a gólya sorok, 651 00:28:13,770 --> 00:28:16,780 ragasztották őket egy új Google Táblázatot vagy egy Excel fájlt, 652 00:28:16,780 --> 00:28:18,860 és átnyújtotta vissza a kapott fájlt csak. 653 00:28:18,860 --> 00:28:21,710 Ez minden, ami folyik A fogalmi itt. 654 00:28:21,710 --> 00:28:23,920 >> Így a végén, amit tehetünk, néhány nagyon extra dolgot 655 00:28:23,920 --> 00:28:26,560 tárolja a dolgok, mint a felhasználónevek és jelszavak és hasonlók. 656 00:28:26,560 --> 00:28:30,310 De, mint kiderült, meg kell tennünk Egy kicsit másképp, mint ez. 657 00:28:30,310 --> 00:28:34,750 Ez nem olyan okos, hogy csak a tárolja a felhasználónevet és a jelszót. 658 00:28:34,750 --> 00:28:37,790 Valaki korábban, azt hiszem, idelent, azt javasolta egy azonosítót. 659 00:28:37,790 --> 00:28:40,787 Most egy azonosítót lehet, mint egy Harvard vagy a Yale ID Net ID, 660 00:28:40,787 --> 00:28:42,870 de lehet még egyszerűbb az adatbázisunkban esetén. 661 00:28:42,870 --> 00:28:45,120 És valóban, a közös ügy az, hogy a másik oszlopot. 662 00:28:45,120 --> 00:28:46,953 És én megyek előre, és szerkesztheti az én asztalom. 663 00:28:46,953 --> 00:28:49,521 És ha játszani körül Ezen a felületen a PSet7, 664 00:28:49,521 --> 00:28:51,770 látni fogod, hogy ellenőrizni tudja ezt a gombot itt, és adjunk hozzá 665 00:28:51,770 --> 00:28:53,750 egy mező elején az asztalra. 666 00:28:53,750 --> 00:28:56,720 És most, ha rákattintok megy, ez megy hogy adjon nekem egy ilyen formák 667 00:28:56,720 --> 00:28:57,600 a korábbi. 668 00:28:57,600 --> 00:29:00,170 Megyek, hogy adjunk egy területen úgynevezett ID. 669 00:29:00,170 --> 00:29:03,070 És megyek, hogy ez egy numerikus típusú. 670 00:29:03,070 --> 00:29:05,362 >> Van egy csomó Az értékek a numerikus. 671 00:29:05,362 --> 00:29:08,677 Csak megyek, hogy válasszon egy INT és nem kell aggódnia az eltérő méretek. 672 00:29:08,677 --> 00:29:10,510 Nem kell megadni hossza vagy egy érték, 673 00:29:10,510 --> 00:29:13,710 mert lesz 32 bit nem számít, mit. 674 00:29:13,710 --> 00:29:16,070 Attribútumok, nem láttunk korábban. 675 00:29:16,070 --> 00:29:18,410 Bármilyen érdeklődés ezek közül bármelyik menüpontok ebben az időben? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Egy INT? 678 00:29:23,745 --> 00:29:24,620 Mit javasol? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 Nem? 681 00:29:28,445 --> 00:29:29,570 Ne bármelyik értelme? 682 00:29:29,570 --> 00:29:30,536 Igen. 683 00:29:30,536 --> 00:29:31,900 Ja, aláíratlan, ugye? 684 00:29:31,900 --> 00:29:35,930 >> Általában, ha megyünk, hogy mindenkinek egyedi szám, amely 685 00:29:35,930 --> 00:29:38,200 ahol ez a történet megy, én tényleg csak azt akarom, 686 00:29:38,200 --> 00:29:41,919 egy személynek a szám, mint nulla és egy és kettő és három és négy. 687 00:29:41,919 --> 00:29:43,710 Nem kell foglalkozni A negatív számok. 688 00:29:43,710 --> 00:29:45,210 Csak úgy tűnik, mintha túlságosan bonyolult műveletet. 689 00:29:45,210 --> 00:29:48,470 Azt akarom négymilliárd lehetséges értékeit, Nem négymilliárd lehetséges értékeit, 690 00:29:48,470 --> 00:29:50,699 úgyhogy csak megduplázódott a kapacitása én INT. 691 00:29:50,699 --> 00:29:53,490 Mellesleg, ha azt szeretné, hogy kapcsolódnak ez olyasmi, mint a Facebook, 692 00:29:53,490 --> 00:29:56,190 vissza egyfajta napom, amikor Facebook először jött ki, 693 00:29:56,190 --> 00:29:59,510 Úgy gondolom, mi volt segítségével a saját MySQL adatbázis 694 00:29:59,510 --> 00:30:02,856 hogy tárolja a felhasználó azonosító, csak egy INT. 695 00:30:02,856 --> 00:30:05,230 Persze, van egy csomó Az igazi ember a világon. 696 00:30:05,230 --> 00:30:07,438 Van egy csomó hamis Facebook számlák a világon. 697 00:30:07,438 --> 00:30:11,701 És így végül Facebook túlcsordult a mérete egy INT, egy négy milliárd 698 00:30:11,701 --> 00:30:12,200 értéket. 699 00:30:12,200 --> 00:30:15,032 Ez az oka annak, ha megnézi körül, és ott honlapok 700 00:30:15,032 --> 00:30:16,740 amely megmondja, hogy mi Ön egyedi azonosítója van. 701 00:30:16,740 --> 00:30:19,781 És ha soha nem választottam egy felhasználónevet Facebook, látni fogja az egyedi azonosítót. 702 00:30:19,781 --> 00:30:23,080 Azt hiszem, ez profil dot PHP kérdőjel ID megegyezik valamit. 703 00:30:23,080 --> 00:30:27,210 Ez most valami, mint egy nagy INT, vagy egy hosszú, hosszú ha úgy tetszik, 704 00:30:27,210 --> 00:30:29,700 amely egy 64 bites érték vagy valami hasonló. 705 00:30:29,700 --> 00:30:33,620 >> Szóval, még a való világban ezek a kérdések végül néha számít. 706 00:30:33,620 --> 00:30:37,600 És kiderül itt, ha én vagyok így minden az én felhasználó egy egyedi azonosító, 707 00:30:37,600 --> 00:30:41,750 Azt akarom, hogy szuper explicit és minimálisan hogy ezen a területen egyedülálló. 708 00:30:41,750 --> 00:30:44,750 De kiderül, van egy darab nómenklatúra ma is 709 00:30:44,750 --> 00:30:46,470 ez egy elsődleges kulcsot. 710 00:30:46,470 --> 00:30:49,800 Ha adatbázisok tervezésével asztal és előre tudja, 711 00:30:49,800 --> 00:30:55,580 , hogy az egyik az oszlopok e táblázatban kell, és egyértelműen azonosítja sorok 712 00:30:55,580 --> 00:30:58,500 A táblázatban szeretne adja meg, és mondd el az adatbázist, 713 00:30:58,500 --> 00:31:00,250 ez az én elsődleges kulcs. 714 00:31:00,250 --> 00:31:02,110 Lehet, hogy másolatokat más területeken, 715 00:31:02,110 --> 00:31:06,330 de én mondom az adatbázis, hogy ez a az én elsődleges, számomra a legfontosabb területen, 716 00:31:06,330 --> 00:31:08,420 ami garantáltan egyedi. 717 00:31:08,420 --> 00:31:09,660 >> Most úgy tűnik, ez felesleges. 718 00:31:09,660 --> 00:31:13,830 Én most azt javasolja, hogy mi add, kattintson a Mentés ide, 719 00:31:13,830 --> 00:31:17,210 mező called-- és megyek hogy menjen előre, és kattintson az AI, 720 00:31:17,210 --> 00:31:19,720 mi jön vissza hogy egy pillanat, takarítson meg. 721 00:31:19,720 --> 00:31:22,540 Azt javaslom, most, hogy én asztalomnál kinéznie. 722 00:31:22,540 --> 00:31:26,305 Van egy INT területen úgynevezett ID, Char területen úgynevezett Felhasználónév, 723 00:31:26,305 --> 00:31:31,100 VARCHAR mező nevezett a neve, de azonosítója, ha ez elsődleges és ezért egyedi, 724 00:31:31,100 --> 00:31:33,760 Hogy miért csak a hulladék idő bevezetésével, amit 725 00:31:33,760 --> 00:31:39,140 hatékonyan van egy második különleges mező nevű azonosító, egy INT? 726 00:31:39,140 --> 00:31:41,980 >> Felhasználónév, emlékszem, volt Már egyedülálló, azt mondta. 727 00:31:41,980 --> 00:31:45,350 Tehát csak logikailag, akkor nem kell minden adatbázis élmény oka 728 00:31:45,350 --> 00:31:47,570 ezen keresztül, miért Lehet, bevezettem 729 00:31:47,570 --> 00:31:50,065 egy INT mint az én egyedi azonosítót is? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Mi this-- mondani újra? 732 00:31:53,930 --> 00:31:55,580 >> Közönség: [hallható] 733 00:31:55,580 --> 00:31:59,534 >> DAVID MALAN: Véletlen hozzáférés könnyebb, miért? 734 00:31:59,534 --> 00:32:00,410 >> Közönség: [hallható] 735 00:32:00,410 --> 00:32:02,367 DAVID MALAN: Igen, ez Csak hozzáférés számokat. 736 00:32:02,367 --> 00:32:04,750 Tehát, ha úgy gondolja, ennek a valóban egy asztal, mint egy tömb, 737 00:32:04,750 --> 00:32:07,690 most már egyedi azonosítók hogy tudok ugrálni. 738 00:32:07,690 --> 00:32:11,520 És jobb, mint mindig az, hogy Mekkora egy INT lesz megint? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 bit vagy négy bájt. 741 00:32:15,800 --> 00:32:17,750 >> Mekkora a felhasználói nevem lesz? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Maximálisan? 744 00:32:21,990 --> 00:32:22,880 16 bájt. 745 00:32:22,880 --> 00:32:26,080 >> Tehát, ha igazán törődve a teljesítményét a kódot, 746 00:32:26,080 --> 00:32:31,390 gondoljon vissza PSet5, szívesebben hogy keressen egy négy bájtos érték, vagy a 16 747 00:32:31,390 --> 00:32:32,240 bájtérték, ugye? 748 00:32:32,240 --> 00:32:33,810 Ez tényleg ilyen egyszerű. 749 00:32:33,810 --> 00:32:38,060 Nem kell mást tennie négyszer annyi munkát kíván felhasználónevek, mert azok 750 00:32:38,060 --> 00:32:38,830 16 bájt. 751 00:32:38,830 --> 00:32:41,320 Szóval, van, hogy a szó szoros értelmében hasonlítsa össze mind a 16 byte- 752 00:32:41,320 --> 00:32:43,140 arról igen, ez a felhasználóneveddel akarok. 753 00:32:43,140 --> 00:32:46,610 Így néz ki egy INT, akkor csináld csak négy bájt. 754 00:32:46,610 --> 00:32:49,212 >> És mint félre azokat Érdekel számítógépes hardver, 755 00:32:49,212 --> 00:32:52,420 kiderül, hogy elfér valami ilyesmi int, vagy egy 32 bites értéket valamit 756 00:32:52,420 --> 00:32:55,330 nevű nyilvántartást a számítógép CPU, ami azt jelenti, hogy szuper, 757 00:32:55,330 --> 00:32:58,400 szuper gyors, még a legalacsonyabb szint a számítógép hardverét. 758 00:32:58,400 --> 00:33:00,530 Szóval, ott csak előnye az egész. 759 00:33:00,530 --> 00:33:01,530 Szóval, mit jelent ez? 760 00:33:01,530 --> 00:33:04,850 Sőt, ha éppen tervezésekor adatbázis tábla, szinte minden az idő 761 00:33:04,850 --> 00:33:07,170 fogsz még nem csak az adatok törődsz, 762 00:33:07,170 --> 00:33:09,280 hanem valami ilyesmi egy egyedi azonosítót 763 00:33:09,280 --> 00:33:11,280 mert ez fog tegyük más dolog. 764 00:33:11,280 --> 00:33:13,160 És nézzük botoljon egy probléma van. 765 00:33:13,160 --> 00:33:15,990 >> Tegyük fel, hogy a felhasználók nem Csak felhasználónevek és nevét, 766 00:33:15,990 --> 00:33:19,540 de ők is a dolgok, mint a városok az államok és a postai irányítószámok, legalább 767 00:33:19,540 --> 00:33:20,432 Itt az USA-ban. 768 00:33:20,432 --> 00:33:22,390 Szóval, én megyek előre, és csak gyorsan mondani, 769 00:33:22,390 --> 00:33:26,180 adj még három oszlop végén az asztalra. 770 00:33:26,180 --> 00:33:28,900 És ez lesz City, ez lesz az állami, 771 00:33:28,900 --> 00:33:30,400 és ez lesz Zip. 772 00:33:30,400 --> 00:33:32,710 >> Most Város, milyen adattípusok amennyiben ez talán? 773 00:33:32,710 --> 00:33:35,460 774 00:33:35,460 --> 00:33:35,989 VARCHAR? 775 00:33:35,989 --> 00:33:37,780 Én nem tudom, mi az leghosszabb nevet város. 776 00:33:37,780 --> 00:33:40,571 Valahol Amerikában, ott Valószínűleg néhány nevetségesen hosszú szó, 777 00:33:40,571 --> 00:33:43,605 úgyhogy csak menni 255, valamelyest történelmileg vagy önkényesen. 778 00:33:43,605 --> 00:33:44,730 Állami, hogy mit akarsz csinálni? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Ítélet döntök, ugye? 781 00:33:50,367 --> 00:33:51,700 Mi lehet a leghatékonyabb? 782 00:33:51,700 --> 00:33:53,500 Hány karakter? 783 00:33:53,500 --> 00:33:55,950 Talán csak két, ha tudjuk megúszni ezzel csak, 784 00:33:55,950 --> 00:33:58,250 mint, MA a Massachusetts és így tovább. 785 00:33:58,250 --> 00:34:00,520 Szóval, én megyek egy CHAR értéke kettő. 786 00:34:00,520 --> 00:34:03,080 >> Irányítószám van egy érdekes. 787 00:34:03,080 --> 00:34:06,679 Azért vagyunk itt, 02138, így javasolja azt kell használni, mi? 788 00:34:06,679 --> 00:34:07,470 Ez egy INT, ugye? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, rövid? 791 00:34:12,800 --> 00:34:14,521 Rövid működne. 792 00:34:14,521 --> 00:34:15,020 Nem? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR-öt, de szeretnék egy INT. 795 00:34:20,870 --> 00:34:23,710 Miért tolja vissza az INT? 796 00:34:23,710 --> 00:34:26,820 Meggyőzni engem ettől. 797 00:34:26,820 --> 00:34:29,210 Milyen hülye körülbelül egy INT, az én ötletem? 798 00:34:29,210 --> 00:34:29,871 Igen. 799 00:34:29,871 --> 00:34:31,199 >> Közönség: több memóriát. 800 00:34:31,199 --> 00:34:32,909 >> DAVID MALAN: több memóriát. 801 00:34:32,909 --> 00:34:35,310 Négy bájt, de te javasolja egy irányítószámot 802 00:34:35,310 --> 00:34:39,000 öt byte vagy valaki volt, mint egy CHAR, amely olyan, mint mi, ez nem igazán 803 00:34:39,000 --> 00:34:39,620 az ügy. 804 00:34:39,620 --> 00:34:40,489 >> Nos, szórakoztató történet. 805 00:34:40,489 --> 00:34:43,179 Évekkel ezelőtt, amikor én használtam Microsoft Outlook for-mail címemet, 806 00:34:43,179 --> 00:34:45,150 Én végül akartam váltani Gmail. 807 00:34:45,150 --> 00:34:48,949 És igen, én exportált minden az én névjegyeket az Outlook CSV fájlba. 808 00:34:48,949 --> 00:34:50,699 Vesszővel elválasztott értékek, ami csak azt jelentette, 809 00:34:50,699 --> 00:34:54,060 volt az összes barátom nevét és utolsó nevek és telefonszámok és irányítószámok 810 00:34:54,060 --> 00:34:54,747 és minden adott. 811 00:34:54,747 --> 00:34:56,580 És aztán csináltam a Hibát nyitó fel 812 00:34:56,580 --> 00:34:58,640 az Excel, amely egy táblázatkezelő program 813 00:34:58,640 --> 00:35:00,289 megérti CSV fájlokat ahogy láttam. 814 00:35:00,289 --> 00:35:03,080 De akkor, biztos hit, mint, Parancs vagy vezérlő S egy ponton. 815 00:35:03,080 --> 00:35:06,250 És Excel látszólag idején Volt olyan funkció, amellyel bármikor is 816 00:35:06,250 --> 00:35:08,100 látta, hogy egy szám, akkor megpróbáltam hasznos lehet. 817 00:35:08,100 --> 00:35:11,610 És ha ez a szám kezdődött nullák, akkor csak megszabadulni tőlük. 818 00:35:11,610 --> 00:35:13,420 Miért van szükség vezető nullák egész? 819 00:35:13,420 --> 00:35:15,140 Ők értelmetlen, matematikailag. 820 00:35:15,140 --> 00:35:17,530 Ők nem értelmetlen Az US Postal rendszer. 821 00:35:17,530 --> 00:35:19,954 Szóval, én már volt évekig, a mai napig, még mindig 822 00:35:19,954 --> 00:35:22,370 Vannak barátaim, hogy amikor a Ritka eset, hogy szükségem van valaki 823 00:35:22,370 --> 00:35:24,078 ezekkel a nap, Én még mindig látom, hogy 824 00:35:24,078 --> 00:35:26,767 Van egy barátom, Cambridge-ben, Massachusetts, 2138. 825 00:35:26,767 --> 00:35:29,350 És ez bosszantó, ha megpróbálja rendezni a programból 826 00:35:29,350 --> 00:35:30,975 generál borítékok vagy csak jegyezze fel. 827 00:35:30,975 --> 00:35:33,599 És ez, mert emiatt, Azért választottam a rossz adatok típusát. 828 00:35:33,599 --> 00:35:34,490 Szóval, én szeretem a gondolat. 829 00:35:34,490 --> 00:35:35,650 Vegyünk egy CHAR mezőbe. 830 00:35:35,650 --> 00:35:38,340 Öt karakter, kivéve van egy sarok esetében. 831 00:35:38,340 --> 00:35:42,220 Ha még levelet küldeni, Néha irányítószámok ezekben a napokban, 832 00:35:42,220 --> 00:35:45,360 ők, mint, plusz négy. 833 00:35:45,360 --> 00:35:48,200 Tehát szükségünk van egy kötőjel, majd szükségünk van még négy szám. 834 00:35:48,200 --> 00:35:50,330 Tehát, hogy őszinte legyek, azt is megy számos különböző módon. 835 00:35:50,330 --> 00:35:52,371 >> Egyelőre fogom tartani egyszerű és én csak 836 00:35:52,371 --> 00:35:54,780 azt fogja mondani, hogy ez egy Öt KAR értéket, és mi vagyunk 837 00:35:54,780 --> 00:35:56,739 megy, hogy kihagyja az egész műszerfal és négy. 838 00:35:56,739 --> 00:35:58,280 De ezek a fajta kompromisszumok. 839 00:35:58,280 --> 00:36:00,196 És akkor gondolom a ugyanolyan problémák 840 00:36:00,196 --> 00:36:01,860 telefonszámokat vagy egyéb területeken. 841 00:36:01,860 --> 00:36:04,350 >> És most, ez valójában ostoba út, hogy menjen le. 842 00:36:04,350 --> 00:36:08,000 Tegyük fel, hogy mindkét Rob és én, és Hannah és Maria és [? Davon?] És Andy 843 00:36:08,000 --> 00:36:12,820 és mások a személyzet minden él Cambridge, Massachusetts, 02138. 844 00:36:12,820 --> 00:36:17,970 Ez tényleg úgy érzi, hülye, hogy én vagyok hozzátéve, hogy az én felhasználók tábla, város, állam, 845 00:36:17,970 --> 00:36:18,630 és a zip. 846 00:36:18,630 --> 00:36:20,980 Miért? 847 00:36:20,980 --> 00:36:21,960 >> Közönség: [hallható] 848 00:36:21,960 --> 00:36:22,918 >> DAVID MALAN: Mondd még egyszer? 849 00:36:22,918 --> 00:36:24,310 Közönség: [hallható] 850 00:36:24,310 --> 00:36:25,850 >> DAVID MALAN: Ők mindig fog menni együtt, ugye? 851 00:36:25,850 --> 00:36:28,660 Amikor kiderül, szoktuk gondolni ez volt a helyzet, amíg nem kimerítően 852 00:36:28,660 --> 00:36:30,570 Kereste az egész USA-ban, és kiderül, hogy 853 00:36:30,570 --> 00:36:32,653 bizonyos következetlenségek ahol több városban van 854 00:36:32,653 --> 00:36:35,060 azonos zip, ami furcsa. 855 00:36:35,060 --> 00:36:40,580 De, ha kikötik most, hogy 02138 Mindig Cambridge, Massachusetts, 856 00:36:40,580 --> 00:36:44,910 Ezért a világ eltárolunk az adatbázis Cambridge MA és 02138 857 00:36:44,910 --> 00:36:49,357 nekem és Hannah és Rob és a [? Davon?], És mások számára, akik élnek 858 00:36:49,357 --> 00:36:51,190 Itt Cambridge-ben, ez Tökéletesen felesleges. 859 00:36:51,190 --> 00:36:54,480 >> Meg kell megúszni csak tárolja, mi? 860 00:36:54,480 --> 00:36:55,610 Csak az irányítószámot. 861 00:36:55,610 --> 00:36:58,660 De aztán, ha tárolni csak a irányítószám, azt akarom, valószínűleg, 862 00:36:58,660 --> 00:37:02,160 a saját honlapján, hogy hol 02138 van. 863 00:37:02,160 --> 00:37:03,910 Szóval, kell egy másik asztalhoz. 864 00:37:03,910 --> 00:37:04,697 És ez rendben. 865 00:37:04,697 --> 00:37:07,530 És valóban, ez az egyik a tervezési folyamatok tervezése asztalok 866 00:37:07,530 --> 00:37:11,472 hogy akkor itt PSet7 is, amellyel azt szeretné, hogy figyelembe végre közös adatai. 867 00:37:11,472 --> 00:37:14,430 Csakúgy, mint mi már faktoring ki közös kódot, és faktoring ki közös 868 00:37:14,430 --> 00:37:17,380 stílusokat CSS, itt túl az adatbázisban, 869 00:37:17,380 --> 00:37:21,180 ha csak be kell 02.138 egyedien azonosítani valakit szülővárosában, 870 00:37:21,180 --> 00:37:25,020 Nem tároljuk Cambridge, Mass Minden stoppol felhasználó a táblázatban. 871 00:37:25,020 --> 00:37:29,770 >> Ehelyett van egy külön táblázatban nevezett Cipzárak, hogy legyen mit oszlopok? 872 00:37:29,770 --> 00:37:33,490 Valószínűleg egy azonosító mező, csak azért, mert a elvek beszélünk most. 873 00:37:33,490 --> 00:37:35,720 Valószínűleg egy zip területen 02.138. 874 00:37:35,720 --> 00:37:38,400 És akkor valószínűleg mi más oszlopok? 875 00:37:38,400 --> 00:37:42,950 Város és állam, de csak egy sor 02138, egy sort 02139, 876 00:37:42,950 --> 00:37:44,772 Egy sor 90210. 877 00:37:44,772 --> 00:37:46,730 És ez szó szerint minden irányítószámok tudom. 878 00:37:46,730 --> 00:37:49,012 >> Tehát most, mit lehet tenni? 879 00:37:49,012 --> 00:37:51,220 Ez különösen azért aggasztó, mert akkor most már van két asztal. 880 00:37:51,220 --> 00:37:54,660 Szóval, én felhasználók többnyire ide, De a város állami információs ez 881 00:37:54,660 --> 00:37:55,390 itt. 882 00:37:55,390 --> 00:37:58,635 Szóval, kiderül, SQL, van valójában egy módja, hogy csatlakozzon információ, 883 00:37:58,635 --> 00:38:00,470 és látni fogod ezt a PSET. 884 00:38:00,470 --> 00:38:03,000 >> De kiderül, akkor ilyesmire. 885 00:38:03,000 --> 00:38:10,501 SELECT csillag felhasználók, JOIN cipzárak ON felhasználók dot zip egyenlő cipzár dot zip. 886 00:38:10,501 --> 00:38:13,360 Ami egy kicsit bőbeszédű, Igaz, de ez csak 887 00:38:13,360 --> 00:38:17,590 azt jelenti, válassza mindent a folyamata fogadta a felhasználók tábla 888 00:38:17,590 --> 00:38:19,580 és az én cipzár asztalra. 889 00:38:19,580 --> 00:38:22,120 Csatlakozzon hozzájuk az egyik mező vannak oszlopban. 890 00:38:22,120 --> 00:38:24,780 Szóval, szó szerint csinál valamit mint ez, és add vissza 891 00:38:24,780 --> 00:38:27,360 új ideiglenes tábla ez szélesebb, ami nagyobb, 892 00:38:27,360 --> 00:38:29,450 amely az összes, a oszlopok mind a ketten. 893 00:38:29,450 --> 00:38:33,510 És ez egész egyszerűen lenne a szintaxis csinál ilyet. 894 00:38:33,510 --> 00:38:35,540 >> Szóval, itt van ez előtt, de ott lesz 895 00:38:35,540 --> 00:38:38,950 hogy más tervezési döntések azt is megtudhatod van, hogy nem csak indexek 896 00:38:38,950 --> 00:38:40,550 hanem fut be kihívásokat. 897 00:38:40,550 --> 00:38:43,360 Sőt, van egy kihívás bármilyen adatbázis-tervezési 898 00:38:43,360 --> 00:38:47,930 ahol néha két ember érdemes elérni ugyanazt a sorok az adatbázis 899 00:38:47,930 --> 00:38:48,530 asztalra. 900 00:38:48,530 --> 00:38:51,450 Szóval, ez valami, hogy mi lesz találkozás PSet7 is. 901 00:38:51,450 --> 00:38:54,686 >> De azt gondoltam, nézd meg az egyik támadást, hogy ez lehetséges SQL-ben. 902 00:38:54,686 --> 00:38:56,560 Melyek a felmerülő problémák? 903 00:38:56,560 --> 00:38:58,170 Szóval, akkor ez a találkozás a PSet7. 904 00:38:58,170 --> 00:39:01,874 És azt mondjuk nektek, hogy mi a végleges adásvételi kódolási megoldás erre a problémára az. 905 00:39:01,874 --> 00:39:04,790 De ha egy magasabb szintű osztály, különösen az operációs rendszerek, 906 00:39:04,790 --> 00:39:06,950 fogsz találkozni kérdés atomicitás, 907 00:39:06,950 --> 00:39:10,080 A probléma megoldását a teendő több dolog egyszerre 908 00:39:10,080 --> 00:39:11,000 megszakítás nélkül. 909 00:39:11,000 --> 00:39:14,560 >> És azt gondoltam, vezessék be ezt ötlete PSet7 egy metafora 910 00:39:14,560 --> 00:39:18,160 hogy tanultam magam Margo Seltzer a CS164 operációs rendszerek 911 00:39:18,160 --> 00:39:18,990 osztály évvel ezelőtt. 912 00:39:18,990 --> 00:39:22,230 Tegyük fel, hogy van egy ilyen kollégiumi hűtőszekrényeket a kollégiumi szobában, vagy ház, 913 00:39:22,230 --> 00:39:24,474 és van egy igazi rajong a tejet. 914 00:39:24,474 --> 00:39:27,140 És igen, akkor jött haza az osztályok egy nap, akkor nyissa meg a hűtőszekrény. 915 00:39:27,140 --> 00:39:27,620 Ó, a fenébe is. 916 00:39:27,620 --> 00:39:28,870 Nincs tej a hűtőben. 917 00:39:28,870 --> 00:39:32,470 Szóval, akkor zárja be a hűtőbe, bezárni az ajtót, lezárni a kollégiumi, 918 00:39:32,470 --> 00:39:34,770 járni a sarkon a CVS, hogy a sorban, 919 00:39:34,770 --> 00:39:36,312 és vizsgáljuk ki egy kis tejet. 920 00:39:36,312 --> 00:39:38,978 És ez meg fog tartani egy darabig, mert azok az átkozott önálló pénztár 921 00:39:38,978 --> 00:39:40,570 számlálók hogy örökre használja egyébként. 922 00:39:40,570 --> 00:39:41,950 Szóval eközben a szobatársam jön haza. 923 00:39:41,950 --> 00:39:43,470 Ő nagyon szereti a tej is. 924 00:39:43,470 --> 00:39:45,520 Jönnek a kollégiumi szobájában, kinyitod a hűtőt, ó, a fene egye meg. 925 00:39:45,520 --> 00:39:46,490 Nincs több tejet. 926 00:39:46,490 --> 00:39:49,040 >> Szóval, ő is megy a sarkon. 927 00:39:49,040 --> 00:39:51,670 De most, mert van, mint két vagy három vagy négy CVSes a közelben, 928 00:39:51,670 --> 00:39:53,800 történetesen megy egyik különböző is a téren. 929 00:39:53,800 --> 00:39:55,830 És így most, pár perc később mind a ketten 930 00:39:55,830 --> 00:39:58,060 jött haza, és pfuj, legrosszabb probléma valaha. 931 00:39:58,060 --> 00:40:00,967 Most már túl sok tejet mert ez fog menni savanyú. 932 00:40:00,967 --> 00:40:03,050 És szeretem a tejet, de Nem igazán szeretem a tejet. 933 00:40:03,050 --> 00:40:06,730 >> Tehát most, ez egy drága hiba, mert mind a ketten 934 00:40:06,730 --> 00:40:09,870 döntött alapján állapotban néhány változó, 935 00:40:09,870 --> 00:40:12,660 volt a folyamat módosításaitól akkor, 936 00:40:12,660 --> 00:40:14,560 kezdeményezője lesz, hogy a tej. 937 00:40:14,560 --> 00:40:17,785 Szóval, ami talán egy ember megoldás a problémára? 938 00:40:17,785 --> 00:40:18,660 Közönség: [hallható] 939 00:40:18,660 --> 00:40:19,430 DAVID MALAN: Hagyj egy megjegyzést, ugye? 940 00:40:19,430 --> 00:40:21,850 Mindig hagy egy megjegyzés, ha Ismerős a show. 941 00:40:21,850 --> 00:40:23,100 Igen, vannak ketten. 942 00:40:23,100 --> 00:40:25,940 Igen, mindig hagy egy megjegyzés, vagy Szó szerint zárolja a hűtőben 943 00:40:25,940 --> 00:40:28,602 valamilyen lakat, vagy valami fölött ilyesmi. 944 00:40:28,602 --> 00:40:31,310 De ez valóban lesz kulcsprobléma adatbázis tervezés, 945 00:40:31,310 --> 00:40:34,710 különösen, ha lehet, több böngészővel, több laptopok, 946 00:40:34,710 --> 00:40:37,450 több felhasználó összes próbál frissüljenek egyszerre. 947 00:40:37,450 --> 00:40:40,590 Különösen érzékeny információk mint a pénzügyi információk, 948 00:40:40,590 --> 00:40:43,350 ahol a kereskedelmi készletek weboldal, mint akkor lesz épület, 949 00:40:43,350 --> 00:40:47,270 mi van, ha szeretné ellenőrizni, hogy mennyi pénzt van, majd ha van elég, 950 00:40:47,270 --> 00:40:48,490 vásároljon néhány állomány? 951 00:40:48,490 --> 00:40:50,899 >> De mi van, ha valaki más, aki van egy közös számla veled 952 00:40:50,899 --> 00:40:52,690 egyszerre próbál vásárolni állomány? 953 00:40:52,690 --> 00:40:55,190 Szóval, ő ellenőrzi, a fizetési mérleg, mind a ketten 954 00:40:55,190 --> 00:40:57,540 vissza ugyanazon válasz, nincs tej. 955 00:40:57,540 --> 00:41:00,580 Vagy mind a ketten kapják vissza a választ, van $ 100 a számla. 956 00:41:00,580 --> 00:41:04,680 Mindketten megpróbálják a döntést vásárolni egy részvény egyes vállalatok részvényei. 957 00:41:04,680 --> 00:41:06,130 >> És most, mi történik? 958 00:41:06,130 --> 00:41:07,140 Van két részvények? 959 00:41:07,140 --> 00:41:08,420 Ön nincs részvények? 960 00:41:08,420 --> 00:41:10,320 Problémákat, mint amely akkor merülhet fel. 961 00:41:10,320 --> 00:41:11,755 Szóval, mi lesz találkozni, hogy. 962 00:41:11,755 --> 00:41:14,630 SQL injection támadások, szerencsére, valamit mi segítünk Önnek, 963 00:41:14,630 --> 00:41:17,430 de ezek atrociously közös ezekben a napokban még. 964 00:41:17,430 --> 00:41:18,680 Szóval, ez csak egy példa. 965 00:41:18,680 --> 00:41:21,290 Én nem azt állítja, hogy Harvard PIN rendszer 966 00:41:21,290 --> 00:41:23,130 kiszolgáltatott, amelyet az adott támadás. 967 00:41:23,130 --> 00:41:24,160 Próbáltuk. 968 00:41:24,160 --> 00:41:26,120 De, tudod, hogy mi van egy mező, mint ez. 969 00:41:26,120 --> 00:41:29,620 És Yale Net ID van egy hasonló keres képernyőn ezekben a napokban. 970 00:41:29,620 --> 00:41:33,190 És kiderül, hogy talán a PIN-rendszer került megvalósításra a PHP. 971 00:41:33,190 --> 00:41:37,050 >> És ha ez were-- ez nem-- ők Lehet olyan kód, ami úgy néz ki, mint ez. 972 00:41:37,050 --> 00:41:38,210 Van két változó. 973 00:41:38,210 --> 00:41:42,495 Add nekem a felhasználónév és jelszó a poszt szuper globális változó 974 00:41:42,495 --> 00:41:43,970 hogy beszéltünk korábban. 975 00:41:43,970 --> 00:41:47,310 Talán Harvard egy lekérdezés mint a SELECT csillag felhasználók 976 00:41:47,310 --> 00:41:50,005 ahol a felhasználónév megegyezik és a jelszó megegyezik. 977 00:41:50,005 --> 00:41:51,880 És észre, hogy én csak dugulás azt használó 978 00:41:51,880 --> 00:41:55,050 A kapcsos zárójel jelöléssel a másik nap, ami azt jelenti, csak csatlakoztatni kell egy értéket 979 00:41:55,050 --> 00:41:55,550 itt. 980 00:41:55,550 --> 00:41:57,449 Én nem használja a kérdőjel technika. 981 00:41:57,449 --> 00:41:59,240 Nekem nincs semmilyen második vagy harmadik érveket. 982 00:41:59,240 --> 00:42:02,350 Én csak szó építi a húr magam. 983 00:42:02,350 --> 00:42:04,930 >> A probléma azonban az, hogy ha valaki szeretne egy scroob, 984 00:42:04,930 --> 00:42:09,020 ami egy utalás egy film, bejelentkezik valami ilyesmivel, 985 00:42:09,020 --> 00:42:11,250 és én már eltávolították a pontok hogy általában fedezi fel 986 00:42:11,250 --> 00:42:14,370 jelszavakat, mi van, ha ő különösen rosszindulatú 987 00:42:14,370 --> 00:42:18,860 és a jelszót, talán 12345, egy a filmet a "Spaceballs" 988 00:42:18,860 --> 00:42:21,970 de kritikusan típusok a aposztróf után öt, 989 00:42:21,970 --> 00:42:24,790 akkor szó a szó vagy a területet, majd árajánlatot, 990 00:42:24,790 --> 00:42:29,160 idézet vége egy egyenlő idézet az egyik, de észre ő kimaradt, mi? 991 00:42:29,160 --> 00:42:32,700 Ő kimaradt az idézet a jobb és ő kimaradt az idézet, a bal oldalon. 992 00:42:32,700 --> 00:42:35,170 >> Mert ha ez a támadó scroob azon feltételezése 993 00:42:35,170 --> 00:42:38,160 az, hogy az emberek, akik azt írta Ezt a PHP kódot nem volt olyan fényes, 994 00:42:38,160 --> 00:42:42,990 Lehet, hogy csak egy kis egyszemélyes idézőjelbe interpoláció 995 00:42:42,990 --> 00:42:45,210 egy változó kapcsos zárójelek? 996 00:42:45,210 --> 00:42:48,620 És így talán, tudta milyen A teljes a gondolat 997 00:42:48,620 --> 00:42:53,290 számukra, de oly módon, hogy fog hogy hadd betört a PIN-rendszer. 998 00:42:53,290 --> 00:42:55,310 Más szavakkal, tegyük fel, hogy ez a kód 999 00:42:55,310 --> 00:42:57,140 és most már dugja be, mit scroob gépelt. 1000 00:42:57,140 --> 00:42:58,770 És ez piros, mert ez rossz. 1001 00:42:58,770 --> 00:43:01,310 >> És az alapjául szolgáló szöveget az, amit beírt, 1002 00:43:01,310 --> 00:43:05,510 scroob lehetett becsapni Harvard szerver a építkezve egy SQL lekérdezés 1003 00:43:05,510 --> 00:43:07,440 húr, hogy néz ki. 1004 00:43:07,440 --> 00:43:11,760 Jelszó megegyezik 12345 vagy az egyik értéke egy. 1005 00:43:11,760 --> 00:43:14,820 Melynek eredménye, logikusan, az, hogy ez fog jelentkezni scroob 1006 00:43:14,820 --> 00:43:18,360 a ha a jelszó 12345 vagy ha egy egyenlő 1007 00:43:18,360 --> 00:43:22,660 Egy, ami persze mindig igaz, ami azt jelenti, scroob mindig megkapja a. 1008 00:43:22,660 --> 00:43:26,060 >> És így, ahogy rögzíteni Ez, mint a sok esetben, 1009 00:43:26,060 --> 00:43:28,140 az lenne, hogy írjon több védekezésben. 1010 00:43:28,140 --> 00:43:30,390 Használnunk, mint például a tényleges lekérdezés funkció, amely 1011 00:43:30,390 --> 00:43:33,980 látni fogod PSet7, ahol dugó olyasmi, mint a kérdőjel van. 1012 00:43:33,980 --> 00:43:35,980 És a szépség, a lekérdezés funkció, amit a 1013 00:43:35,980 --> 00:43:40,010 Önnek ez megvédi ezeket a úgynevezett SQL injection támadások, ahol 1014 00:43:40,010 --> 00:43:44,260 valaki megtévesztett a kódot intravénás saját SQL-kódot. 1015 00:43:44,260 --> 00:43:47,380 Mert mi a lekérdezés funkció adunk majd ténylegesen, 1016 00:43:47,380 --> 00:43:51,270 ha használja a kérdőjel szintaxis és egy második és egy harmadik érv itt, 1017 00:43:51,270 --> 00:43:54,590 van ugyan mit adjunk a input, hogy a Felhasználó által megadott? 1018 00:43:54,590 --> 00:43:56,060 Azok backslash idézi. 1019 00:43:56,060 --> 00:43:58,590 >> Szóval, kiszabadul a potenciálisan Veszélyes karakter. 1020 00:43:58,590 --> 00:44:01,000 Ez úgy néz ki, fura most, de ez nem sérülékeny 1021 00:44:01,000 --> 00:44:03,260 mert nem módosítsa a logikát többé 1022 00:44:03,260 --> 00:44:06,470 mert az egész jelszó Most egy idézet, nem, 1023 00:44:06,470 --> 00:44:07,596 sőt, scroob jelszavát. 1024 00:44:07,596 --> 00:44:09,845 Szóval, van némi vicc erről az évek során. 1025 00:44:09,845 --> 00:44:12,570 Szóval, ez egy fénykép, Néhány stréber egy parkolóban 1026 00:44:12,570 --> 00:44:16,620 ahol talán tudja, hogy néhány városban és az államok megpróbálja megkeresni a licenc 1027 00:44:16,620 --> 00:44:19,460 lemez a számla kiállításához vagy jeggyel ha valaki átmegy nélkül, mint, 1028 00:44:19,460 --> 00:44:20,660 Az E-Z Pass dolog. 1029 00:44:20,660 --> 00:44:24,490 Szóval, ez az ember feltételezte, hogy talán Az emberek írásban az E-Z Pass rendszer 1030 00:44:24,490 --> 00:44:28,240 nem volt olyan fényes, és talán ők Csak konkatenálva egy string, 1031 00:44:28,240 --> 00:44:32,190 úgy, hogy ő nem tudott rosszindulatúan Nem csak befejezni a gondolatot, 1032 00:44:32,190 --> 00:44:35,150 de ténylegesen végre egy rossz parancsot, amit már eddig nem beszéltünk, 1033 00:44:35,150 --> 00:44:36,380 de valószínűleg kitalálni. 1034 00:44:36,380 --> 00:44:39,820 Hogy amellett, hogy törölni, és helyezze be és frissítést, és válassza ki, 1035 00:44:39,820 --> 00:44:43,370 van még egy kulcsszót nevű csepp, ami szó szerint mindent töröl 1036 00:44:43,370 --> 00:44:45,300 az adatbázisban, amely Különösen rossz. 1037 00:44:45,300 --> 00:44:48,760 >> Mi lehet nagyítani a ezt, ha ez egy kicsit nehéz látni. 1038 00:44:48,760 --> 00:44:52,300 Ez, most, egy híres képregény ez csodálatosan okos most 1039 00:44:52,300 --> 00:44:53,145 és érthető. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [Nevetés] 1042 00:45:04,750 --> 00:45:05,910 >> Igen, jó. 1043 00:45:05,910 --> 00:45:06,800 Fajta geeking ki. 1044 00:45:06,800 --> 00:45:08,800 Tehát ezek tehát azok SQL injection támadások. 1045 00:45:08,800 --> 00:45:13,050 És annyira könnyű elkerülni segítségével A megfelelő kód, vagy a megfelelő könyvtárakban. 1046 00:45:13,050 --> 00:45:15,947 És látni fogod a PSet7, ez miért adunk a lekérdezés funkció. 1047 00:45:15,947 --> 00:45:17,780 Szóval, egy pár ízelítő hogy azt hittük, 1048 00:45:17,780 --> 00:45:19,930 Önnek itt a mi fennmaradó percet együtt. 1049 00:45:19,930 --> 00:45:24,030 Szóval, ahogy emlékszem hétről nulla, akkor bevezette a két lámpa, amely 1050 00:45:24,030 --> 00:45:26,610 szép, nem csak azért, mert ők elég és színes, 1051 00:45:26,610 --> 00:45:29,450 hanem azért, mert támogatni valamit úgynevezett API, egy alkalmazás 1052 00:45:29,450 --> 00:45:31,980 Programming Interface És A CS50 eddig, most már 1053 00:45:31,980 --> 00:45:34,440 főként összpontosított GET és POST, de kiderült, 1054 00:45:34,440 --> 00:45:37,390 vannak más HTTP igék, mint a PUT. 1055 00:45:37,390 --> 00:45:39,430 >> És valóban, ez volt diát a héten nulla 1056 00:45:39,430 --> 00:45:44,930 ahol, ha írsz kódot küld A la PSet6 egy HTTP kérés, hogy 1057 00:45:44,930 --> 00:45:49,647 így néz ki ezzel a darab szövegét az alján, amely az úgynevezett JSON, 1058 00:45:49,647 --> 00:45:52,230 vagy a JavaScript Object Notation hogy fogunk beszélni, a jövő héten, 1059 00:45:52,230 --> 00:45:57,030 akkor kapcsolja be, vagy kapcsolja ki, vagy változás A színes fények, mint azok. 1060 00:45:57,030 --> 00:46:00,480 Tehát ha CS50 is amellett, hogy néhány e izzók itt New Haven 1061 00:46:00,480 --> 00:46:02,480 ha szeretné kölcsönkérni őket a végső projektek, 1062 00:46:02,480 --> 00:46:04,370 még néhány Microsoft Zenekarok, amelyek olyanok, mint 1063 00:46:04,370 --> 00:46:07,619 karórák, hogy viseljen a csuklója köré hogy hasonlóképpen van egy API, így 1064 00:46:07,619 --> 00:46:10,040 lehet írni a saját szoftver számukra. 1065 00:46:10,040 --> 00:46:12,490 >> Van egy számlát Az Apple iOS kódot, így 1066 00:46:12,490 --> 00:46:15,510 hogy ha van egy Apple Watch vagy iPhone vagy iPad vagy iPod, 1067 00:46:15,510 --> 00:46:17,707 írhatsz kódot, valóban fut azokon. 1068 00:46:17,707 --> 00:46:19,540 Van egy csomó A Arduinos, amelyek 1069 00:46:19,540 --> 00:46:22,010 apró számítógépek nélkül esetekben, lényegében, 1070 00:46:22,010 --> 00:46:25,240 hogy tud-e csatlakozni USB-n keresztül, jellemzően a saját Mac vagy PC, 1071 00:46:25,240 --> 00:46:28,810 levelet kód, ami a következő fizikai készülékek, amelyek gyakran érzékelők rájuk 1072 00:46:28,810 --> 00:46:30,790 így befolyásolja a valós világban. 1073 00:46:30,790 --> 00:46:32,860 Van egy csomó A Leap Motion eszközök, 1074 00:46:32,860 --> 00:46:36,500 amelyek USB-eszközök Mac és PC-k, itt és újra, New Haven. 1075 00:46:36,500 --> 00:46:40,080 És ha már csak a Mac, akkor valóban ellenőrizni a számítógép 1076 00:46:40,080 --> 00:46:42,550 írásával szoftver hogy infrán gerendák, 1077 00:46:42,550 --> 00:46:46,360 kitalálja, ahol a humán keze, még ne érjen a billentyűzeten. 1078 00:46:46,360 --> 00:46:49,135 Azt hittük, ossza gyors bepillantást ebben, például. 1079 00:46:49,135 --> 00:46:51,428 >> [Zenelejátszási] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Szóval, van egy egész csomó ezeket a dolgokat, 1082 00:47:57,590 --> 00:48:01,040 is nevezett Myo karszalagot amit tegye át az alkar 1083 00:48:01,040 --> 00:48:04,595 és akkor ellenőrzik a valós világ, vagy a virtuális világban, mint ez. 1084 00:48:04,595 --> 00:48:06,471 >> [Zenelejátszási] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Vagy, mi is van néhány Google Karton, ami szó, mint, 1087 00:49:20,920 --> 00:49:24,841 Egy kartondobozban akkor vedd fel a arc, de dia hozzá a telefonját 1088 00:49:24,841 --> 00:49:27,590 úgy, hogy a poharat a telefon igazán közel a szemed. 1089 00:49:27,590 --> 00:49:30,190 És a Google karton elég olcsó 10 $ vagy 20 $. 1090 00:49:30,190 --> 00:49:32,230 És ez a kis lencsék hogy kicsit off váltás 1091 00:49:32,230 --> 00:49:35,900 A képet a képernyőn a humán szemét, hogy az Ön egyfajta mélység 1092 00:49:35,900 --> 00:49:39,550 úgy, hogy valóban van egy 3D környezetben előtted. 1093 00:49:39,550 --> 00:49:42,927 Mi is van néhány Samsung Gear, amely a drágább változata ezt, 1094 00:49:42,927 --> 00:49:46,010 de amelyek hasonlóan csúszni egy Android telefon, és adja meg azt az illúziót 1095 00:49:46,010 --> 00:49:48,309 of-- vagy hogy a tapasztalatok A virtuális valóság. 1096 00:49:48,309 --> 00:49:50,850 És a mi utolsó két perc, azt hittük, próbálja ezt megtenni. 1097 00:49:50,850 --> 00:49:55,250 Ha tudok vetíteni, amit Colton van Itt csak a fen az étvágyat, 1098 00:49:55,250 --> 00:49:58,442 hadd menjen előre, és dobja akár a nagy képernyőn van. 1099 00:49:58,442 --> 00:49:59,400 Hadd megöli a fényt. 1100 00:49:59,400 --> 00:50:02,290 Colton, mit akar menni előre és tedd a sejt, egy pillanatra 1101 00:50:02,290 --> 00:50:05,171 és gyere át a A színpad közepén? 1102 00:50:05,171 --> 00:50:07,420 És akarsz project-- ez az, amit Colton lát. 1103 00:50:07,420 --> 00:50:10,560 >> Most, a Wi-Fi itt Nem olyan erős ehhez az eszközhöz 1104 00:50:10,560 --> 00:50:13,870 hogy ez a szuper lenyűgöző, de Colton szó 1105 00:50:13,870 --> 00:50:15,710 ebben a varázslatos futurisztikus helyen. 1106 00:50:15,710 --> 00:50:16,796 Ő csak azt látja egy képet. 1107 00:50:16,796 --> 00:50:19,920 Látsz a bal és jobb szem hogy az agya is összefűzni 1108 00:50:19,920 --> 00:50:22,260 egy három dimenziós környezetben az arcán. 1109 00:50:22,260 --> 00:50:24,319 Ő csak egy kiválasztott menüpont itt. 1110 00:50:24,319 --> 00:50:27,360 És így ismét visel headset egy Samsung telefon rajta, hogy ez 1111 00:50:27,360 --> 00:50:29,080 vezeték nélkül tervezik a feje fölött. 1112 00:50:29,080 --> 00:50:30,349 Most már a Marson, azt hiszem? 1113 00:50:30,349 --> 00:50:31,140 COLTON: Azt hiszem, igen. 1114 00:50:31,140 --> 00:50:32,181 Nem vagyok benne biztos [hallható]. 1115 00:50:32,181 --> 00:50:34,250 [Nevetés] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID MALAN: Kiderült, A Mars ezeket a menüket. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [hallható] néhány hűvös helyen, ha azt akarjuk, hogy menjen az alábbiakra: 1118 00:50:41,590 --> 00:50:43,330 >> DAVID MALAN: Hol akarunk menni? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [hallható] 1120 00:50:45,837 --> 00:50:48,170 DAVID MALAN: És lássuk ahol Colton visz minket most. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [hallható] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID MALAN: Szóval, van olyan sok különböző helyeken, amit megtehetsz magad. 1124 00:50:56,380 --> 00:51:00,590 Van FAPIs, amelyen keresztül lehet játék- és kölcsönhatások 1125 00:51:00,590 --> 00:51:01,950 futni, végül a telefonon. 1126 00:51:01,950 --> 00:51:03,908 Szóval, akkor tényleg csak írt egy mobiltelefon alkalmazást. 1127 00:51:03,908 --> 00:51:06,380 De hála a szoftver és a grafikus képességek, 1128 00:51:06,380 --> 00:51:08,765 most Colton ebben apró ház. 1129 00:51:08,765 --> 00:51:10,515 És azzal a veszéllyel jár elsöprő magunkat, 1130 00:51:10,515 --> 00:51:13,330 Colton és én sehova míg a végén osztály ma itt 1131 00:51:13,330 --> 00:51:14,300 Ha azt szeretné, hogy jöjjön fel, és játszani. 1132 00:51:14,300 --> 00:51:16,350 És mi hozza őket vissza a jövő héten is. 1133 00:51:16,350 --> 00:51:18,420 Minden további nélkül ez minden, amit ma. 1134 00:51:18,420 --> 00:51:21,990 Találkozunk a jövő héten. 1135 00:51:21,990 --> 00:51:24,140 >> [ZENE - ragga ikrek, "rossz ember"] 1136 00:51:24,140 --> 00:55:23,146