1 00:00:00,000 --> 00:00:02,405 >> [Prehrávanie hudby] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVID Malan: Dobre, toto je CS50. 4 00:00:11,980 --> 00:00:13,740 To je koniec týždňa osem. 5 00:00:13,740 --> 00:00:15,887 A dnes, začneme vyplniť v niektorých kusoch 6 00:00:15,887 --> 00:00:17,720 pokiaľ ide o budovy veci na webe. 7 00:00:17,720 --> 00:00:20,020 Takže, pripomínajú, že v pondelok trávime oveľa viac času 8 00:00:20,020 --> 00:00:22,530 na PHP, ktorý je tento dynamický programovací jazyk, ktorý 9 00:00:22,530 --> 00:00:26,872 nám umožňuje výstup, okrem iného veci, HTML a ďalší takýto obsah 10 00:00:26,872 --> 00:00:27,830 že budeme chcieť vidieť. 11 00:00:27,830 --> 00:00:30,871 Ale my sme naozaj pozrel na to, ako budeme ukladať žiadne informácie. 12 00:00:30,871 --> 00:00:34,477 V skutočnosti, takmer nič z toho super zaujímavé navštívených webových stránkach dnes 13 00:00:34,477 --> 00:00:36,560 mať nejaký druh databázy na zadnej koniec, že ​​jo? 14 00:00:36,560 --> 00:00:39,540 Facebook iste ukladá veľké množstvo dát o nás všetkých a predajní Gmail všetko 15 00:00:39,540 --> 00:00:40,210 z vašich e-mailov. 16 00:00:40,210 --> 00:00:44,150 >> A tak mnoho ďalších stránky nie sú len statický obsah, ktorý je informatívna. 17 00:00:44,150 --> 00:00:45,640 Je to vlastne dynamický nejakým spôsobom. 18 00:00:45,640 --> 00:00:48,480 Tie poskytujú vstup, aktualizuje stránky pre ostatných ľudí. 19 00:00:48,480 --> 00:00:50,620 Získate správy, pošlite správy, a tak ďalej. 20 00:00:50,620 --> 00:00:54,250 Takže dnes sa pozrieme bližšie na na pilieri projektu 21 00:00:54,250 --> 00:00:57,330 že budete potápať do ďalšej týždeň, CS50 Financie, ktorý 22 00:00:57,330 --> 00:01:00,509 sa v skutočnosti bude mať budete stavať niečo, čo nie je v C, ale v PHP. 23 00:01:00,509 --> 00:01:02,550 Webové stránky, ktoré vyzerá Trochu niečo také 24 00:01:02,550 --> 00:01:05,810 ktorý umožňuje nakupovať a predávať zásoby, ktoré sú v skutočnosti 25 00:01:05,810 --> 00:01:09,044 bude čerpať v reálnom čase Image dáta z Yahoo Finance. 26 00:01:09,044 --> 00:01:11,960 A tak nakoniec, budete mať ilúzie pre seba a pre užívateľov 27 00:01:11,960 --> 00:01:14,550 že ste vlastne nákup a predaj zásoby a dostať takmer v reálnom čase 28 00:01:14,550 --> 00:01:16,800 aktualizácie, môže spravovať portfólio, z ktorých všetky 29 00:01:16,800 --> 00:01:20,310 bude vyžadovať s, v konečnom dôsledku, databázy používateľov. 30 00:01:20,310 --> 00:01:23,330 >> Takže, vlastnými slovami, najmä ak si nie ste 31 00:01:23,330 --> 00:01:25,670 Super oboznámení s počítačom veda alebo databázy, čo 32 00:01:25,670 --> 00:01:30,790 viete, databázy, aby práve teraz, v netechnických hľadiska? 33 00:01:30,790 --> 00:01:32,300 Čo je to? 34 00:01:32,300 --> 00:01:36,882 Ako by ste opísali to na spolubývajúci alebo priateľa? 35 00:01:36,882 --> 00:01:40,100 >> Divákov: [Nepočuteľné] Informácie [nepočuteľných] 36 00:01:40,100 --> 00:01:44,430 >> DAVID Malan: Takže, zoznam informácií, alebo store-- zoznam informácií 37 00:01:44,430 --> 00:01:47,160 ktoré by vás mohli chcieť uložiť o niečom, ako používateľa. 38 00:01:47,160 --> 00:01:50,190 A to, čo robiť majú užívatelia spojená s nimi? 39 00:01:50,190 --> 00:01:53,160 Ak ste užívateľ na Facebooku, alebo Gmail, aké sú charakteristiky 40 00:01:53,160 --> 00:01:54,940 že všetci z nás majú užívatelia? 41 00:01:54,940 --> 00:01:58,530 Rovnako ako to, čo by mohlo byť niektoré z stĺpce v tabuľke, na ktorú sme sa 42 00:01:58,530 --> 00:01:59,390 zmieňoval minule? 43 00:01:59,390 --> 00:02:01,140 Vzhľadom k tomu znova, môžete myslíte, že databáza 44 00:02:01,140 --> 00:02:05,810 Naozaj ako efektné Excel súboru alebo Google Tabuľkový alebo Apple Čísla súboru. 45 00:02:05,810 --> 00:02:08,280 >> Tak, čo si myslíš o keď si myslíte, že na používateľa? 46 00:02:08,280 --> 00:02:11,290 Čo majú? 47 00:02:11,290 --> 00:02:11,790 Čo je to? 48 00:02:11,790 --> 00:02:12,470 >> Divákov: Meno. 49 00:02:12,470 --> 00:02:13,303 >> DAVID Malan: Názov. 50 00:02:13,303 --> 00:02:16,840 Takže ak názov, rovnako ako, David Malan by byť meno nejakého užívateľa. 51 00:02:16,840 --> 00:02:17,980 Čo ešte užívateľ mať? 52 00:02:17,980 --> 00:02:18,770 >> Divákov: ID. 53 00:02:18,770 --> 00:02:19,561 >> DAVID Malan: ID. 54 00:02:19,561 --> 00:02:23,320 Takže, rovnako ako rodné číslo, ako je vašej Harvard ID alebo vaše Yale Net ID alebo podobne. 55 00:02:23,320 --> 00:02:24,923 Čo iné môže užívateľ mať? 56 00:02:24,923 --> 00:02:25,890 >> Divákov: Password. 57 00:02:25,890 --> 00:02:29,240 >> DAVID Malan: Heslo, možno adresa, možno telefónne číslo, možno 58 00:02:29,240 --> 00:02:30,050 e-mailovú adresu. 59 00:02:30,050 --> 00:02:32,640 Takže, je tu trsy polí a to by mohla nejako vymkne kontrole 60 00:02:32,640 --> 00:02:34,760 Rýchlo akonáhle začnete si uvedomil, oh, poďme ukladať tento 61 00:02:34,760 --> 00:02:36,190 a poďme ukladať to a to. 62 00:02:36,190 --> 00:02:37,657 >> Ale ako vlastne robiť, že? 63 00:02:37,657 --> 00:02:39,740 Takže znovu, duševné Model mať na dnes, ako sme 64 00:02:39,740 --> 00:02:42,320 ponoriť do skutočného SQL, Structured Query Language, 65 00:02:42,320 --> 00:02:44,186 je databáza, ktorá vyzerá takto. 66 00:02:44,186 --> 00:02:45,310 Je to len riadky a stĺpce. 67 00:02:45,310 --> 00:02:48,309 A môžete si predstaviť, Google Spreadsheets alebo ľubovoľný počet iných programov. 68 00:02:48,309 --> 00:02:52,130 Ale čo je kľúčom k MySQL, čo je databázový softvér budeme používať, 69 00:02:52,130 --> 00:02:54,920 Voľne otvorene available-- Facebook použitie 70 00:02:54,920 --> 00:02:59,200 to a ľubovoľný počet ďalších websites-- Databáza ukladá veci príbuzensky. 71 00:02:59,200 --> 00:03:01,770 A relačnej databázy jednoducho znamená, ten, ktorý doslova 72 00:03:01,770 --> 00:03:03,672 ukladá dáta do riadkov a stĺpcov. 73 00:03:03,672 --> 00:03:04,630 Je to tak jednoduché, ako to. 74 00:03:04,630 --> 00:03:07,230 >> Takže aj niečo ako Oracle, ktoré ste možno počuli o celkovo 75 00:03:07,230 --> 00:03:08,271 je relačnej databázy. 76 00:03:08,271 --> 00:03:10,929 A pod kapotou to, ukladá dáta v riadkoch a stĺpcoch. 77 00:03:10,929 --> 00:03:12,970 A Oracle ste si účtuje veľa peňazí na to, že, 78 00:03:12,970 --> 00:03:15,550 vzhľadom k tomu, MySQL poplatkov ste za rovnaké nič. 79 00:03:15,550 --> 00:03:18,790 Takže, SQL sa chystá dať nám aspoň štyri operácie. 80 00:03:18,790 --> 00:03:23,190 Možnosť vybrať dáta, ako prečítané Údaje, insert, delete a aktualizovať dáta. 81 00:03:23,190 --> 00:03:25,525 Inými slovami, to sú Naozaj štyri kľúčové operácie 82 00:03:25,525 --> 00:03:28,950 sa deje, aby sme mohli zmeniť veci v týchto riadkov a stĺpcov. 83 00:03:28,950 --> 00:03:33,250 >> Nástroj, ktorý budeme používať dnes obzvlášť naučiť SQL a hrať s ním 84 00:03:33,250 --> 00:03:34,627 sa opäť nazýva PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 Je to nástroj, založený web. 86 00:03:35,460 --> 00:03:38,200 Celkom náhoda, že je to napísaný v PHP. 87 00:03:38,200 --> 00:03:42,400 Ale to bude, aby nám grafické užívateľské rozhranie, takže môžeme vlastne 88 00:03:42,400 --> 00:03:46,054 vytvorenie týchto riadkov a stĺpcov a potom hovoriť s nimi prostredníctvom kódu. 89 00:03:46,054 --> 00:03:47,970 Takže, poďme sa teraz začínajú Myslím si, že to, čo je povedané 90 00:03:47,970 --> 00:03:51,000 druh zábavné procesu budovanie zadná časť webových stránok, 91 00:03:51,000 --> 00:03:54,580 časti, ktoré používatelia nemajú vidieť, ale určite robiť stará o, 92 00:03:54,580 --> 00:03:56,170 pretože to je to skôr dátové deje. 93 00:03:56,170 --> 00:03:59,570 Tak, podobne ako C a pridá sa trochu menej ako PHP, 94 00:03:59,570 --> 00:04:04,954 SQL, alebo databázy, ktorá podporuje SQL, má aspoň tieto dátové typy 95 00:04:04,954 --> 00:04:05,870 a zväzky ostatných. 96 00:04:05,870 --> 00:04:08,107 CHAR, VARCHAR, INT, BIGINT, DECIMAL, a DATETIME. 97 00:04:08,107 --> 00:04:09,940 A je tu celá veľa ďalších funkcií, 98 00:04:09,940 --> 00:04:11,940 ale poďme to tým, že spôsob, ako aktuálne príklad. 99 00:04:11,940 --> 00:04:16,450 >> Chystám sa ísť do CS50 IDE kde, v predstihu, som prihlásený 100 00:04:16,450 --> 00:04:19,372 a ja som tiež navštívil URL pre tento nástroj s názvom PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 A problém nastaviť sedem, budeme rozprávať vám presne, ako sa dostať k tomuto rozhraniu 102 00:04:22,580 --> 00:04:23,200 tiež. 103 00:04:23,200 --> 00:04:25,640 V ľavom hornom rohu, Všimnite si, že hovorí, že prednášať. 104 00:04:25,640 --> 00:04:27,610 A to práve znamená, že v predstihu, I vytvoril 105 00:04:27,610 --> 00:04:31,360 prázdne databázy s názvom prednáška ktorá má v nej žiadne tabuľky doteraz. 106 00:04:31,360 --> 00:04:32,600 Neexistuje žiadne riadky a stĺpce. 107 00:04:32,600 --> 00:04:34,308 Pretože prvý vec, ktorú budeme robiť 108 00:04:34,308 --> 00:04:37,100 je začať vytvárať tabuľky že to bude ukladať našim užívateľom. 109 00:04:37,100 --> 00:04:39,100 >> Takže, doslova cez Tu na pravej strane, ja som 110 00:04:39,100 --> 00:04:42,070 ti to povedať databázy Chcem tabuľku s názvom Používatelia. 111 00:04:42,070 --> 00:04:44,845 Tak, to je ako súbor, ktorý som chcete uložiť všetky svoje dát. 112 00:04:44,845 --> 00:04:45,720 A koľko stĺpcov? 113 00:04:45,720 --> 00:04:47,740 Dobre, poďme držať to jednoduché pre teraz. 114 00:04:47,740 --> 00:04:51,855 Ja len chcem, aby uložiť ako keď užívateľské meno a názov pre užívateľov. 115 00:04:51,855 --> 00:04:53,020 Budeme začať v malom. 116 00:04:53,020 --> 00:04:55,370 Takže, chcem dva stĺpce celkom. 117 00:04:55,370 --> 00:04:57,360 A ja idem ďalej a kliknite na tlačidlo Prejsť. 118 00:04:57,360 --> 00:04:59,210 A potom, pre tieto stĺpy, čo budem 119 00:04:59,210 --> 00:05:04,576 k do-- ak tento internet cooperates-- v poriadku, 120 00:05:04,576 --> 00:05:05,950 takže budeme sa snažiť, aby to znova. 121 00:05:05,950 --> 00:05:09,180 Chystám sa vytvoriť tabuľku s názvom Užívatelia s dvoch stĺpcov, kliknite na tlačidlo Go, na tlačidlo OK. 122 00:05:09,180 --> 00:05:10,520 Teraz máme to naozaj rýchlo. 123 00:05:10,520 --> 00:05:12,065 Ďakujem, veľmi dobre urobil. 124 00:05:12,065 --> 00:05:14,440 Dobre, takže to, čo chceme Tieto stĺpce sa volá? 125 00:05:14,440 --> 00:05:16,080 >> Tak, jeden sa bude volať Užívateľské meno. 126 00:05:16,080 --> 00:05:19,480 Tak, vidím here-- a rozhranie Úprimne povedané je trochu škaredá nakoniec, 127 00:05:19,480 --> 00:05:21,270 Akonáhle začnete písať do všetkých týchto údajov. 128 00:05:21,270 --> 00:05:27,450 Ale to, čo je príjemné je, že druh paradoxne, som vytváranie stĺpcov, 129 00:05:27,450 --> 00:05:29,977 ale nástroj má pochabo položili tie veci v radoch 130 00:05:29,977 --> 00:05:31,560 takže môžem nastaviť tieto stĺpce. 131 00:05:31,560 --> 00:05:33,550 Takže, je tu dve prázdne miesta tam pod menom. 132 00:05:33,550 --> 00:05:36,180 A jeden z týchto odborov I Chcete volal meno, 133 00:05:36,180 --> 00:05:38,000 a iné oblasti chcem volať meno. 134 00:05:38,000 --> 00:05:40,340 >> A teraz mám na výber dátové typy pre tieto veci. 135 00:05:40,340 --> 00:05:42,330 Takže, zatiaľ čo v Exceli a Google Spreadsheets, 136 00:05:42,330 --> 00:05:45,531 ak chcete stĺpec, môžete doslova stačí zadať názov alebo meno, stlačte Enter. 137 00:05:45,531 --> 00:05:48,030 Možno ste to tučné tvár, aby Len pre prehľadnosť, ale to je všetko. 138 00:05:48,030 --> 00:05:50,140 Nemusíte špecifikovať typy stĺpcov. 139 00:05:50,140 --> 00:05:53,790 Teraz v Google Spreadsheets alebo Excel, môže určiť, ako sú dáta vykreslený. 140 00:05:53,790 --> 00:05:58,120 Dalo by sa ísť do menu Formát, a vy Môžete zadať ukážte tento ako znak dolára, 141 00:05:58,120 --> 00:05:59,900 ukázať to ako plávajúce bodovou hodnotou. 142 00:05:59,900 --> 00:06:01,990 >> Takže, je to podobné duchom že to, čo sa chystáme urobiť, 143 00:06:01,990 --> 00:06:04,740 ale toto je v skutočnosti bude nútiť údaje, ktoré majú byť určitý typ. 144 00:06:04,740 --> 00:06:07,750 Teraz, aj keď pred chvíľou som povedal, že je to len pár dátové typy, 145 00:06:07,750 --> 00:06:11,120 tam je vlastne oveľa, a sú to 146 00:06:11,120 --> 00:06:12,910 v rôznom stupni špecifickosti. 147 00:06:12,910 --> 00:06:14,970 A ako stranou, vy Môžete dokonca robiť maškarný veci 148 00:06:14,970 --> 00:06:17,520 ako skladovacie geometria vnútri databázy. 149 00:06:17,520 --> 00:06:19,250 Môžete ukladať veci ako je GPS súradnice 150 00:06:19,250 --> 00:06:22,420 a skutočne nájsť, matematicky, body, ktoré sú v blízkosti inej. 151 00:06:22,420 --> 00:06:24,128 Ale budeme zachovať to super jednoduché 152 00:06:24,128 --> 00:06:26,800 a ísť až na tú, všetci tzv typy reťazec. 153 00:06:26,800 --> 00:06:29,240 >> Takže, tu je zoznam celý rad možností. 154 00:06:29,240 --> 00:06:32,740 CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 A je to celkom ohromujúci. 156 00:06:34,110 --> 00:06:37,610 A bohužiaľ, trochu paradoxne až C, 157 00:06:37,610 --> 00:06:40,120 CHAR nie je naozaj CHAR. 158 00:06:40,120 --> 00:06:44,170 Ak zadáte v databáze že vaše dáta typ je CHAR, 159 00:06:44,170 --> 00:06:47,390 to znamená, že áno, je to CHAR, ale je to jeden alebo viac znakov. 160 00:06:47,390 --> 00:06:49,630 A musíte zadať ako veľa pripáli chcete. 161 00:06:49,630 --> 00:06:51,636 Takže, čo je typický dĺžka užívateľské meno? 162 00:06:51,636 --> 00:06:52,760 Existuje nejaký limit zvyčajne? 163 00:06:52,760 --> 00:06:53,920 >> Divákov: [Nepočuteľné] 164 00:06:53,920 --> 00:06:55,050 >> DAVID Malan: 16 možná? 165 00:06:55,050 --> 00:06:55,990 Niečo ako toto. 166 00:06:55,990 --> 00:06:57,948 Viete, späť v deň, to bolo osem. 167 00:06:57,948 --> 00:07:00,289 Niekedy je to 16, niekedy je to ešte viac než to. 168 00:07:00,289 --> 00:07:02,080 A tak to nie je znamenať, daj mi jednu CHAR. 169 00:07:02,080 --> 00:07:04,730 To znamená, že musím upresniť dĺžka poľa, 170 00:07:04,730 --> 00:07:07,402 a teraz by som mohol povedať niečo ako 16 rokov. 171 00:07:07,402 --> 00:07:08,610 A je tu kompromis tu. 172 00:07:08,610 --> 00:07:11,360 Takže, uvidíme za chvíľu že to znamená, že jeden, 173 00:07:11,360 --> 00:07:14,620 každý užívateľ musí byť 16 znakov. 174 00:07:14,620 --> 00:07:18,720 Ale počkajte chvíľu, M-A-L-A-N. Či je to moje meno a ja som len s využitím piatich, 175 00:07:18,720 --> 00:07:23,070 čo by ste navrhnúť, aby databáza urobiť pre ďalších 11 znakov, ktoré 176 00:07:23,070 --> 00:07:24,471 Ja som vyhradený priestor pre? 177 00:07:24,471 --> 00:07:25,220 Čo by si robil? 178 00:07:25,220 --> 00:07:26,480 >> Divákov: [Nepočuteľné] 179 00:07:26,480 --> 00:07:27,160 >> DAVID Malan: Jo, aby ich všetci null. 180 00:07:27,160 --> 00:07:28,290 Urobiť im priestor. 181 00:07:28,290 --> 00:07:30,816 Ale pravdepodobne null, takže Veľa spätné lomítko núl. 182 00:07:30,816 --> 00:07:33,190 Tak, na jednej strane, máme Teraz sa uistiť, že sa moje užívateľské meno 183 00:07:33,190 --> 00:07:34,780 môže byť viac ako 16 znakov. 184 00:07:34,780 --> 00:07:37,590 A odvrátenou stranou, ktorá je že keby som mal naozaj dlhý názov 185 00:07:37,590 --> 00:07:39,940 alebo chcel naozaj dlhá užívateľské meno, ako niektorí z vás 186 00:07:39,940 --> 00:07:44,840 chlapci môžu mať v tejto vysokej škole, alebo na Yale.edu, nemôžete mať jeden. 187 00:07:44,840 --> 00:07:47,177 A tak v skutočnosti, ak ste niekedy zapísaná pre webové stránky 188 00:07:47,177 --> 00:07:49,385 a dostanete zareval na príslovie Vaše heslo je príliš dlhá 189 00:07:49,385 --> 00:07:52,710 alebo vaše užívateľské meno je príliš dlhá, je to jednoducho preto, že programátor, keď 190 00:07:52,710 --> 00:07:55,500 konfiguráciu jeho alebo jej databázy, rozhodol, že toto pole bude 191 00:07:55,500 --> 00:07:57,150 byť dlhšia než táto dĺžka. 192 00:07:57,150 --> 00:08:00,580 >> Dobre, tak čo keď budeme pokračovať pomenovať? 193 00:08:00,580 --> 00:08:05,240 Ako dlho by mal Meno typického ľudského to byť? 194 00:08:05,240 --> 00:08:07,492 Ako veľa znakov, 16? 195 00:08:07,492 --> 00:08:09,450 Hádam, že by sme mohli nájsť niekoho v tejto miestnosti 196 00:08:09,450 --> 00:08:13,210 kde jeho alebo jej prvý Plus posledný názov je dlhší ako 16 znakov. 197 00:08:13,210 --> 00:08:14,850 Takže, čo je lepšie, než to, že 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 Väčšie? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> Divákov: [Nepočuteľné] 203 00:08:21,855 --> 00:08:23,700 DAVID Malan: 5000, ach môj bože. 204 00:08:23,700 --> 00:08:26,309 Tak, to je asi slušný hornú hranicu, povedzme. 205 00:08:26,309 --> 00:08:28,350 A tu sme trochu sa vykonať úsudok volanie. 206 00:08:28,350 --> 00:08:30,400 Rovnako ako neexistuje správna odpoveď tu. 207 00:08:30,400 --> 00:08:32,740 Infinite nie je dosť dobre možné, preto, že sme sa nakoniec 208 00:08:32,740 --> 00:08:34,781 bude have-- sme chystá spustiť z pamäte. 209 00:08:34,781 --> 00:08:36,909 Takže musíme urobiť úsudku v určitom okamihu. 210 00:08:36,909 --> 00:08:41,010 >> Veľmi časté by, napríklad, na use-- a dovoľte mi upresniť CHAR tu 211 00:08:41,010 --> 00:08:46,050 ako before-- 255 bol doslovne Horný limit tohto databázový softvér 212 00:08:46,050 --> 00:08:46,700 pred rokmi. 213 00:08:46,700 --> 00:08:48,575 A tak, veľa ľudí by len povedať, fajn. 214 00:08:48,575 --> 00:08:49,420 255 je limit. 215 00:08:49,420 --> 00:08:50,620 Poďme sa len využiť maximum. 216 00:08:50,620 --> 00:08:51,870 A to je celkom smiešne. 217 00:08:51,870 --> 00:08:55,060 Rovnako ako v prípade píšete je niekto menovať 200 plus znaky, 218 00:08:55,060 --> 00:08:56,140 to trochu smiešne. 219 00:08:56,140 --> 00:08:59,624 >> Ale pamätajte, že ASCII nie je jediný systém pre znaky. 220 00:08:59,624 --> 00:09:01,540 A tak, a to najmä v Mnoho ázijských jazykov 221 00:09:01,540 --> 00:09:04,248 tam, kde je znaky nemôžeme vyjadriť na klávesniciach, ako je môj USA 222 00:09:04,248 --> 00:09:08,209 klávesnica, niektoré charaktery vlastne trvať až 16 bitov namiesto ôsmich bitov. 223 00:09:08,209 --> 00:09:10,250 A tak, to vlastne nie je všetko, že neprimeraná 224 00:09:10,250 --> 00:09:12,250 že potrebujeme viac space ak chceme, aby sa zmestili 225 00:09:12,250 --> 00:09:16,252 väčšie postavy, než samotné USA centric tie sme tendenciu diskutovať. 226 00:09:16,252 --> 00:09:17,460 Takže, potrebujeme nejaký horná hranica. 227 00:09:17,460 --> 00:09:21,470 Ja neviem, čo je najlepšie z nich je, 255, ale je všeobecne obyčajný. 228 00:09:21,470 --> 00:09:22,700 25. cíti nízka. 229 00:09:22,700 --> 00:09:23,857 16, 32 cítiť nízka. 230 00:09:23,857 --> 00:09:25,690 Chcel by som chybu na strane niečo vyššia. 231 00:09:25,690 --> 00:09:27,330 Ale je tu kompromis, ako vždy. 232 00:09:27,330 --> 00:09:31,902 Čo je možno zrejmé, kompromis vyhradiť 255 znakov 233 00:09:31,902 --> 00:09:33,360 pre meno každého v mojej databázy? 234 00:09:33,360 --> 00:09:34,230 >> Divákov: [Nepočuteľné] 235 00:09:34,230 --> 00:09:34,510 >> DAVID Malan: Čo je to? 236 00:09:34,510 --> 00:09:35,430 >> Divákov: [Nepočuteľné] 237 00:09:35,430 --> 00:09:37,138 >> DAVID Malan: Je to veľa pamäti, že jo? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N. Práve som premárnil 250 znaky len uložiť moje meno 239 00:09:42,280 --> 00:09:46,000 obrancovia len v prípade, že niekto v triede má naozaj dlhý názov. 240 00:09:46,000 --> 00:09:47,940 To sa javí ako neprimerané kompromisu. 241 00:09:47,940 --> 00:09:52,040 >> Tak to dopadá, SQL, Táto databáza jazyk, 242 00:09:52,040 --> 00:09:55,480 v skutočnosti podporuje niečo, volal VARCHAR, alebo Variable CHAR. 243 00:09:55,480 --> 00:09:59,390 A to je celkom pekné, že tento umožňuje zadať nie je pevná 244 00:09:59,390 --> 00:10:01,900 šírka, ale skôr, premenná šírka. 245 00:10:01,900 --> 00:10:05,060 A konkrétnejšie, je maximálna šírka poľa. 246 00:10:05,060 --> 00:10:08,901 Takže, to znamená, že môže názov byť väčšia ako 250 znakov, 247 00:10:08,901 --> 00:10:10,150 ale to môže byť určite menej. 248 00:10:10,150 --> 00:10:11,733 A databáza bude šikovný. 249 00:10:11,733 --> 00:10:14,860 Ak sa dať do M-A-L-A-N, je to len bude používať päť, 250 00:10:14,860 --> 00:10:18,120 možná šesť bytov pre podobné vlečená znak null, 251 00:10:18,120 --> 00:10:23,330 a nie tráviť ďalšie 249 alebo 250 bajtov zbytočne. 252 00:10:23,330 --> 00:10:27,380 >> Takže to vyzerá, ako by som mal začali s týmto príbehom. 253 00:10:27,380 --> 00:10:29,140 Ale je tu vždy kompromis. 254 00:10:29,140 --> 00:10:33,024 Tak, na jednej strane, užívateľské meno som uvedené, že sa pevný kódované na 16, 255 00:10:33,024 --> 00:10:34,940 a možno, že to nie je pravá výzva, možno ju 256 00:10:34,940 --> 00:10:40,040 je, ale prečo nepoužiť VARCHARs za všetko? 257 00:10:40,040 --> 00:10:42,020 >> To existuje z nejakého dôvodu. 258 00:10:42,020 --> 00:10:46,200 Prečo nevyužiť VARCHARs pre každý odbor ktorého dĺžka neviete vopred 259 00:10:46,200 --> 00:10:48,180 keď sa zdá, že je to skvelá vec, nie? 260 00:10:48,180 --> 00:10:50,482 Používajte len toľko priestoru, koľko musíte do tohto limitu? 261 00:10:50,482 --> 00:10:51,271 >> Divákov: Pomalší. 262 00:10:51,271 --> 00:10:52,146 DAVID Malan: Kontrola pravopisu? 263 00:10:52,146 --> 00:10:53,120 Divákov: Robí to pomalší? 264 00:10:53,120 --> 00:10:53,970 DAVID Malan: Oh, to je pomalší. 265 00:10:53,970 --> 00:10:55,720 Dobre, to je takmer vždy odpoveď, úprimne. 266 00:10:55,720 --> 00:10:56,520 Rovnako ako to, čo je to kompromis? 267 00:10:56,520 --> 00:10:58,570 Je to buď stojí viac miesta alebo to stojí viac času. 268 00:10:58,570 --> 00:11:00,111 Takže v tomto prípade, môže byť pomalší. 269 00:11:00,111 --> 00:11:00,920 Prečo? 270 00:11:00,920 --> 00:11:05,830 >> Divákov: [Nepočuteľné] stanovenie [nepočuteľný]. 271 00:11:05,830 --> 00:11:06,640 >> DAVID Malan: Dobrý. 272 00:11:06,640 --> 00:11:09,670 Takže, možno si spomeniete aj od PSED5, hrať so svojím prístupom 273 00:11:09,670 --> 00:11:12,750 do slovníka, ak máte vyhradiť pamäť dynamicky alebo zachovať 274 00:11:12,750 --> 00:11:14,630 pestovanie vyrovnávaciu pamäť, ktorá môže byť v skutočnosti pomalé. 275 00:11:14,630 --> 00:11:16,963 Ak máte volať malloc pod pokrievku a možno 276 00:11:16,963 --> 00:11:19,610 to je to, čo MySQL robí, tak iste, že by mohol byť prípad. 277 00:11:19,610 --> 00:11:22,430 A ak si myslíte, cesta späť na PSet-- alebo dokonca 278 00:11:22,430 --> 00:11:26,340 dva týždne, keď sme urobili veci, ako je binárne vyhľadávania, alebo dokonca lineárne vyhľadávanie, 279 00:11:26,340 --> 00:11:30,690 jedna z pekné veci o každé slovo v databáze alebo každé slovo v stĺpci 280 00:11:30,690 --> 00:11:33,690 je presne rovnakú dĺžku, a to aj v prípade, že celý rad týchto znakov 281 00:11:33,690 --> 00:11:37,390 sú prázdne, je, že môžete použiť s priamym prístupom na vaše dáta, nie? 282 00:11:37,390 --> 00:11:40,310 >> Ak viete, že každý Slovo je 16 znakov preč, 283 00:11:40,310 --> 00:11:46,460 môžete použiť ukazovateľ aritmetiku, tak aby hovoriť, a ísť k nám 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 a vy môžete len skok okamžite pomocou aritmetiku 285 00:11:49,589 --> 00:11:51,130 na niektorú zo slov v databáze. 286 00:11:51,130 --> 00:11:54,280 Vzhľadom k tomu, či je to VARCHAR, čo si namiesto toho musíte urobiť? 287 00:11:54,280 --> 00:11:55,960 >> [Telefón zvoní] 288 00:11:55,960 --> 00:11:58,680 >> Pokiaľ sa jedná o VARCHAR, vy nemožno použiť náhodný prístup. 289 00:11:58,680 --> 00:12:01,341 Čo budete musieť hľadať alebo robiť? 290 00:12:01,341 --> 00:12:01,840 Jo? 291 00:12:01,840 --> 00:12:03,240 >> Divákov: [Nepočuteľné] 292 00:12:03,240 --> 00:12:04,310 >> DAVID Malan: Pozrite sa cez whole-- stopy 293 00:12:04,310 --> 00:12:06,518 celý zoznam hľadá na čo, s najväčšou pravdepodobnosťou? 294 00:12:06,518 --> 00:12:08,356 Aké zvláštne hodnoty? 295 00:12:08,356 --> 00:12:09,230 Divákov: [Nepočuteľné] 296 00:12:09,230 --> 00:12:11,105 DAVID Malan: Hľadám pre null terminátorov 297 00:12:11,105 --> 00:12:13,637 ktoré vymedzujú oddelenie slov. 298 00:12:13,637 --> 00:12:15,720 Takže znova, kompromis, a neexistuje správna odpoveď. 299 00:12:15,720 --> 00:12:18,380 Ale to je miesto, kde, zvlášť keď vaši užívatelia si, že je veľa 300 00:12:18,380 --> 00:12:21,700 a váš náklad na svojich serverov, Počet ľudí, ktorí používajú to bude vysoká, 301 00:12:21,700 --> 00:12:23,650 jedná sa vlastne netriviálne rozhodnutia. 302 00:12:23,650 --> 00:12:26,640 Takže, môžeme nechať tieto ako to, ale poďme prejdite dole cez doprava 303 00:12:26,640 --> 00:12:27,332 sem. 304 00:12:27,332 --> 00:12:30,290 Teraz, tam je niekoľko stĺpcov kde musíme urobiť úsudok volanie. 305 00:12:30,290 --> 00:12:35,170 Má zmysel povoliť užívateľa meno, užívateľské meno používateľa, alebo užívateľa 306 00:12:35,170 --> 00:12:36,370 meno, byť null? 307 00:12:36,370 --> 00:12:37,610 To znamená, že len prázdny. 308 00:12:37,610 --> 00:12:40,360 Pocit trochu nezmyselné, takže som nebude kontrolovať týchto boxov. 309 00:12:40,360 --> 00:12:42,670 Ale ukazuje sa, v databázu, môžete povedať, 310 00:12:42,670 --> 00:12:44,620 niekto môže voliteľne mať túto hodnotu. 311 00:12:44,620 --> 00:12:47,180 Tento stĺpec nemá k vlastne byť tam. 312 00:12:47,180 --> 00:12:48,570 >> Teraz, tam je to roletového menu. 313 00:12:48,570 --> 00:12:50,810 A všimnite si, že som stále tam prvom rade, 314 00:12:50,810 --> 00:12:52,520 takže Hovorím o užívateľské meno teraz. 315 00:12:52,520 --> 00:12:56,290 A ukázalo sa, že v databáze, na rozdiel od jednoduchého obyčajné tabuľky, 316 00:12:56,290 --> 00:12:58,520 má výkonné funkcie zvanej indexy. 317 00:12:58,520 --> 00:13:02,600 A index je spôsob rozprávania Databázy vopred, že ja, ľudského 318 00:13:02,600 --> 00:13:03,900 som múdrejší ako ty. 319 00:13:03,900 --> 00:13:10,430 >> Viem, aké druhy otázok, vyberte alebo vložiť alebo odstrániť, alebo aktualizovať, 320 00:13:10,430 --> 00:13:13,182 že môj kód skončí up robí v tejto databáze. 321 00:13:13,182 --> 00:13:14,390 Chcem si prečítať veľké množstvo dát. 322 00:13:14,390 --> 00:13:15,681 Chcem vložiť veľké množstvo dát. 323 00:13:15,681 --> 00:13:17,530 Chcem sa neustále odstrániť veľké množstvo dát. 324 00:13:17,530 --> 00:13:21,520 Ak ja viem, že ja budem prístup pole ako užívateľské meno a veľa, 325 00:13:21,520 --> 00:13:24,770 Môžem povedať, preventívne databázy, viem viac ako vy, 326 00:13:24,770 --> 00:13:29,220 a ja chcem, aby vyhlášky mali by ste index toto pole. 327 00:13:29,220 --> 00:13:33,200 V prípade, indexovanie pole alebo stĺpce znamená, že databáza vopred 328 00:13:33,200 --> 00:13:37,040 by mala požičať nejaké nápady z, rovnako ako, štyri týždeň a päť a šesť z CS50 329 00:13:37,040 --> 00:13:39,240 a vlastne vybudovať niečo ako binárny vyhľadávanie 330 00:13:39,240 --> 00:13:41,560 strom alebo niečo všeobecne nazýva B strom 331 00:13:41,560 --> 00:13:43,410 že by ste sa naučiť, v triede, ako CS124 332 00:13:43,410 --> 00:13:46,710 na Harvarde je trieda algoritmy, alebo ľubovoľný počet ďalších miestach. 333 00:13:46,710 --> 00:13:49,570 >> Databázy a inteligentné Ľudia, ktorí ju realizované 334 00:13:49,570 --> 00:13:53,880 sa prísť na to, ako uložiť že tabuľka informácií 335 00:13:53,880 --> 00:13:57,061 v pamäti tak, že vyhľadávanie a ostatné operácie sú veľmi rýchle. 336 00:13:57,061 --> 00:13:58,060 Nemusíte to robiť. 337 00:13:58,060 --> 00:14:00,640 Nemusíte realizovať lineárne vyhľadávanie alebo binárne vyhľadávanie 338 00:14:00,640 --> 00:14:03,300 alebo zlúčiť druh alebo výber druh, nič z toho. 339 00:14:03,300 --> 00:14:06,590 Databáza to urobí za vás, ak poviete to preventívne index toto pole. 340 00:14:06,590 --> 00:14:09,100 >> A môžete vidieť taky, je tu niektoré iné charakteristiky 341 00:14:09,100 --> 00:14:11,010 môžeme povedať, databázy presadiť. 342 00:14:11,010 --> 00:14:16,431 Čo by mohlo to znamená, keď vybrať Unique z tohto menu, len intuitívne? 343 00:14:16,431 --> 00:14:16,930 Jo? 344 00:14:16,930 --> 00:14:17,889 >> Divákov: [Nepočuteľné] 345 00:14:17,889 --> 00:14:19,930 DAVID Malan: Jo, ten užívateľské meno musí byť unikátne. 346 00:14:19,930 --> 00:14:23,330 Je to dobrá vec, alebo zlá vec pre databázy, pre webové stránky s používateľmi? 347 00:14:23,330 --> 00:14:24,965 Mal by byť unikátne používateľské mená? 348 00:14:24,965 --> 00:14:25,880 Jo, pravdepodobne. 349 00:14:25,880 --> 00:14:27,800 Ak to je to, čo poľa používame na prihlásenie, 350 00:14:27,800 --> 00:14:31,867 nemáte naozaj chcete ľudí, ktorí majú rovnaký pocit alebo rovnaké používateľské meno. 351 00:14:31,867 --> 00:14:33,700 Takže môžeme mať Databázy presadiť, že tak 352 00:14:33,700 --> 00:14:37,880 že teraz v mojom PHP kódu alebo akéhokoľvek jazyka, Ja nemusím, napríklad, skontrolujte 353 00:14:37,880 --> 00:14:41,490 nutne robí toto užívateľské meno existovať predtým, než som nechať niekoho registrovať? 354 00:14:41,490 --> 00:14:46,690 Databáza nenechá dvaja ľudia s názvom David alebo Malans registrovať v tomto prípade. 355 00:14:46,690 --> 00:14:50,030 >> A ako stranou, hoci toto Menu iba umožňuje vybrať jeden, 356 00:14:50,030 --> 00:14:54,550 jedinečný index je ten, ktorý je indexované za super rýchly výkon, 357 00:14:54,550 --> 00:14:56,100 ale tiež vynucuje jedinečnosť. 358 00:14:56,100 --> 00:14:58,850 A vrátime sa na to, čo Ďalšie dva na mysli len na chvíľu. 359 00:14:58,850 --> 00:15:00,930 Medzitým, keď pôjdem do Môj druhý riadok, ktorý 360 00:15:00,930 --> 00:15:06,230 je užívateľské meno, mal by som upresniť že názov by mal byť jedinečný? 361 00:15:06,230 --> 00:15:09,550 Nie, pretože by ste mohli určite have-- nie je dvoma David 362 00:15:09,550 --> 00:15:11,050 Malans v tejto miestnosti, s najväčšou pravdepodobnosťou. 363 00:15:11,050 --> 00:15:14,290 Ale ak sa zvoliť iný názov, by sme mohli iste mať kolízie. 364 00:15:14,290 --> 00:15:16,130 >> Spomeňte si na hash tabuľky a podobne. 365 00:15:16,130 --> 00:15:18,604 Takže sme určite nechceme aby sa názov poľa jedinečný. 366 00:15:18,604 --> 00:15:21,270 Takže, sme len tak odísť že ako pomlčka, pomlčka, pomlčka, nič. 367 00:15:21,270 --> 00:15:22,660 A ja neodídem všetko ostatné sám. 368 00:15:22,660 --> 00:15:25,035 V skutočnosti väčšina z týchto polí nebudeme musieť starať o. 369 00:15:25,035 --> 00:15:27,830 A keď som pripravený zachrániť to, v prípade, že internet spolupracuje, 370 00:15:27,830 --> 00:15:35,032 Aj kliknite na tlačidlo Uložiť, a veľmi, veľmi, veľmi Pomaly sa databázy spasený. 371 00:15:35,032 --> 00:15:37,240 A teraz som späť k tomu rozhranie, ktoré síce, 372 00:15:37,240 --> 00:15:38,680 je ohromujúci na prvý pohľad. 373 00:15:38,680 --> 00:15:42,450 Ale všetko, čo budem robiť, je kliknúť na slovo Používatelia vľavo hore. 374 00:15:42,450 --> 00:15:47,630 Chystám sa ísť sem, kliknite na tlačidlo Užívatelia, a v predvolenom nastavení, je 375 00:15:47,630 --> 00:15:50,180 popravil nejakú SQL, ale viac o tom za chvíľu. 376 00:15:50,180 --> 00:15:52,654 Tu je len súhrn toho, čo som urobil. 377 00:15:52,654 --> 00:15:55,320 A nie sa báť, že vidíte spomenúť latinčiny a švédčine tu. 378 00:15:55,320 --> 00:16:00,490 To sú len východiskové nastavenie, pretože MySQL pôvodne, 379 00:16:00,490 --> 00:16:04,000 alebo PHP MyAdmin, jeden z nich sa stalo byť napísaný niektorými švédskymi ľudí. 380 00:16:04,000 --> 00:16:06,100 Ale je to irelevantné, v našom prípade tu. 381 00:16:06,100 --> 00:16:08,280 >> Dobre, tak prečo je to zaujímavé? 382 00:16:08,280 --> 00:16:13,050 Ukázalo sa, že môžem vložiť dáta do databázy od písania kódu. 383 00:16:13,050 --> 00:16:15,940 A ja som do toho pustite a v mojom súbore tu, ja som 384 00:16:15,940 --> 00:16:19,000 ísť ďalej a predstierať, toto je zapojený do tejto databázy, ktorá 385 00:16:19,000 --> 00:16:23,040 to nie je v túto chvíľu, ale bude byť, keď sa dostaneme do problémov nastaviť sedem. 386 00:16:23,040 --> 00:16:25,640 A ja idem ďalej a vykonávať funkciu nazvanú dotaz, 387 00:16:25,640 --> 00:16:28,730 ktoré dáme vás problém nastaviť Siedma distribúcia kód, ktorý 388 00:16:28,730 --> 00:16:31,490 trvá najmenej jeden argument, čo je len reťazec. 389 00:16:31,490 --> 00:16:33,460 Reťazec SQL kódu. 390 00:16:33,460 --> 00:16:36,700 Takže, vy ste o tom naučiť sa napísať Structured Query Language. 391 00:16:36,700 --> 00:16:41,270 >> Chcem chcete vložiť nový riadok do môjho Databázy preto, že niekto podal 392 00:16:41,270 --> 00:16:47,600 forma na mojom kódu, urobil by som to doslova napísať INSERT INTO užívateľov nasledujúce 393 00:16:47,600 --> 00:16:52,800 pole: username, čiarka, názov, hodnoty, 394 00:16:52,800 --> 00:16:57,480 a teraz musím vložiť niečo ako Malan a citácií, 395 00:16:57,480 --> 00:17:01,490 koniec citátu "David Malan." A teraz a to aj pre tých neoboznámený s SQL, 396 00:17:01,490 --> 00:17:07,830 prečo som s použitím jednoduchých úvodzoviek vnútri tejto zelenej reťazca? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Čo sa tu môže byť dôvod? 399 00:17:13,040 --> 00:17:14,609 >> Všimnite si, že som čo-miešať dva jazyky. 400 00:17:14,609 --> 00:17:18,099 Otázka je funkcia PHP, ale to trvá argument. 401 00:17:18,099 --> 00:17:21,740 A že toto tvrdenie musí byť samo o sebe napísaný v inom jazyku zvanom 402 00:17:21,740 --> 00:17:23,500 SQL, Structured Query Language. 403 00:17:23,500 --> 00:17:27,940 Takže všetko, čo som sa tu práve zvýraznené 404 00:17:27,940 --> 00:17:30,380 je tento jazyk nazýva SQL. 405 00:17:30,380 --> 00:17:36,290 Takže, čo je s jednoduchých úvodzovkách, rovnako ako rýchlu kontrolu sanitačného? 406 00:17:36,290 --> 00:17:37,324 Choďte do toho. 407 00:17:37,324 --> 00:17:37,990 Sú reťazce. 408 00:17:37,990 --> 00:17:41,590 Takže, citujem, koniec citátu Malan a citovať, koniec citátu David Malan sú reťazce. 409 00:17:41,590 --> 00:17:45,210 A len premýšľať intuitívne teraz, vedel, čo viete o C a PHP, 410 00:17:45,210 --> 00:17:50,220 Prečo som to neurobil, čo som väčšinou ojazdené úvodzovky pre sláčiky? 411 00:17:50,220 --> 00:17:52,310 Prečo som nechcel robiť, že? 412 00:17:52,310 --> 00:17:52,810 Jo? 413 00:17:52,810 --> 00:17:53,685 >> Divákov: [Nepočuteľné] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID Malan: Presne tak. 416 00:17:57,570 --> 00:17:59,653 Pretože už som s použitím dvojité úvodzovky na ceste 417 00:17:59,653 --> 00:18:01,929 mimo argumentu do funkcie PHP, 418 00:18:01,929 --> 00:18:03,470 Len by som zmiasť tlmočníka. 419 00:18:03,470 --> 00:18:04,860 Nebude vedieť, že to ide dokopy? 420 00:18:04,860 --> 00:18:05,735 Nikdy to ide dokopy? 421 00:18:05,735 --> 00:18:06,810 Nikdy to ide dokopy? 422 00:18:06,810 --> 00:18:08,070 Tak som striedať miesto. 423 00:18:08,070 --> 00:18:11,784 >> Alebo by som mohol urobiť niečo také, spätné lomítko citát alebo spätné lomítko citát. 424 00:18:11,784 --> 00:18:14,200 Úprimne povedané, že práve začína dostať veľmi nečitateľné a škaredé. 425 00:18:14,200 --> 00:18:16,790 Ale to by dosiahol rovnakého výsledku rovnako. 426 00:18:16,790 --> 00:18:19,760 >> Takže, keby som spustiť tento dotaz teraz, poďme sa pozrieť, čo sa stane. 427 00:18:19,760 --> 00:18:22,740 Chystám sa ísť dopredu a hneď skôr ako spustiť PHP kód, ktorý 428 00:18:22,740 --> 00:18:24,610 je miesto, kde budete hrať v probléme set sedem, 429 00:18:24,610 --> 00:18:27,200 Chystám sa namiesto toho ísť do PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 A ja som sa ručne ísť na kartu SQL, 431 00:18:29,770 --> 00:18:31,580 a dovoľte mi, aby som priblížiť na rozhraní. 432 00:18:31,580 --> 00:18:34,007 A ja vložiť do tá vec som napísal. 433 00:18:34,007 --> 00:18:36,090 A farebné kódovanie má zmenil trochu teraz, 434 00:18:36,090 --> 00:18:38,750 len preto, že programové formáty veci trochu inak. 435 00:18:38,750 --> 00:18:41,960 Ale všimnite si, že všetko, čo som urobil je, že som povedal, vložte do užívateľa. 436 00:18:41,960 --> 00:18:45,790 Ja som je uvedené, potom v čiarkou oddelený zátvorkách zoznam dva 437 00:18:45,790 --> 00:18:48,850 Pole, ktoré chcem vložiť, a Potom som sa doslova povedal hodnoty 438 00:18:48,850 --> 00:18:51,510 nasledovala ďalšia zátvorka, a potom sa tieto dve hodnoty 439 00:18:51,510 --> 00:18:53,520 Chcem, aby plug-in, a Teraz na správnu mieru, 440 00:18:53,520 --> 00:18:55,010 Dám bodkočiarka na konci. 441 00:18:55,010 --> 00:18:56,570 Tak, to nie je C. To nie je PHP. 442 00:18:56,570 --> 00:18:59,970 To je teraz SQL, a ja som ho vložiť do tohto webového rozhrania, ktorá je 443 00:18:59,970 --> 00:19:02,710 Len ma nechaj, akonáhle som na tlačidlo Prejsť, 444 00:19:02,710 --> 00:19:08,060 vykonanie tohto dotazu v databáze bežiaci vo vnútri CS50 IDE. 445 00:19:08,060 --> 00:19:09,470 >> Tak to je dobré. 446 00:19:09,470 --> 00:19:12,520 Všimnite si, že povedal jeden riadok vložené, išiel super rýchly, 447 00:19:12,520 --> 00:19:15,190 0,0054 sekúnd vložiť tieto dáta. 448 00:19:15,190 --> 00:19:16,610 Tak, to znie celkom zdravé. 449 00:19:16,610 --> 00:19:19,350 To Reformatted môj dotaz pre mňa tu len preto, aby to vidieť 450 00:19:19,350 --> 00:19:21,730 v akejsi farebné kódovanej verzie. 451 00:19:21,730 --> 00:19:24,540 Ale teraz, keď kliknem Prechádzať, Všimnite si, že aj 452 00:19:24,540 --> 00:19:29,070 aj keď je tu veľa neporiadku na obrazovka, môj stôl má teraz dva riadky. 453 00:19:29,070 --> 00:19:30,700 >> Takže, nechaj ma ísť ďalej a robiť inú. 454 00:19:30,700 --> 00:19:33,760 Namiesto toho, dovoľte mi, aby som prejdite na záložku SQL znova. 455 00:19:33,760 --> 00:19:40,723 A tentoraz budem vložiť niečo ako Rob a jeho meno bude rob Bowden. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 Poďme na tlačidlo Uložiť. 458 00:19:44,040 --> 00:19:46,140 Jejda, skôr Go. 459 00:19:46,140 --> 00:19:48,890 >> Znova kliknite na tlačidlo Prehľadávať a Všimnite si, teraz mám dva riadky. 460 00:19:48,890 --> 00:19:52,390 Takže, je to len spôsob, ako zložitejšie spôsob otvárania Google Spreadsheets 461 00:19:52,390 --> 00:19:54,010 a len písať riadok do stĺpca. 462 00:19:54,010 --> 00:19:57,070 Ale čo je kľúč je, že máme teraz syntaxe 463 00:19:57,070 --> 00:20:00,220 s ktorou písať kód tak, aby nakoniec, mohli sme vlastne 464 00:20:00,220 --> 00:20:01,790 urobiť nejaké to a. 465 00:20:01,790 --> 00:20:05,380 Pripomeňme si, že PHP podporuje Super globálne premenné. 466 00:20:05,380 --> 00:20:08,415 >> To, čo je vo vnútri dolára prihlásiť podčiarknutie GET v PHP? 467 00:20:08,415 --> 00:20:10,290 Zobrali sme sa pozrieť na jeden alebo dva jednoduché príklady. 468 00:20:10,290 --> 00:20:15,640 A v PSet6, spomínam máte ahoj dot PHP, ktorý používa túto premennú. 469 00:20:15,640 --> 00:20:17,870 Čo sa deje tam? 470 00:20:17,870 --> 00:20:21,015 Alebo čo je to? 471 00:20:21,015 --> 00:20:22,522 Trochu hlasnejšie. 472 00:20:22,522 --> 00:20:23,790 >> Divákov: [Nepočuteľné] 473 00:20:23,790 --> 00:20:25,030 >> DAVID Malan: Je to sneh semeno z poľa, čo 474 00:20:25,030 --> 00:20:27,714 je len fantázia spôsob, ako hovoriť matice, ktorá má kľúče a hodnoty. 475 00:20:27,714 --> 00:20:28,880 A kľúče nie sú číselné. 476 00:20:28,880 --> 00:20:30,420 Sú to slová alebo reťazca. 477 00:20:30,420 --> 00:20:32,750 A konkrétne, čo sú tie páry kľúč hodnota? 478 00:20:32,750 --> 00:20:35,110 Odkiaľ pochádza? 479 00:20:35,110 --> 00:20:35,620 Prosím? 480 00:20:35,620 --> 00:20:36,994 >> Divákov: [Nepočuteľné] 481 00:20:36,994 --> 00:20:37,660 DAVID Malan: Nie? 482 00:20:37,660 --> 00:20:40,700 Kam tie kľúče párov hodnota pochádza? 483 00:20:40,700 --> 00:20:42,490 Zopakuj? 484 00:20:42,490 --> 00:20:44,610 Už zase? 485 00:20:44,610 --> 00:20:46,472 Som jediný, kto niečo sluch? 486 00:20:46,472 --> 00:20:47,810 >> [SMIECH] 487 00:20:47,810 --> 00:20:49,042 >> To je v poriadku, áno? 488 00:20:49,042 --> 00:20:50,435 >> Divákov: [Nepočuteľné] 489 00:20:50,435 --> 00:20:52,560 DAVID Malan: Jo, pochádzajú z reťazca dotazu. 490 00:20:52,560 --> 00:20:55,380 Takže, ak ste vzad v čase keď sme hrali s pomocou Google 491 00:20:55,380 --> 00:20:59,600 a my sme šli do Google.com lomítko Hľadanie otáznik q rovná mačky, 492 00:20:59,600 --> 00:21:03,550 keby som stlačte klávesu Enter, a pokiaľ Google boli realizované v PHP, 493 00:21:03,550 --> 00:21:07,017 PHP kód, ktorý Google napísal by mala prístup k doláru 494 00:21:07,017 --> 00:21:11,600 podčiarknuť dovnútra, z ktorých je kľúčovým nazýva Q a hodnota 495 00:21:11,600 --> 00:21:17,680 tzv mačky, ktoré to môže potom použiť robieval aktuálne vyhľadávania s. 496 00:21:17,680 --> 00:21:20,860 >> Takže v skutočnosti to, čo budem urobiť, je ísť späť do svojho PHP kód 497 00:21:20,860 --> 00:21:23,140 že budete zase vidieť viac v PSet7. 498 00:21:23,140 --> 00:21:25,440 A miesto upchávaniu v tvrdých kódovaných hodnoty, ktoré 499 00:21:25,440 --> 00:21:27,630 nezdá sa ako veľmi dynamický web, 500 00:21:27,630 --> 00:21:30,680 Chystám sa vám ukážku z čo váš skutočný kód bude robiť. 501 00:21:30,680 --> 00:21:32,854 Tie by sa dal v dvoch otázniky takhle. 502 00:21:32,854 --> 00:21:34,270 Ja neviem, čo je užívateľské meno. 503 00:21:34,270 --> 00:21:37,390 Ja neviem, čo sa Názov bude, 504 00:21:37,390 --> 00:21:39,470 ale ja viem, že môžem si je dynamicky. 505 00:21:39,470 --> 00:21:43,420 >> Takže, ak kód sme teraz Písanie je kód beží na serveroch Google, 506 00:21:43,420 --> 00:21:46,940 alebo ak je to ahoj bodka PHP, ktorý je dodávaný s PSet6, 507 00:21:46,940 --> 00:21:48,650 Chystám sa prejsť do Funkcia dotaz 508 00:21:48,650 --> 00:21:51,450 rovnako ako printf, dva ďalšie argumenty. 509 00:21:51,450 --> 00:21:57,120 GET, citujem, koniec citátu užívateľské meno, a GET, citujem, koniec citátu meno. 510 00:21:57,120 --> 00:22:00,720 A teraz, čo si všimnete všeobecná štruktúra je tu. 511 00:22:00,720 --> 00:22:03,320 Mám na ľavej strane strane hovoru, 512 00:22:03,320 --> 00:22:05,480 Táto funkcia s názvom dotazu v PHP. 513 00:22:05,480 --> 00:22:08,160 Stále mám ako prvý Argument, len reťazec textu. 514 00:22:08,160 --> 00:22:11,000 >> Ale to reťazec textu napísaný v jazyku s názvom SQL. 515 00:22:11,000 --> 00:22:12,616 A úprimne povedané, nie je to veľký jazyk. 516 00:22:12,616 --> 00:22:14,990 Sme len hovoriť o formálne dnes, naozaj. 517 00:22:14,990 --> 00:22:17,031 A potom sa v probléme set sedem, tam je pomerne 518 00:22:17,031 --> 00:22:18,800 Niekoľko funkcií, ktoré sme ísť využiť. 519 00:22:18,800 --> 00:22:22,530 Otázniky však znamenať zapojte je hodnota, tu a plug-in inú hodnotu 520 00:22:22,530 --> 00:22:23,130 sem. 521 00:22:23,130 --> 00:22:26,010 A upozornenie, ja som vynechal, čo z celého quote-- sakramentsky 522 00:22:26,010 --> 00:22:30,470 to-- okolo citáciu označí tentoraz. 523 00:22:30,470 --> 00:22:34,930 Ja som vynechal citát značky okolo otáznik, 524 00:22:34,930 --> 00:22:36,410 Ospravedlňujem sa, tentoraz. 525 00:22:36,410 --> 00:22:38,870 >> Takže, čo je pekné o tom Otázka funkcie ochranná známka, ktorá 526 00:22:38,870 --> 00:22:42,830 PHP má tendenciu podporovať, Ruby a Python a iné jazyky, 527 00:22:42,830 --> 00:22:45,730 to len znamená, že konektor v niektorých Hodnota tu a viete, čo? 528 00:22:45,730 --> 00:22:48,300 Môžete prísť na to, či sa má používať jednoduché úvodzovky alebo dvojité úvodzovky. 529 00:22:48,300 --> 00:22:50,966 Neobťažujte ma s tými, intelektuálne nezaujímavé detaily. 530 00:22:50,966 --> 00:22:53,780 Ale uistite sa, že je správne takže môj kód je nakoniec 531 00:22:53,780 --> 00:22:57,010 funkčné a bezpečné, čo bude mať význam onedlho. 532 00:22:57,010 --> 00:23:00,460 >> A teraz, koľko celkom argumenty, len preto, aby byť jasné, je dotaz funkcia prijímanie? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Každý, kto chcú hlasovať pre viac než dva? 535 00:23:07,581 --> 00:23:08,080 Tri? 536 00:23:08,080 --> 00:23:10,001 Iste, prečo? 537 00:23:10,001 --> 00:23:10,920 Prečo tri? 538 00:23:10,920 --> 00:23:12,305 >> Divákov: [Nepočuteľné] 539 00:23:12,305 --> 00:23:13,180 DAVID Malan: Presne tak. 540 00:23:13,180 --> 00:23:14,610 Prvá časť je reťazec. 541 00:23:14,610 --> 00:23:18,640 Druhý argument je znak dolára podčiarknuť GET držiaku užívateľské meno. 542 00:23:18,640 --> 00:23:21,950 A tretí argument je to isté, ale len meno. 543 00:23:21,950 --> 00:23:24,590 Takže inými slovami, teraz keby som mal webový formulár 544 00:23:24,590 --> 00:23:27,149 že musel textových polí, jeden pre užívateľské meno používateľa, 545 00:23:27,149 --> 00:23:29,690 jeden pre jeho alebo jej meno, len ako by ste vidieť na internetových stránkach 546 00:23:29,690 --> 00:23:32,120 pri registrácii niektoré webové stránky, môže to 547 00:23:32,120 --> 00:23:35,450 bude kód na zadnom konci, ktorý vlastne robí vloženie teraz 548 00:23:35,450 --> 00:23:37,220 do databázy. 549 00:23:37,220 --> 00:23:40,870 >> Teraz naopak, poďme rýchlo dopredu. 550 00:23:40,870 --> 00:23:43,840 Predpokladajme, že používateľ je teraz prihlásenie a chcete 551 00:23:43,840 --> 00:23:48,860 písať PHP kód, ktorý kontroluje, či osoba, ktorá je práve prihlásený 552 00:23:48,860 --> 00:23:52,250 je vlastne užívateľ, môžete používať celkom jednoduchú syntax. 553 00:23:52,250 --> 00:23:55,832 Môžete povedať SELECT, povedzme Star, kde hviezda znamená všetko. 554 00:23:55,832 --> 00:23:57,540 Neviem, čo mám chceš, tak daj mi 555 00:23:57,540 --> 00:24:01,585 všetky stĺpce z tabuľky volal užívatelia kde, a to je pekné. 556 00:24:01,585 --> 00:24:03,710 Zvoľte podporuje to, čo je volal predikát, ktorý je 557 00:24:03,710 --> 00:24:06,630 ako spôsob, ako kvalifikáciu, čo chcete. 558 00:24:06,630 --> 00:24:10,590 Tam, kde používateľské meno odpovedá citát, koniec citátu Malan. 559 00:24:10,590 --> 00:24:13,680 Takže aj tu, som vložený vnútri argumentu 560 00:24:13,680 --> 00:24:16,110 na funkciu PHP, riadku kódu SQL. 561 00:24:16,110 --> 00:24:18,680 A že tento kód SQL čas je doslova deje 562 00:24:18,680 --> 00:24:21,790 hľadať citáciu, koniec citátu Malan. 563 00:24:21,790 --> 00:24:24,420 >> Teraz to nie je všetko, že užitočné, takže budem preskočiť, že 564 00:24:24,420 --> 00:24:28,650 a ja hodlám dať preč Tento tip od Brady, a ísť 565 00:24:28,650 --> 00:24:30,990 a namiesto toho plug-in otáznik tu. 566 00:24:30,990 --> 00:24:33,290 Takže, len aby bolo jasno, čo by môj druhý argument, 567 00:24:33,290 --> 00:24:37,480 ak bude niekto práve prihlásený a I chcete skontrolovať, či on alebo ona je v skutočnosti 568 00:24:37,480 --> 00:24:39,265 užívateľ? 569 00:24:39,265 --> 00:24:40,140 Divákov: [Nepočuteľné] 570 00:24:40,140 --> 00:24:40,890 DAVID Malan: Jo. 571 00:24:40,890 --> 00:24:44,120 Počul som, že znak dolára podčiarknutie Si nabidku, koniec citátu užívateľské meno. 572 00:24:44,120 --> 00:24:50,040 A to by mal vrátiť ku mne niektorý z riadkov vo svojej databáze 573 00:24:50,040 --> 00:24:51,986 ktoré majú užívateľské meno Malan. 574 00:24:51,986 --> 00:24:54,860 Teraz dúfajme, budem sa dostať späť nula, ak Malan je tu nikdy nebol, 575 00:24:54,860 --> 00:24:56,290 alebo jeden keď má. 576 00:24:56,290 --> 00:24:59,026 Nemala by som sa vrátiť dva alebo tri alebo štyri. 577 00:24:59,026 --> 00:24:59,526 Prečo? 578 00:24:59,526 --> 00:25:00,220 >> Divákov: [Nepočuteľné] 579 00:25:00,220 --> 00:25:01,120 >> DAVID Malan: Povedal som unikátne, že jo? 580 00:25:01,120 --> 00:25:01,750 Jednoduchý dôvod. 581 00:25:01,750 --> 00:25:04,030 Pretože som povedal, že to musí byť jedinečný, práve logicky, 582 00:25:04,030 --> 00:25:07,940 môžete mať iba žiadny alebo jeden Malans v tomto konkrétnom tabuľke databázy. 583 00:25:07,940 --> 00:25:10,965 Teraz ako stranou, len aby ste videli to, aj keď som stále používať GET 584 00:25:10,965 --> 00:25:14,350 a hoci používa iba PSet6 GET, môžete samozrejme mať POST. 585 00:25:14,350 --> 00:25:17,212 A pripomínajú, že príspevok je iný technika pre odovzdávanie informácií 586 00:25:17,212 --> 00:25:19,170 z formulára, ale nezobrazuje v URL. 587 00:25:19,170 --> 00:25:22,690 Je to trochu bezpečnejšie iste pre veci ako používateľské mená a heslá, 588 00:25:22,690 --> 00:25:25,210 ktoré PSet7 bude v skutočnosti, zahŕňajú. 589 00:25:25,210 --> 00:25:28,130 >> Takže, poďme to urobiť v PHP MyAdmin a uvidíme, čo sa stane. 590 00:25:28,130 --> 00:25:30,020 Chystám sa ísť na záložku MySQL. 591 00:25:30,020 --> 00:25:34,450 A všimnite si, že predvolenú hodnotu pre PHP MyAdmin, len aby sa snaží byť užitočný, 592 00:25:34,450 --> 00:25:37,050 je vybrať hviezdičku od užívateľov, kde jedna. 593 00:25:37,050 --> 00:25:39,430 No, jeden je vždy pravdivý, tak To má hlúpe efektívne 594 00:25:39,430 --> 00:25:40,400 zo len vybrať všetko. 595 00:25:40,400 --> 00:25:42,691 Ale ja budem trochu viac pedantská a ručne 596 00:25:42,691 --> 00:25:45,920 zadajte out SELECT hviezdu od užívateľov. 597 00:25:45,920 --> 00:25:48,294 >> Teraz technicky, môžete citovať mená tabuliek. 598 00:25:48,294 --> 00:25:50,460 Je to vzácne, že je to nutné, nevšimnúť tieto nie sú 599 00:25:50,460 --> 00:25:52,240 Vaša normálne citáty na klávesnici USA. 600 00:25:52,240 --> 00:25:54,760 Jedná sa o tzv backtick, ktorý je obvykle na hornej ľavej ruke 601 00:25:54,760 --> 00:25:56,000 rohu klávesnice. 602 00:25:56,000 --> 00:25:58,500 Ale to je zriedkavé, že budete skutočne potrebujú obťažovať s tým, 603 00:25:58,500 --> 00:25:59,950 tak som si len vynechať je tak ako tak. 604 00:25:59,950 --> 00:26:02,280 Takže teraz, nechaj ma ísť napred a hit ísť. 605 00:26:02,280 --> 00:26:06,616 A koľko riadkov by som mal dostať späť, keď som sa vybrať hviezdičku od užívateľov? 606 00:26:06,616 --> 00:26:08,407 >> Divákov: [Nepočuteľné] 607 00:26:08,407 --> 00:26:09,990 DAVID Malan: počet riadkov, iste. 608 00:26:09,990 --> 00:26:12,390 Ale koľko v tomto betón príbeh práve teraz? 609 00:26:12,390 --> 00:26:14,640 Po druhé, pretože tam bol ja a tam bol Rob. 610 00:26:14,640 --> 00:26:19,370 Takže, keď som kliknite na tlačidlo Prejsť, vidím, že vizuálne Som sa dostal späť, naozaj, dva riadky. 611 00:26:19,370 --> 00:26:22,060 Je tu veľa neporiadku na obrazovka, ale vidím len dve riadky. 612 00:26:22,060 --> 00:26:28,580 Naproti tomu, keď som to znovu a robiť SELECT hviezda od užívateľov, kde username 613 00:26:28,580 --> 00:26:31,840 rovná citácie koniec citátu Malan, teraz keď som na tlačidlo Prejsť, 614 00:26:31,840 --> 00:26:33,970 Ja som len sa vrátiť jeden riadok. 615 00:26:33,970 --> 00:26:36,499 A konečne, keď to urobím niečo také, predpokladám 616 00:26:36,499 --> 00:26:38,290 že nemám starať o dostať všetko, 617 00:26:38,290 --> 00:26:41,020 čo je tak trochu zmysel teraz, pretože tam je len dva stĺpce. 618 00:26:41,020 --> 00:26:43,103 Nie je to, ako som výberu obrovské množstvo dát. 619 00:26:43,103 --> 00:26:46,720 Dajme tomu, že som sa do toho pustite a sa SELECT meno FROM 620 00:26:46,720 --> 00:26:51,990 Užívatelia, kde username rovná Malan, čo je pekné o SQL úprimne, 621 00:26:51,990 --> 00:26:54,290 je, že to naozaj len robí čo ste to povedať robiť. 622 00:26:54,290 --> 00:26:57,550 Je to celkom stručne, ale doslova len povedať, že to, čo chcete robiť. 623 00:26:57,550 --> 00:27:01,130 Vyberte názov od užívateľov prípadne užívateľské meno rovná Malan. 624 00:27:01,130 --> 00:27:03,440 A naozaj je to tak jasné. 625 00:27:03,440 --> 00:27:08,410 Tak, teraz, keď som trafil Go, koľko riadky som sa dostať späť? 626 00:27:08,410 --> 00:27:10,770 Po prvé, pretože je to len Malan, dúfajme. 627 00:27:10,770 --> 00:27:13,100 Alebo nula v prípade, že to nie je tam, ale maximálne. 628 00:27:13,100 --> 00:27:17,610 >> A koľko stĺpcov dostanem späť? 629 00:27:17,610 --> 00:27:18,450 Koľko stĺpcov? 630 00:27:18,450 --> 00:27:20,658 Tentoraz, ja som jednoducho ísť aby si jeden, pretože som nemal 631 00:27:20,658 --> 00:27:22,380 vyberte hviezdu, čo je všetko. 632 00:27:22,380 --> 00:27:27,900 Teraz som len vyberiete meno, takže som len dostať späť jeden stĺpec a jeden riadok. 633 00:27:27,900 --> 00:27:31,730 A vyzerá to tak nejako vhodne smiešne, len pri pohľade výborný 634 00:27:31,730 --> 00:27:33,060 malá takhle. 635 00:27:33,060 --> 00:27:34,290 Takže, čo sa skutočne deje? 636 00:27:34,290 --> 00:27:36,890 Po spustení SQL dotaz pomocou select, 637 00:27:36,890 --> 00:27:38,700 čo ste sa dostal späť z databázy 638 00:27:38,700 --> 00:27:42,970 je ako dočasné tabuľky s riadky a stĺpce, možno, 639 00:27:42,970 --> 00:27:46,260 ale že vynechať nič, čo by nebol vlastne zvolený vami. 640 00:27:46,260 --> 00:27:49,010 Takže, je to ako keby niekto mal veľký tabuľku všetkých študentov 641 00:27:49,010 --> 00:27:51,610 registrované pre niektoré Skupina študentov, a vy hovoríte, 642 00:27:51,610 --> 00:27:55,097 daj mi všetky nováčik, ktorí si registrované pre našu študentská skupina, čo 643 00:27:55,097 --> 00:27:56,930 váš kolega v Skupina študentov by mohol robiť 644 00:27:56,930 --> 00:27:58,430 ich mohli len odovzdať ste celý tabuľky. 645 00:27:58,430 --> 00:27:59,742 To je ako hovoriť vyberte hviezdu. 646 00:27:59,742 --> 00:28:02,200 A je to trochu nepríjemné, ak ste chcel iba prvom ročníku. 647 00:28:02,200 --> 00:28:05,640 A tak, keď sa namiesto toho povedal: vyberte hviezda z databázovej tabuľky 648 00:28:05,640 --> 00:28:08,470 kde rok rovná citát, koniec citátu prvák, 649 00:28:08,470 --> 00:28:10,810 je to ako keby váš priateľ v študentskej skupiny 650 00:28:10,810 --> 00:28:13,770 doslova zvýrazní a kopírovať len prvák riadky, 651 00:28:13,770 --> 00:28:16,780 vložiť ich do nového Googlu Tabuľkový alebo súbor programu Excel, 652 00:28:16,780 --> 00:28:18,860 a podal uhádnete Výsledný jediný súbor. 653 00:28:18,860 --> 00:28:21,710 To je všetko, čo sa deje Na koncepčne tu. 654 00:28:21,710 --> 00:28:23,920 >> Takže nakoniec, môžeme to urobiť niektoré docela efektné veci 655 00:28:23,920 --> 00:28:26,560 skladovaním, ako sú užívateľské mená vecí a heslá a podobne. 656 00:28:26,560 --> 00:28:30,310 Ale, to dopadá, budeme robiť trochu inak, než je táto. 657 00:28:30,310 --> 00:28:34,750 To neznamená, že chytré iba uložiť užívateľské meno a heslo. 658 00:28:34,750 --> 00:28:37,790 Niekto skôr, myslím, tu, navrhol ID. 659 00:28:37,790 --> 00:28:40,787 Teraz ID by mohlo byť ako Harvard ID alebo Yaleův Net ID, 660 00:28:40,787 --> 00:28:42,870 ale môže to byť aj jednoduchšie v našej databáze prípade. 661 00:28:42,870 --> 00:28:45,120 A naozaj, bežný prípad je mať ďalší stĺpec. 662 00:28:45,120 --> 00:28:46,953 A ja idem vpred a upraviť tabuľku. 663 00:28:46,953 --> 00:28:49,521 A ak budete hrať sa s toto rozhranie pre PSet7, 664 00:28:49,521 --> 00:28:51,770 uvidíte, že môžete skontrolovať toto tlačidlo tu a pridať 665 00:28:51,770 --> 00:28:53,750 poľa na začiatku tabuľky. 666 00:28:53,750 --> 00:28:56,720 A teraz, keď som kliknite na tlačidlo Prejsť, bude to aby mi dal jeden z tých foriem 667 00:28:56,720 --> 00:28:57,600 z minulosti. 668 00:28:57,600 --> 00:29:00,170 Chystám sa pridať pole s názvom ID. 669 00:29:00,170 --> 00:29:03,070 A ja, aby to číselný typ. 670 00:29:03,070 --> 00:29:05,362 >> Mám veľa hodnôt pre numerics. 671 00:29:05,362 --> 00:29:08,677 Ja som jednoducho ísť vybrať INT a nemusíte starať o rôznorodých veľkostí. 672 00:29:08,677 --> 00:29:10,510 Nemám špecifikovať dĺžka alebo hodnotu, 673 00:29:10,510 --> 00:29:13,710 pretože to bude 32 bitov bez ohľadu na to, čo. 674 00:29:13,710 --> 00:29:16,070 Atribúty, sme nevideli predtým. 675 00:29:16,070 --> 00:29:18,410 Všetky úroky v niektorej z týchto Možnosti ponuky tejto dobe? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Pre INT? 678 00:29:23,745 --> 00:29:24,620 Čo navrhujete? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 Nie? 681 00:29:28,445 --> 00:29:29,570 Vykonajte ľubovoľný z nich zmysel? 682 00:29:29,570 --> 00:29:30,536 Jo. 683 00:29:30,536 --> 00:29:31,900 Jo, nepodpísané, že jo? 684 00:29:31,900 --> 00:29:35,930 >> Všeobecne platí, že ak budeme dávať všetci jedinečné číslo, ktoré 685 00:29:35,930 --> 00:29:38,200 je miesto, kde tento príbeh je deje, som sa naozaj len chcem 686 00:29:38,200 --> 00:29:41,919 osobu mať číslo ako nula a jedna a dve a tri a štyri. 687 00:29:41,919 --> 00:29:43,710 Nepotrebujem sa zaoberať so zápornými číslami. 688 00:29:43,710 --> 00:29:45,210 Proste to vyzerá ako zbytočného zložitosti. 689 00:29:45,210 --> 00:29:48,470 Chcem štyri miliardy možných hodnôt, nie štyri miliardy možných hodnôt, 690 00:29:48,470 --> 00:29:50,699 tak som zdvojnásobil Kapacita môjho INT. 691 00:29:50,699 --> 00:29:53,490 Ako stranou, ak chcete, aby sa týkajú to niečo ako Facebook, 692 00:29:53,490 --> 00:29:56,190 späť do akejsi môj deň, kedy Facebook vyšiel prvý, 693 00:29:56,190 --> 00:29:59,510 Verím, že to, čo oni boli použitie v ich databáze MySQL 694 00:29:59,510 --> 00:30:02,856 pre uloženie užívateľa identifikátor, bol len INT. 695 00:30:02,856 --> 00:30:05,230 Ale samozrejme, je tu veľa reálnych ľudí na svete. 696 00:30:05,230 --> 00:30:07,438 Je tu veľa falošných Facebook účtov vo svete. 697 00:30:07,438 --> 00:30:11,701 A tak nakoniec, Facebook pretiekol veľkosť INT, štyri miliárd 698 00:30:11,701 --> 00:30:12,200 hodnotu. 699 00:30:12,200 --> 00:30:15,032 Čo je dôvod, prečo, keď sa pozriete okolo a je tu webové stránky 700 00:30:15,032 --> 00:30:16,740 ktorý vám poradí, aké jedinečné identifikačné číslo je. 701 00:30:16,740 --> 00:30:19,781 A ak ste nikdy zvolili používateľské meno Facebook, uvidíte jedinečný identifikátor. 702 00:30:19,781 --> 00:30:23,080 Myslím, že je profil bodka PHP otáznik ID rovná niečo. 703 00:30:23,080 --> 00:30:27,210 To je dnes niečo ako veľký INT, alebo dlho dlho ak chcete, 704 00:30:27,210 --> 00:30:29,700 čo je 64-bitová hodnota alebo niečo porovnateľné. 705 00:30:29,700 --> 00:30:33,620 >> Takže aj v reálnom svete sa tieto Problémy nakoniec niekedy nezáleží. 706 00:30:33,620 --> 00:30:37,600 A ukázalo sa tu, keď som dávať všetky moje používateľom jedinečné ID, 707 00:30:37,600 --> 00:30:41,750 Chcem byť super explicitné a minimálne, aby toto pole jedinečný. 708 00:30:41,750 --> 00:30:44,750 Ale ukazuje sa, je tu ešte jedna kus nomenklatúry aj dnes 709 00:30:44,750 --> 00:30:46,470 to je primárny kľúč. 710 00:30:46,470 --> 00:30:49,800 Ak ste navrhovaní databázy stôl a vopred viete, 711 00:30:49,800 --> 00:30:55,580 že jeden zo stĺpcov v tejto tabuľke mal a bude jednoznačne identifikujú riadky 712 00:30:55,580 --> 00:30:58,500 v tabuľke, ktoré chcete zadajte ho a povedať databázu, 713 00:30:58,500 --> 00:31:00,250 toto je môj primárny kľúč. 714 00:31:00,250 --> 00:31:02,110 Tam by mohlo byť duplikáty v iných oblastiach, 715 00:31:02,110 --> 00:31:06,330 ale ja vám hovorím, že táto databáza je môj primárny, môj najdôležitejšie oblastí, 716 00:31:06,330 --> 00:31:08,420 že je zaručená jedinečnosť. 717 00:31:08,420 --> 00:31:09,660 >> Teraz sa to zdá nadbytočný. 718 00:31:09,660 --> 00:31:13,830 Ja som teraz navrhuje, že by sme pridať, kliknutím na tlačidlo Uložiť tu, 719 00:31:13,830 --> 00:31:17,210 poľa called-- a idem ísť do toho a kliknite na AI, 720 00:31:17,210 --> 00:31:19,720 vrátime do že vo chvíli, zachrániť. 721 00:31:19,720 --> 00:31:22,540 Ja som teraz, že navrhuje môj stôl vyzerať takto. 722 00:31:22,540 --> 00:31:26,305 Mám INT pole s názvom ID, CHAR pole s názvom Užívateľské meno, 723 00:31:26,305 --> 00:31:31,100 VARCHAR poľa s názvom Name, ale ID, ak je to primárny a preto jedinečný, 724 00:31:31,100 --> 00:31:33,760 prečo som len odpad Doba zavedenie čo 725 00:31:33,760 --> 00:31:39,140 účinne je druhý jedinečný pole s názvom ID to je INT? 726 00:31:39,140 --> 00:31:41,980 >> Užívateľské meno, odvolanie, bol Už jedinečná, povedali sme. 727 00:31:41,980 --> 00:31:45,350 Takže len logicky, nemusíte žiadne databázu skúsenosti k rozumu 728 00:31:45,350 --> 00:31:47,570 cez to, prečo Možno som si predstavil 729 00:31:47,570 --> 00:31:50,065 INT ako môj jedinečný identifikačný kód, rovnako? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Čo je tohle-- zase hovoria? 732 00:31:53,930 --> 00:31:55,580 >> Divákov: [Nepočuteľné] 733 00:31:55,580 --> 00:31:59,534 >> DAVID Malan: Náhodný prístup je jednoduchšie, prečo? 734 00:31:59,534 --> 00:32:00,410 >> Divákov: [Nepočuteľné] 735 00:32:00,410 --> 00:32:02,367 DAVID Malan: Jo, to je Len prístup čísla. 736 00:32:02,367 --> 00:32:04,750 Takže, ak si myslíte, že to naozaj je tabuľka, ako je pole, 737 00:32:04,750 --> 00:32:07,690 teraz mám jedinečné identifikátory že môžem skákať okolo. 738 00:32:07,690 --> 00:32:11,520 A lepšie ako doteraz, je, že aký veľký je INT bude znova? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 bitov alebo štyri byty. 741 00:32:15,800 --> 00:32:17,750 >> Ako veľká je moje užívateľské meno bude? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Maximálne? 744 00:32:21,990 --> 00:32:22,880 16 bytov. 745 00:32:22,880 --> 00:32:26,080 >> Takže, ak ste naozaj starať o výkon vášho kódu, 746 00:32:26,080 --> 00:32:31,390 Spomeňte si na PSet5, dávate prednosť hľadať štyri bajt hodnoty alebo 16 747 00:32:31,390 --> 00:32:32,240 byte hodnota, je to tak? 748 00:32:32,240 --> 00:32:33,810 Je to naozaj tak jednoduché. 749 00:32:33,810 --> 00:32:38,060 Čo musíte urobiť, štyrikrát toľko práce vyhľadať používateľské mená, pretože tí, 750 00:32:38,060 --> 00:32:38,830 16 bajtov. 751 00:32:38,830 --> 00:32:41,320 Takže, budete musieť doslova porovnať všetkých 16 bajtov byť 752 00:32:41,320 --> 00:32:43,140 istí, že áno, je to užívateľské meno chcem. 753 00:32:43,140 --> 00:32:46,610 Kým pre INT, môžete to sa len štyri byty. 754 00:32:46,610 --> 00:32:49,212 >> A ako stranou pre tých, záujem počítačového hardware, 755 00:32:49,212 --> 00:32:52,420 to dopadá sa vojde niečo ako INT alebo 32-bitová hodnota v niečom 756 00:32:52,420 --> 00:32:55,330 volal register v počítači CPU, čo znamená, že je super, 757 00:32:55,330 --> 00:32:58,400 super rýchly, aj pri najnižších Úroveň hardvéru počítača. 758 00:32:58,400 --> 00:33:00,530 Takže, je tu len výhody všade okolo. 759 00:33:00,530 --> 00:33:01,530 Takže, čo to znamená? 760 00:33:01,530 --> 00:33:04,850 V skutočnosti, keď ste navrhovaní databázové tabuľky, takmer po celú dobu 761 00:33:04,850 --> 00:33:07,170 budete mať nie iba dáta vám záleží, 762 00:33:07,170 --> 00:33:09,280 ale aj niečo ako jedinečný identifikátor 763 00:33:09,280 --> 00:33:11,280 pretože to bude poďme robiť iné veci. 764 00:33:11,280 --> 00:33:13,160 A poďme zakopnúť jeden problém tu. 765 00:33:13,160 --> 00:33:15,990 >> Predpokladajme, že používatelia nemajú len používateľské mená a názvy, 766 00:33:15,990 --> 00:33:19,540 ale majú tiež veci ako miest a štáty a poštové smerovacie čísla, prinajmenšom 767 00:33:19,540 --> 00:33:20,432 tu v USA. 768 00:33:20,432 --> 00:33:22,390 Takže budem pokračovať a len rýchlo povedať, 769 00:33:22,390 --> 00:33:26,180 daj mi tri viac stĺpcov na konci tabuľky. 770 00:33:26,180 --> 00:33:28,900 A to bude City, to bude stáť, 771 00:33:28,900 --> 00:33:30,400 a to bude Zip. 772 00:33:30,400 --> 00:33:32,710 >> Teraz mesto, aké typy dát by to malo byť, snáď? 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 Ja neviem, čo sa Najdlhší názov mesta. 776 00:33:37,780 --> 00:33:40,571 Niekde v Amerike, tam je pravdepodobne nejaký smiešne dlhé slovo, 777 00:33:40,571 --> 00:33:43,605 takže poďme jednoducho ísť s 255, trochu historicky alebo sa môžu ľubovoľne. 778 00:33:43,605 --> 00:33:44,730 Štát, čo chcete robiť? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Rozsudok volania, že jo? 781 00:33:50,367 --> 00:33:51,700 Čo je možno najúčinnejší? 782 00:33:51,700 --> 00:33:53,500 Koľko znakov? 783 00:33:53,500 --> 00:33:55,950 Možno len dva, ak môžeme dostať preč s tým len, 784 00:33:55,950 --> 00:33:58,250 ako je, MA Massachusetts, a tak ďalej. 785 00:33:58,250 --> 00:34:00,520 Takže, ja idem char hodnotu dva. 786 00:34:00,520 --> 00:34:03,080 >> PSČ to zaujímavý človek. 787 00:34:03,080 --> 00:34:06,679 Sme tu na 02138, takže navrhuje, by sme mali používať čo? 788 00:34:06,679 --> 00:34:07,470 Je to INT, že jo? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, krátke? 791 00:34:12,800 --> 00:34:14,521 Krátka bude fungovať. 792 00:34:14,521 --> 00:34:15,020 Nie? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR alebo päť, ale Chcem INT. 795 00:34:20,870 --> 00:34:23,710 Prečo zatlačte na INT? 796 00:34:23,710 --> 00:34:26,820 Presvedčiť ma z toho. 797 00:34:26,820 --> 00:34:29,210 Čo je to hlúpe asi INT, môj nápad? 798 00:34:29,210 --> 00:34:29,871 Jo. 799 00:34:29,871 --> 00:34:31,199 >> Divákov: zaberá v pamäti viac. 800 00:34:31,199 --> 00:34:32,909 >> DAVID Malan: zaberá v pamäti viac. 801 00:34:32,909 --> 00:34:35,310 Štyri bajty, ale ty si navrhuje poštové smerovacie číslo 802 00:34:35,310 --> 00:34:39,000 ako päť bajtov, alebo niekto ako Char, ktorý sa cíti ako eh, v skutočnosti to nie je 803 00:34:39,000 --> 00:34:39,620 púzdro. 804 00:34:39,620 --> 00:34:40,489 >> No, zábava príbeh. 805 00:34:40,489 --> 00:34:43,179 Pred rokmi, keď som používal Microsoft Outlook na môj e-mail, 806 00:34:43,179 --> 00:34:45,150 Nakoniec som chcel prejsť k službe Gmail. 807 00:34:45,150 --> 00:34:48,949 A tak som sa vyváža všetky moje kontakty z Outlooku ako súbor CSV. 808 00:34:48,949 --> 00:34:50,699 Oddelené čiarkou hodnoty, čo znamenalo, že som práve 809 00:34:50,699 --> 00:34:54,060 mali všetci moji priatelia mená a posledný Mená a telefónne čísla a poštové smerovacie čísla 810 00:34:54,060 --> 00:34:54,747 a všetky, ktoré. 811 00:34:54,747 --> 00:34:56,580 A potom som robil chyba, že sa otvorí 812 00:34:56,580 --> 00:34:58,640 v Exceli, čo je tabuľkový program, ktorý 813 00:34:58,640 --> 00:35:00,289 chápe súbory CSV, ako sme videli. 814 00:35:00,289 --> 00:35:03,080 Ale potom som musel zasiahnuť, ako je, Velenie a riadenie S na jednom mieste. 815 00:35:03,080 --> 00:35:06,250 A Excel zrejme v tej dobe mal funkciu, podľa ktorého sa kedykoľvek to 816 00:35:06,250 --> 00:35:08,100 videl číslo, to sa snažil byť užitočný. 817 00:35:08,100 --> 00:35:11,610 A ak toto číslo začala nuly, to by len sa ich zbaviť. 818 00:35:11,610 --> 00:35:13,420 Prečo potrebujete vedúci nuly na celé čísla? 819 00:35:13,420 --> 00:35:15,140 Sú to nezmyselné, matematicky. 820 00:35:15,140 --> 00:35:17,530 Sú to nezmyselné v USA poštový systém. 821 00:35:17,530 --> 00:35:19,954 Takže som mal po celé roky, k tomuto dňu, stále 822 00:35:19,954 --> 00:35:22,370 mať priateľov, že keď vzácny prípad, že musím ich niekto 823 00:35:22,370 --> 00:35:24,078 riešiť v týchto dňoch, Budem stále vidieť, že ja 824 00:35:24,078 --> 00:35:26,767 mať priateľa v Cambridge, Massachusetts, 2.138. 825 00:35:26,767 --> 00:35:29,350 A je to nepríjemné, ak ste sa snaží tak nejako programovo 826 00:35:29,350 --> 00:35:30,975 generovať obálky alebo len zapisovať nadol. 827 00:35:30,975 --> 00:35:33,599 A to je z tohto dôvodu, Vybral som si zlý typ dát. 828 00:35:33,599 --> 00:35:34,490 Tak som rád váš nápad. 829 00:35:34,490 --> 00:35:35,650 Využime char poľa. 830 00:35:35,650 --> 00:35:38,340 Päť znakov, s výnimkou je rohová prípad. 831 00:35:38,340 --> 00:35:42,220 Ak si napriek tomu odosielať poštu, niekedy zips kódy v týchto dňoch, 832 00:35:42,220 --> 00:35:45,360 sú, rovnako ako plus štyri. 833 00:35:45,360 --> 00:35:48,200 Takže potrebujeme pomlčku a potom potrebujeme ďalšie štyri čísla. 834 00:35:48,200 --> 00:35:50,330 Takže aby som bol úprimný, mohlo by to go mnohými rôznymi spôsobmi. 835 00:35:50,330 --> 00:35:52,371 >> Pre túto chvíľu, budem držať to jednoduché, a ja som len 836 00:35:52,371 --> 00:35:54,780 chcel povedať, že je to Päť CHAR hodnotu a my sme 837 00:35:54,780 --> 00:35:56,739 chystá preskočiť celú pomlčka a štyri. 838 00:35:56,739 --> 00:35:58,280 Ale to sú druhy kompromisy. 839 00:35:58,280 --> 00:36:00,196 A môžete myslieť na Rovnaké problémy plynúce 840 00:36:00,196 --> 00:36:01,860 s telefónnymi číslami alebo iných oblastiach. 841 00:36:01,860 --> 00:36:04,350 >> A teraz, je to vlastne pochabé cesty ísť dole. 842 00:36:04,350 --> 00:36:08,000 Predpokladajme, ako Rob a ja a Hannah a Maria a [? Davon?] A Andy 843 00:36:08,000 --> 00:36:12,820 a iní na zamestnancov všetci žiť v Cambridge, Massachusetts, 02138. 844 00:36:12,820 --> 00:36:17,970 To skutočne cítiť hlúpe, že som pridať do môjho užívateľov tabuľky, mesto, štát, 845 00:36:17,970 --> 00:36:18,630 a zips. 846 00:36:18,630 --> 00:36:20,980 Prečo? 847 00:36:20,980 --> 00:36:21,960 >> Divákov: [Nepočuteľné] 848 00:36:21,960 --> 00:36:22,918 >> DAVID Malan: znova, povedz? 849 00:36:22,918 --> 00:36:24,310 Divákov: [Nepočuteľné] 850 00:36:24,310 --> 00:36:25,850 >> DAVID Malan: Sú to vždy ísť spolu, nie? 851 00:36:25,850 --> 00:36:28,660 Keď sa ukázalo, sme si myslieť, toto bol prípad, kým sme vyčerpávajúcom 852 00:36:28,660 --> 00:36:30,570 prehľadali celé USA, a tam sa ukáže, že 853 00:36:30,570 --> 00:36:32,653 sú niektoré nezrovnalosti kde viac miest má 854 00:36:32,653 --> 00:36:35,060 rovnaký zips, čo je trochu divné. 855 00:36:35,060 --> 00:36:40,580 Ale ak budeme stanovuje, že pre túto chvíľu 02138 je vždy Cambridge, Massachusetts, 856 00:36:40,580 --> 00:36:44,910 prečo na svete by ste uložiť do databázy Cambridge a MA a 02138 857 00:36:44,910 --> 00:36:49,357 pre mňa a pre Hannah a pre Rob a pre [? Davon?], A pre ostatných, ktorí žijú 858 00:36:49,357 --> 00:36:51,190 tu v Cambridge, je to úplne zbytočná. 859 00:36:51,190 --> 00:36:54,480 >> Mali by sme dostať preč len s uložením čo? 860 00:36:54,480 --> 00:36:55,610 Len poštové smerovacie číslo. 861 00:36:55,610 --> 00:36:58,660 Ale potom, ak budeme uchovávať len poštové smerovacie číslo, ja chcem, pravdepodobne, 862 00:36:58,660 --> 00:37:02,160 na mojich webových stránkach, aby vedeli, kde je 02.138. 863 00:37:02,160 --> 00:37:03,910 Tak som potrebovať ďalšie tabuľky. 864 00:37:03,910 --> 00:37:04,697 A to je v poriadku. 865 00:37:04,697 --> 00:37:07,530 A v skutočnosti, to je jedna z konštrukčné procesy navrhovaní tabuliek 866 00:37:07,530 --> 00:37:11,472 že budete robiť v PSet7 rovnako, pričom Ak chcete faktor spoločné dáta. 867 00:37:11,472 --> 00:37:14,430 Rovnako ako sme sa vytknutie spoločný kód a factoring von obyčajný 868 00:37:14,430 --> 00:37:17,380 štýly od CSS, tu taktiež v databáze, 869 00:37:17,380 --> 00:37:21,180 ak potrebujem len 02138 jednoznačne identifikovať niečí rodné mesto, 870 00:37:21,180 --> 00:37:25,020 neskladujte Cambridge, MA pre každý látat užívateľ v tabuľke. 871 00:37:25,020 --> 00:37:29,770 >> Namiesto toho majú samostatné tabuľky s názvom Zipsy, ktorá by mala mať čo stĺpcoch? 872 00:37:29,770 --> 00:37:33,490 Pravdepodobne ID pole, len preto, že pre zásady hovoríme teraz. 873 00:37:33,490 --> 00:37:35,720 Pravdepodobne zips pole pre 02138. 874 00:37:35,720 --> 00:37:38,400 A potom asi to, čo ostatní stĺpce? 875 00:37:38,400 --> 00:37:42,950 Mesto a štát, ale len mať jeden Riadok pre 02138, jeden riadok pre 02139, 876 00:37:42,950 --> 00:37:44,772 jeden riadok pre 90210. 877 00:37:44,772 --> 00:37:46,730 A to je doslova všetky zips kódy, ktoré poznám. 878 00:37:46,730 --> 00:37:49,012 >> Takže teraz, čo môžete robiť? 879 00:37:49,012 --> 00:37:51,220 To je problematické, pretože teraz mám dve tabuľky. 880 00:37:51,220 --> 00:37:54,660 Takže, moji užívatelia sú väčšinou tu, ale ich mestský štát informácie je 881 00:37:54,660 --> 00:37:55,390 tu. 882 00:37:55,390 --> 00:37:58,635 Tak to dopadá s SQL, je tu v skutočnosti spôsob, ako pripojiť informácie, 883 00:37:58,635 --> 00:38:00,470 a uvidíte to v pset. 884 00:38:00,470 --> 00:38:03,000 >> Ale ukazuje sa, je to možné niečo také. 885 00:38:03,000 --> 00:38:10,501 SELECT hviezda od užívateľov, JOIN zipsy ON Užívatelia dot zips rovná zipsy dot zips. 886 00:38:10,501 --> 00:38:13,360 Čo je trochu rozvláčny, pravda, ale to len 887 00:38:13,360 --> 00:38:17,590 znamená vyberte všetko od Proces vzal ma užívateľov tabuľku 888 00:38:17,590 --> 00:38:19,580 a môj zipsy stôl. 889 00:38:19,580 --> 00:38:22,120 Pridajte sa k nim na jednej Polia majú v stĺpci. 890 00:38:22,120 --> 00:38:24,780 Takže, doslova robiť niečo takto, a daj mi naspäť 891 00:38:24,780 --> 00:38:27,360 nové dočasné tabuľky To je širšia, je to väčšia, 892 00:38:27,360 --> 00:38:29,450 že má všetky stĺpce z oboch z nich. 893 00:38:29,450 --> 00:38:33,510 A to úplne jednoducho, by syntax robiť niečo také. 894 00:38:33,510 --> 00:38:35,540 >> Takže, tam je to dopredu, ale tam sa deje 895 00:38:35,540 --> 00:38:38,950 byť ďalšie rozhodnutie týkajúce sa návrhu, budete musieť urobiť, a to nielen s indexmi 896 00:38:38,950 --> 00:38:40,550 ale aj beh do problémov. 897 00:38:40,550 --> 00:38:43,360 V skutočnosti, tam je výzva v každom návrhu databázy 898 00:38:43,360 --> 00:38:47,930 pričom niekedy dvaja ľudia chcieť prístup k rovnakým radu databázy 899 00:38:47,930 --> 00:38:48,530 stôl. 900 00:38:48,530 --> 00:38:51,450 Takže, je to niečo, že budeme stretávajú v PSet7 rovnako. 901 00:38:51,450 --> 00:38:54,686 >> Ale ja som myslel, že by som sa na jednom útok, ktorý je možné v SQL. 902 00:38:54,686 --> 00:38:56,560 Aké sú niektoré z problémy, ktoré môžu nastať? 903 00:38:56,560 --> 00:38:58,170 Takže, narazíte na túto PSet7. 904 00:38:58,170 --> 00:39:01,874 A my vám povedať rovno, čo kódovanie riešenie tohto problému je. 905 00:39:01,874 --> 00:39:04,790 Ale ak budete mať vyššiu úroveň tried, najmä v operačných systémoch, 906 00:39:04,790 --> 00:39:06,950 budete sa stretnúť otázka Atomicita, 907 00:39:06,950 --> 00:39:10,080 problém sa snaží robiť viac vecí naraz 908 00:39:10,080 --> 00:39:11,000 bez prerušenia. 909 00:39:11,000 --> 00:39:14,560 >> A myslel som si, že zavedenie tohto Nápad na PSet7 s metaforou 910 00:39:14,560 --> 00:39:18,160 že som sa naučil sám v Margo Operačné systémy CS164 Seltzer sa 911 00:39:18,160 --> 00:39:18,990 trieda rokmi. 912 00:39:18,990 --> 00:39:22,230 Predpokladajme, že máte jeden z týchto koľaji chladničky vo vašej kolejním izbe alebo dome, 913 00:39:22,230 --> 00:39:24,474 a máte skutočný slabosť pre mlieko. 914 00:39:24,474 --> 00:39:27,140 A tak, prídete domov z tried jeden deň, otvorte chladničku. 915 00:39:27,140 --> 00:39:27,620 Oh, sakra. 916 00:39:27,620 --> 00:39:28,870 Nie je mlieko v chladničke. 917 00:39:28,870 --> 00:39:32,470 Takže, zatvorte chladničku, zamknúť dvere, zamknúť koľaji, 918 00:39:32,470 --> 00:39:34,770 chodiť za rohom na CVS, dostať do súladu, 919 00:39:34,770 --> 00:39:36,312 a začať odhlasovanie nejaké mlieko. 920 00:39:36,312 --> 00:39:38,978 A že to bude chvíľu trvať, pretože tie zatratenie samoobslužných pokladní 921 00:39:38,978 --> 00:39:40,570 počítadlá trvať večnosť tak ako tak použiť. 922 00:39:40,570 --> 00:39:41,950 Takže zatiaľ, váš spolubývajúci príde domov. 923 00:39:41,950 --> 00:39:43,470 On alebo ona má naozaj rada mlieko rovnako. 924 00:39:43,470 --> 00:39:45,520 Prichádzajú do izby na koľajniciach, otvoríte chladničku, ach, sakra to. 925 00:39:45,520 --> 00:39:46,490 Nie je viac mlieka. 926 00:39:46,490 --> 00:39:49,040 >> Tak, on alebo ona tiež ide za rohom. 927 00:39:49,040 --> 00:39:51,670 Ale teraz, pretože tam je ako dve alebo tri alebo štyri CVSes blízkosti, 928 00:39:51,670 --> 00:39:53,800 oni náhodou zájsť do jednej z rôzne tie na námestí. 929 00:39:53,800 --> 00:39:55,830 A tak teraz, pár minút neskôr, obaja 930 00:39:55,830 --> 00:39:58,060 prísť domov a fuj, najhoršie problém vôbec. 931 00:39:58,060 --> 00:40:00,967 Teraz máte príliš veľa mlieka pretože to bude ísť kyslé. 932 00:40:00,967 --> 00:40:03,050 A vy ako mlieko, ale vy nemajú naozaj rád mlieko. 933 00:40:03,050 --> 00:40:06,730 >> Takže teraz, to bol drahý chyba, pretože oba 934 00:40:06,730 --> 00:40:09,870 urobil rozhodnutie na základe stav nejaké premenné 935 00:40:09,870 --> 00:40:12,660 bol v procese menený vami, 936 00:40:12,660 --> 00:40:14,560 iniciátorom dostane mlieko. 937 00:40:14,560 --> 00:40:17,785 Takže, čo je možno človek riešenie tohto problému? 938 00:40:17,785 --> 00:40:18,660 Divákov: [Nepočuteľné] 939 00:40:18,660 --> 00:40:19,430 DAVID Malan: zanechať odkaz, že jo? 940 00:40:19,430 --> 00:40:21,850 Vždy nechať odkaz, ak ste zoznámiť s touto show. 941 00:40:21,850 --> 00:40:23,100 Áno, sú tam dvaja z nás. 942 00:40:23,100 --> 00:40:25,940 Takže, vždy nechať odkaz alebo doslova zámok chladničky 943 00:40:25,940 --> 00:40:28,602 s nejakou visiacim zámkom alebo niečo cez vrchol takhle. 944 00:40:28,602 --> 00:40:31,310 Ale to v skutočnosti bude Kľúčovým problémom návrhu databázy, 945 00:40:31,310 --> 00:40:34,710 najmä keď by ste mohli mať viac prehliadačov, viac notebooky, 946 00:40:34,710 --> 00:40:37,450 viac užívateľov všetci snažia aktualizujte informácie naraz. 947 00:40:37,450 --> 00:40:40,590 Obzvlášť citlivé informácie rovnako ako finančné informácie, 948 00:40:40,590 --> 00:40:43,350 čím sa obchodovanie na burze webové stránky, ako ste vy budete stavať, 949 00:40:43,350 --> 00:40:47,270 čo keď chcete skontrolovať, koľko peňazí máte, a potom, ak máte dosť, 950 00:40:47,270 --> 00:40:48,490 kúpiť nejaké akcie? 951 00:40:48,490 --> 00:40:50,899 >> Ale čo keď niekto iný, kto má spoločný účet s vami 952 00:40:50,899 --> 00:40:52,690 je zároveň snažia kúpiť nejaké akcie? 953 00:40:52,690 --> 00:40:55,190 Tak, on alebo ona je zaškrtnutím zostatok na účte, a to ako z vás 954 00:40:55,190 --> 00:40:57,540 dostať späť rovnaká odpoveď, nie je mlieko. 955 00:40:57,540 --> 00:41:00,580 Alebo vás oboch dostať späť odpoveď, Máte $ 100 na účte. 956 00:41:00,580 --> 00:41:04,680 Obaja ste sa snažiť, aby rozhodnutie kúpiť jeden podiel na nejakú spoločnosť sklade. 957 00:41:04,680 --> 00:41:06,130 >> A teraz, čo sa stane? 958 00:41:06,130 --> 00:41:07,140 Máte dve akcie? 959 00:41:07,140 --> 00:41:08,420 Nemáte žiadne akcie? 960 00:41:08,420 --> 00:41:10,320 Problémy, ako je, že môžu nastať. 961 00:41:10,320 --> 00:41:11,755 Takže, budeme stretnúť to. 962 00:41:11,755 --> 00:41:14,630 SQL injection útoky, našťastie, sú niečo, čo ti pomôže s, 963 00:41:14,630 --> 00:41:17,430 ale to sú ukrutne časté v týchto dňoch v pokoji. 964 00:41:17,430 --> 00:41:18,680 Tak, toto je len príklad. 965 00:41:18,680 --> 00:41:21,290 Robím, že žiadne nároky Systém Harvard PIN je 966 00:41:21,290 --> 00:41:23,130 náchylné k tejto konkrétnej útoku. 967 00:41:23,130 --> 00:41:24,160 My sme sa snažili. 968 00:41:24,160 --> 00:41:26,120 Ale, viete, že my majú polia, ako je tento. 969 00:41:26,120 --> 00:41:29,620 A Yaleův Net ID je podobný sa obrazovky v týchto dňoch. 970 00:41:29,620 --> 00:41:33,190 A ukázalo sa, že možno Systémový PIN je implementovaný v jazyku PHP. 971 00:41:33,190 --> 00:41:37,050 >> A ak to were-- to ne-- oni môže mať kód, ktorý vyzerá takto. 972 00:41:37,050 --> 00:41:38,210 Majú dve premenné. 973 00:41:38,210 --> 00:41:42,495 Daj mi užívateľské meno a heslo od Odoslať Super globálne premenné 974 00:41:42,495 --> 00:41:43,970 že sme hovorili o skôr. 975 00:41:43,970 --> 00:41:47,310 Možno, že Harvard má dotaz ako SELECT hviezda od užívateľov 976 00:41:47,310 --> 00:41:50,005 kde username rovná a heslo, ktoré sa rovná. 977 00:41:50,005 --> 00:41:51,880 A všimnite si, že som len zapojenie do zásuvky s použitím 978 00:41:51,880 --> 00:41:55,050 Kučeravý ortéza zápis z druhého deň, čo znamená, že stačí pripojiť k hodnote 979 00:41:55,050 --> 00:41:55,550 sem. 980 00:41:55,550 --> 00:41:57,449 Nie som pomocou otáznik technika. 981 00:41:57,449 --> 00:41:59,240 Nemám žiadnu sekundu alebo tretí argument. 982 00:41:59,240 --> 00:42:02,350 Som doslova konštrukciu reťazec sám. 983 00:42:02,350 --> 00:42:04,930 >> Problémom však je, že ak niekto páči scroob, 984 00:42:04,930 --> 00:42:09,020 čo je odkaz na film, prihlási s niečím, ako je toto, 985 00:42:09,020 --> 00:42:11,250 a ja som odstránil bodky ktoré obvykle zakryť 986 00:42:11,250 --> 00:42:14,370 heslá, čo ak je obzvlášť škodlivý 987 00:42:14,370 --> 00:42:18,860 a jeho heslo možno je 12345, na filme s názvom "Spaceballs," 988 00:42:18,860 --> 00:42:21,970 ale kriticky Typy A apostrof po piatich, 989 00:42:21,970 --> 00:42:24,790 potom doslova slovo alebo v priestore, a potom citovať, 990 00:42:24,790 --> 00:42:29,160 koniec citátu jedna rovná sa citovať, ale všimnete, že je vynechaná, čo? 991 00:42:29,160 --> 00:42:32,700 On vynechal citát na pravej strane a on vynechal cenovú ponuku na ľavej strane. 992 00:42:32,700 --> 00:42:35,170 >> Pretože ak to útočník scroob je domnienka 993 00:42:35,170 --> 00:42:38,160 je to, že ľudia, ktorí písali tento PHP kód tak nebolo jasné, 994 00:42:38,160 --> 00:42:42,990 Možno, že jednoducho majú nejaké single cituje okolo interpolácia 995 00:42:42,990 --> 00:42:45,210 premenné do zložených zátvoriek? 996 00:42:45,210 --> 00:42:48,620 A tak možno, dokázal láskavý z dokončiť svoje myšlienky 997 00:42:48,620 --> 00:42:53,290 pre nich, ale takým spôsobom, že sa deje ho nechať nabúral do systému PIN. 998 00:42:53,290 --> 00:42:55,310 Inými slovami, predpokladajme, že že sa jedná o kód 999 00:42:55,310 --> 00:42:57,140 a my sa teraz pripojiť, čo scroob zadali. 1000 00:42:57,140 --> 00:42:58,770 A je to červené, pretože je to zlé. 1001 00:42:58,770 --> 00:43:01,310 >> A základné znenia je to, čo napísal v, 1002 00:43:01,310 --> 00:43:05,510 scroob mohla oklamať servera Harvarde do budovania SQL dotazu 1003 00:43:05,510 --> 00:43:07,440 reťazec, ktorý vyzerá takto. 1004 00:43:07,440 --> 00:43:11,760 Heslo sa rovná 12345 alebo jeden rovný jednej. 1005 00:43:11,760 --> 00:43:14,820 Výsledok, ktorý logicky, je, že tento sa prihlási scroob 1006 00:43:14,820 --> 00:43:18,360 V ak je jeho heslo 12345 alebo ak jedna rovná 1007 00:43:18,360 --> 00:43:22,660 raz, čo je samozrejme vždy pravdivé, čo znamená, že scroob vždy dostane. 1008 00:43:22,660 --> 00:43:26,060 >> A tak, ako opraviť to, ako je v mnohých prípadoch, 1009 00:43:26,060 --> 00:43:28,140 by bolo písať viac defenzívne. 1010 00:43:28,140 --> 00:43:30,390 Ak chcete použiť niečo ako naše Skutočná funkcia dotazu, ktorý 1011 00:43:30,390 --> 00:43:33,980 uvidíte v PSet7, kde sme Plug In niečo ako otázniky tu. 1012 00:43:33,980 --> 00:43:35,980 A krása Funkcie dotaz, ktorý sme 1013 00:43:35,980 --> 00:43:40,010 dať, je, že bráni proti nim tzv SQL injection útoky, kde 1014 00:43:40,010 --> 00:43:44,260 niekto podvádzať kód do vstrekovanie svoj vlastný kód SQL. 1015 00:43:44,260 --> 00:43:47,380 Pretože to, čo funkcia dotazu dáme vám bude vlastne robiť, 1016 00:43:47,380 --> 00:43:51,270 ak použijete syntax otáznik a druhý a tretí argument tu, 1017 00:43:51,270 --> 00:43:54,590 je to, čo sa to pridať do vstup, ktorý užívateľ poskytované? 1018 00:43:54,590 --> 00:43:56,060 Tí, spätné lomítko cituje. 1019 00:43:56,060 --> 00:43:58,590 >> Takže, je to uniká akýkoľvek potenciálne nebezpečné znaky. 1020 00:43:58,590 --> 00:44:01,000 To teraz vyzerá divne, ale nie je to zraniteľný 1021 00:44:01,000 --> 00:44:03,260 pretože to nie je zmeniť logiku už 1022 00:44:03,260 --> 00:44:06,470 pretože to je celé heslo Teraz jediný citát, že to nie je, 1023 00:44:06,470 --> 00:44:07,596 v skutočnosti, scroob heslo. 1024 00:44:07,596 --> 00:44:09,845 Takže, tam bolo nejaké vtipy o tom v priebehu rokov. 1025 00:44:09,845 --> 00:44:12,570 Takže to bola fotografia urobená niektorých poleno na parkovisku 1026 00:44:12,570 --> 00:44:16,620 kedy by ste mohli vedieť, že niektoré mestá a štáty snažia skenovať licencie 1027 00:44:16,620 --> 00:44:19,460 doska sa vám alebo lístky účtovať vám Prejdete Ak bez, rovnako ako, 1028 00:44:19,460 --> 00:44:20,660 vec E-Z priesmyk. 1029 00:44:20,660 --> 00:44:24,490 Takže, tento človek predpokladal, že možno ľudia písanie systém E-Z pass 1030 00:44:24,490 --> 00:44:28,240 neboli tak jasné, a možno, že Len spojenie spoločne reťazec, 1031 00:44:28,240 --> 00:44:32,190 tak, že on alebo ona nemohla zlomyseľne nie len dokončiť ich myslenia, 1032 00:44:32,190 --> 00:44:35,150 ale v skutočnosti spustiť zlý príkaz, ktoré sme doteraz nie je uvedené, 1033 00:44:35,150 --> 00:44:36,380 ale asi tušíte. 1034 00:44:36,380 --> 00:44:39,820 Že okrem odstrániť, a vložiť a aktualizovať a vyberte, 1035 00:44:39,820 --> 00:44:43,370 tam je tiež kľúčové slovo volal pokles, čo doslova vymaže všetko 1036 00:44:43,370 --> 00:44:45,300 v databáze, ktorá je obzvlášť zlé. 1037 00:44:45,300 --> 00:44:48,760 >> Môžeme sa priblížiť, ak je to trochu ťažké vidieť. 1038 00:44:48,760 --> 00:44:52,300 To teraz, je slávny karikatúra to je teraz úžasne šikovný 1039 00:44:52,300 --> 00:44:53,145 a zrozumiteľné. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [SMIECH] 1042 00:45:04,750 --> 00:45:05,910 >> Jo, v pohode. 1043 00:45:05,910 --> 00:45:06,800 Druh geeking von. 1044 00:45:06,800 --> 00:45:08,800 Takže tieto sú teda SQL injection útoky. 1045 00:45:08,800 --> 00:45:13,050 A oni sú tak jednoduché, vyhnúť použitím správny kód alebo právo knižnice. 1046 00:45:13,050 --> 00:45:15,947 A uvidíte v PSet7, to je Preto sme vám funkciu dotazu. 1047 00:45:15,947 --> 00:45:17,780 Takže, pár oriešky že sme si mysleli by sme sa 1048 00:45:17,780 --> 00:45:19,930 dať tu v našej Zostávajúce minúty dohromady. 1049 00:45:19,930 --> 00:45:24,030 Takže, ako si pamätáte z týždňa nula, my predstavil tieto dve žiarovky, ktoré 1050 00:45:24,030 --> 00:45:26,610 sú pekné, nielen preto, že sú to celkom a sú farebné, 1051 00:45:26,610 --> 00:45:29,450 ale preto, že podporujú niečo volal API, aplikácie, 1052 00:45:29,450 --> 00:45:31,980 Programming Interface A v CS50 tak ďaleko, máme 1053 00:45:31,980 --> 00:45:34,440 zameriavajúce sa predovšetkým na GET a POST, ale ukázalo sa, 1054 00:45:34,440 --> 00:45:37,390 je tu ďalšie akcie protokolu HTTP, ako sú PUT. 1055 00:45:37,390 --> 00:45:39,430 >> A v skutočnosti, to bolo snímka z týždňa nula 1056 00:45:39,430 --> 00:45:44,930 pričom keď píšete kód, ktorý pošle a la PSet6 požiadavku HTTP, ktorý 1057 00:45:44,930 --> 00:45:49,647 vyzerá to s týmto kusom textu v spodnej časti, ktorá sa nazýva JSON, 1058 00:45:49,647 --> 00:45:52,230 alebo JavaScript Object Notation že budeme hovoriť o budúci týždeň, 1059 00:45:52,230 --> 00:45:57,030 môžete zapnúť alebo vypnúť alebo zmeniť farba svetla, ako sú tie. 1060 00:45:57,030 --> 00:46:00,480 Takže v prípade, CS50 má tiež okrem niektorých z týchto žiaroviek tu v New Haven 1061 00:46:00,480 --> 00:46:02,480 ak by ste chceli požičať je pre finálnu projekty, 1062 00:46:02,480 --> 00:46:04,370 aj niektoré Microsoft Kapely, ktoré sú ako 1063 00:46:04,370 --> 00:46:07,619 hodinky, ktoré budete nosiť okolo zápästia že podobne majú tak, že ste API 1064 00:46:07,619 --> 00:46:10,040 môžete napísať svoj vlastný softvér pre nich. 1065 00:46:10,040 --> 00:46:12,490 >> Máme účet Apple iOS kód tak, 1066 00:46:12,490 --> 00:46:15,510 že ak máte Apple Watch alebo iPhone alebo iPad alebo iPod, 1067 00:46:15,510 --> 00:46:17,707 môžete písať kód, ktorý v skutočnosti beží na nich. 1068 00:46:17,707 --> 00:46:19,540 Máme veľa z Arduinos, ktoré sú 1069 00:46:19,540 --> 00:46:22,010 malinké počítače bez prípadoch, v podstate, 1070 00:46:22,010 --> 00:46:25,240 že môžete pripojiť cez USB port, typicky do svojho PC alebo Mac, 1071 00:46:25,240 --> 00:46:28,810 napísať kód, ktorý beží na tieto fyzické zariadenia, ktoré majú často senzory na nich 1072 00:46:28,810 --> 00:46:30,790 takže môžete komunikovať s reálnym svetom. 1073 00:46:30,790 --> 00:46:32,860 Máme veľa z Leap Motion zariadení, 1074 00:46:32,860 --> 00:46:36,500 ktoré sú USB zariadenia pre Macy a PC, tu a opäť v New Haven. 1075 00:46:36,500 --> 00:46:40,080 A keď ho pripojíte k počítaču Mac, môžete skutočne ovládať svoj počítač 1076 00:46:40,080 --> 00:46:42,550 písaním softvér že prostredníctvom infračervených lúčov, 1077 00:46:42,550 --> 00:46:46,360 zistí, kde sa vaše ľudské ruky, a to aj bez dotyku klávesnice. 1078 00:46:46,360 --> 00:46:49,135 Mysleli sme, že podeliť rýchly zahliadneme na to, napríklad. 1079 00:46:49,135 --> 00:46:51,428 >> [Prehrávanie hudby] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Takže, máme celý banda z týchto vecí, 1082 00:47:57,590 --> 00:48:01,040 Tiež volal Myo rameno kapely ktorý ste dal cez predlaktie 1083 00:48:01,040 --> 00:48:04,595 a potom môžete kontrolovať skutočný world alebo virtuálny svet, ako je tento. 1084 00:48:04,595 --> 00:48:06,471 >> [Prehrávanie hudby] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Alebo, máme aj nejaké Google Kartón, ktorý je doslova, ako, 1087 00:49:20,920 --> 00:49:24,841 lepenková krabica by ste mohli dať na vašom tvár, ale snímku vo vašom telefóne do nej 1088 00:49:24,841 --> 00:49:27,590 takže si dal pohár vášho telefón naozaj blízko očí. 1089 00:49:27,590 --> 00:49:30,190 A Google je kartón celkom lacné na $ 10 alebo $. 20 1090 00:49:30,190 --> 00:49:32,230 A to má len málo šošovky že mierne mimo smenu 1091 00:49:32,230 --> 00:49:35,900 obraz na obrazovke vášho človeka oči, aby vám pocit hĺbky 1092 00:49:35,900 --> 00:49:39,550 takže ste skutočne 3D prostredie pred vami. 1093 00:49:39,550 --> 00:49:42,927 Máme tiež nejaké Samsung Gear, ktorý je drahšia verzia tohto, 1094 00:49:42,927 --> 00:49:46,010 ale že môžu kĺzať podobne An Android telefón a dá vám ilúziu 1095 00:49:46,010 --> 00:49:48,309 of-- alebo dať zážitok virtuálnej reality. 1096 00:49:48,309 --> 00:49:50,850 A v našich konečných dvoch minút, sme si mysleli, že sme si vyskúšať, ako to urobiť. 1097 00:49:50,850 --> 00:49:55,250 Keď sa mi podarí premietnuť to, čo má Colton tu len preto, aby povzbudiť chuť k jedlu, 1098 00:49:55,250 --> 00:49:58,442 nechaj ma ísť dopredu a hádzať up na veľkej obrazovke tu. 1099 00:49:58,442 --> 00:49:59,400 Dovoľte mi, aby som zabil svetla. 1100 00:49:59,400 --> 00:50:02,290 Colton, chcete pokračovať a dať na svoje cely na chvíľu 1101 00:50:02,290 --> 00:50:05,171 a prísť na viac ako na uprostred javiska? 1102 00:50:05,171 --> 00:50:07,420 A chcete project-- to je to, čo vidí Colton. 1103 00:50:07,420 --> 00:50:10,560 >> Teraz, Wi-Fi tu je nie tak silný pre toto zariadenie 1104 00:50:10,560 --> 00:50:13,870 že to je super presvedčivé, ale Colton je doslova 1105 00:50:13,870 --> 00:50:15,710 V tomto magickom futuristické mieste. 1106 00:50:15,710 --> 00:50:16,796 On vidí iba jeden obrázok. 1107 00:50:16,796 --> 00:50:19,920 Tie sú vidieť jeho ľavej a pravé oko že jeho mozog sa sflikovanou 1108 00:50:19,920 --> 00:50:22,260 v trojrozmerný prostredie na tvári. 1109 00:50:22,260 --> 00:50:24,319 Len vybraná možnosť ponuky tu. 1110 00:50:24,319 --> 00:50:27,360 A tak znovu, má na sebe tieto slúchadlá s telefónom Samsung na to, že je 1111 00:50:27,360 --> 00:50:29,080 bezdrôtovo vyčnievajúce do našej réžii. 1112 00:50:29,080 --> 00:50:30,349 Teraz ste na Marse, myslím, že? 1113 00:50:30,349 --> 00:50:31,140 COLTON: Myslím, že áno. 1114 00:50:31,140 --> 00:50:32,181 Nie som si istý, [nepočuteľných]. 1115 00:50:32,181 --> 00:50:34,250 [SMIECH] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID Malan: Ukázalo sa, že Mars má týchto ponúk. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [Nepočuteľné] nejaké chladné miesta, ak chceme ísť to-- 1118 00:50:41,590 --> 00:50:43,330 >> DAVID Malan: Kam chceš ísť? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [Nepočuteľné] 1120 00:50:45,837 --> 00:50:48,170 DAVID Malan: A poďme sa pozrieť kde Colton sa nám pri teraz. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [Nepočuteľné] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID Malan: Takže, je tu toľko rôznych miestach si môžete vziať sami. 1124 00:50:56,380 --> 00:51:00,590 Je tu FAPIs, cez ktoré si môžete písať hry alebo interakcie, ktoré 1125 00:51:00,590 --> 00:51:01,950 beh, v konečnom dôsledku, na telefóne. 1126 00:51:01,950 --> 00:51:03,908 Takže ste naozaj len písanie telefónne aplikácie mobilný. 1127 00:51:03,908 --> 00:51:06,380 Ale vďaka softvéru a schopnosti grafika, 1128 00:51:06,380 --> 00:51:08,765 Teraz Colton je v tomto maličký chata. 1129 00:51:08,765 --> 00:51:10,515 A na riziko ohromujúci sami, 1130 00:51:10,515 --> 00:51:13,330 Colton a budem držať okolo pre zatiaľ čo na konci triedy tu dnes 1131 00:51:13,330 --> 00:51:14,300 ak by ste chceli prísť a hrať. 1132 00:51:14,300 --> 00:51:16,350 A budeme priviesť späť budúci týždeň rovnako. 1133 00:51:16,350 --> 00:51:18,420 Bez ďalšieho, ado to je pre dnešok všetko. 1134 00:51:18,420 --> 00:51:21,990 Uvidíme sa budúci týždeň. 1135 00:51:21,990 --> 00:51:24,140 >> [MUSIC - ragga TWINS, "BAD MAN"] 1136 00:51:24,140 --> 00:55:23,146