1 00:00:00,000 --> 00:00:02,405 >> [Muusika mängib] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVID Humala: Olgu, see on CS50. 4 00:00:11,980 --> 00:00:13,740 See on lõpuks nädalas kaheksa. 5 00:00:13,740 --> 00:00:15,887 Ja täna me alustame täita mõned tükid 6 00:00:15,887 --> 00:00:17,720 kui tegemist on hoone asju veebis. 7 00:00:17,720 --> 00:00:20,020 Nii, meenutan, et esmaspäeval me kulutame palju aega 8 00:00:20,020 --> 00:00:22,530 PHP, mis on selle dünaamilise programmeerimiskeel, mis 9 00:00:22,530 --> 00:00:26,872 laseb meil väljund, muu hulgas asju, HTML ja muud sellist sisu 10 00:00:26,872 --> 00:00:27,830 et me tahame näha. 11 00:00:27,830 --> 00:00:30,871 Aga me ei ole tõesti vaadeldi me ei kavatse hoida mingit teavet. 12 00:00:30,871 --> 00:00:34,477 Tõepoolest, peaaegu keegi, et super huvitav külastatavate veebisaitide täna 13 00:00:34,477 --> 00:00:36,560 on mingi andmebaasi kolp, eks? 14 00:00:36,560 --> 00:00:39,540 Facebook kindlasti salvestab palju andmeid umbes meile kõigile ja Gmail kauplustes kõik 15 00:00:39,540 --> 00:00:40,210 teie kirju. 16 00:00:40,210 --> 00:00:44,150 >> Ja nii paljud teised saidid ei ole ainult staatiline sisu on informatiivne. 17 00:00:44,150 --> 00:00:45,640 See on tegelikult dünaamiline mingil moel. 18 00:00:45,640 --> 00:00:48,480 Sa anda oma panus, seda ajakohastatakse lehed teisi inimesi. 19 00:00:48,480 --> 00:00:50,620 Saad sõnumeid saata sõnumeid, ja nii edasi. 20 00:00:50,620 --> 00:00:54,250 Nii et täna me vaatame lähemalt tuginemine projekti 21 00:00:54,250 --> 00:00:57,330 et sa sukelduda järgmine nädalas, CS50 Finance, mis 22 00:00:57,330 --> 00:01:00,509 tegelikult läheb on sul ehitada midagi ei C, kuid PHP. 23 00:01:00,509 --> 00:01:02,550 Kodulehel mis näeb välja natuke midagi sellist 24 00:01:02,550 --> 00:01:05,810 mis võimaldab osta ja müüa varud, mis on tegelikult 25 00:01:05,810 --> 00:01:09,044 läheb lähtuda reaalajas varude andmeid Yahoo Finance. 26 00:01:09,044 --> 00:01:11,960 Ja nii lõpuks, on teil illusiooni enda ja kasutajad 27 00:01:11,960 --> 00:01:14,550 mis sa tegelikult ostavad ja müüvad varud ja saada peaaegu reaalajas 28 00:01:14,550 --> 00:01:16,800 uuendused, haldamise portfelli, mis kõik 29 00:01:16,800 --> 00:01:20,310 läheb vaja võttes, lõpuks andmebaasi kasutajatele. 30 00:01:20,310 --> 00:01:23,330 >> Niisiis, oma sõnadega, eriti kui sa ei ole 31 00:01:23,330 --> 00:01:25,670 super tuttav arvuti teaduse ja andmebaasid, mida 32 00:01:25,670 --> 00:01:30,790 sa tead andmebaasis olevat just nüüd, aastal nontechnical mõttes? 33 00:01:30,790 --> 00:01:32,300 Mis on? 34 00:01:32,300 --> 00:01:36,882 Kuidas te kirjeldaksite seda to toakaaslane või sõber? 35 00:01:36,882 --> 00:01:40,100 >> Sihtrühm: [kuuldamatu] info [kuuldamatu] 36 00:01:40,100 --> 00:01:44,430 >> DAVID Humala: Nii, andmete loetelu, või store-- andmete loetelu 37 00:01:44,430 --> 00:01:47,160 et võiksite salvestada midagi, nagu kasutaja. 38 00:01:47,160 --> 00:01:50,190 Ja mida teha on kasutajad nendega? 39 00:01:50,190 --> 00:01:53,160 Kui oled kasutaja Facebook või Gmail, millised on omadused 40 00:01:53,160 --> 00:01:54,940 et me kõik kasutajad on? 41 00:01:54,940 --> 00:01:58,530 Like, milline võiks olla mõned veergude tabelit, mis me 42 00:01:58,530 --> 00:01:59,390 vihjas viimasel ajal? 43 00:01:59,390 --> 00:02:01,140 Sest jälle, saate arvan andmebaasi 44 00:02:01,140 --> 00:02:05,810 tõesti nagu väljamõeldud Excel fail või Google Töövihik või Apple Numbers faili. 45 00:02:05,810 --> 00:02:08,280 >> Niisiis, mida sa arvad kui sa arvad kasutaja? 46 00:02:08,280 --> 00:02:11,290 Mida nad on? 47 00:02:11,290 --> 00:02:11,790 Mis see on? 48 00:02:11,790 --> 00:02:12,470 >> Sihtrühm: Nimi. 49 00:02:12,470 --> 00:02:13,303 >> DAVID Humala: Nimi. 50 00:02:13,303 --> 00:02:16,840 Nii et kui nimi, nagu, David Humala Oleks nimi mõne kasutaja. 51 00:02:16,840 --> 00:02:17,980 Mida peaks veel kasutaja on? 52 00:02:17,980 --> 00:02:18,770 >> Sihtrühm: ID-. 53 00:02:18,770 --> 00:02:19,561 >> DAVID Humala: ID-. 54 00:02:19,561 --> 00:02:23,320 Nii, nagu identifitseerimisnumber, nagu oma Harvard ID või oma Yale Net ID vms. 55 00:02:23,320 --> 00:02:24,923 Mida võib kasutaja olla? 56 00:02:24,923 --> 00:02:25,890 >> Sihtrühm: Password. 57 00:02:25,890 --> 00:02:29,240 >> DAVID Humala: Parooli võibolla aadress, võibolla telefoni number, võibolla 58 00:02:29,240 --> 00:02:30,050 E-posti aadressi. 59 00:02:30,050 --> 00:02:32,640 Niisiis, seal on kobarad väljad ja selle võiks mingi spiraal väljub kontrolli alt 60 00:02:32,640 --> 00:02:34,760 kiiresti niipea kui hakkate mõistes, oh, olgem hoidke 61 00:02:34,760 --> 00:02:36,190 ja olgem hoidke seda ja teist. 62 00:02:36,190 --> 00:02:37,657 >> Aga kuidas me tegelikult seda tegema? 63 00:02:37,657 --> 00:02:39,740 Nii jälle, vaimse mudel on täna, kui me 64 00:02:39,740 --> 00:02:42,320 sukelduda tegelik SQL, Structured Query Language, 65 00:02:42,320 --> 00:02:44,186 on andmebaas, mis näeb välja selline. 66 00:02:44,186 --> 00:02:45,310 See on lihtsalt ridu ja veerge. 67 00:02:45,310 --> 00:02:48,309 Ja te võite ette kujutada, Google Spreadsheets või mitmeid teisi programme. 68 00:02:48,309 --> 00:02:52,130 Aga mis peamine umbes MySQL, mis on andmebaasitarkvara me ei kavatse kasutada, 69 00:02:52,130 --> 00:02:54,920 vabalt avalikult available-- Facebook kasutab 70 00:02:54,920 --> 00:02:59,200 see ja ükskõik kui palju muid websites-- Andmebaasis salvestatakse asju relationally. 71 00:02:59,200 --> 00:03:01,770 Ja relatsioonandmebaasile tähendab lihtsalt üks, mis sõna otseses mõttes 72 00:03:01,770 --> 00:03:03,672 salvestab oma andmed ridade ja veergudena. 73 00:03:03,672 --> 00:03:04,630 See on nii lihtne see ongi. 74 00:03:04,630 --> 00:03:07,230 >> Seega, isegi midagi Oracle, et sa võisid üldiselt kuulnud 75 00:03:07,230 --> 00:03:08,271 on relatsiooniline andmebaas. 76 00:03:08,271 --> 00:03:10,929 Ja all kapuuts, see salvestab andmed ridade ja veergude. 77 00:03:10,929 --> 00:03:12,970 Ja Oracle laeb Teile palju raha, et seda teha, 78 00:03:12,970 --> 00:03:15,550 samas MySQL maksud te midagi sama. 79 00:03:15,550 --> 00:03:18,790 Nii, SQL läheb meile vähemalt neli tegevust. 80 00:03:18,790 --> 00:03:23,190 Võime valida andmeid, nagu lugeda andmed, lisada, kustutada ja uuendada andmeid. 81 00:03:23,190 --> 00:03:25,525 Teisisõnu, need on tõesti neli peamist tegevust 82 00:03:25,525 --> 00:03:28,950 et ei kavatse võimaldab meil muuta kraami need read ja veerud. 83 00:03:28,950 --> 00:03:33,250 >> Vahend, mis me kasutame tänapäeval eriti õppida SQL ja mängida seda 84 00:03:33,250 --> 00:03:34,627 jälle nimetatakse PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 See on veebipõhine vahend. 86 00:03:35,460 --> 00:03:38,200 Kokku juhus, et see on kirjutatud PHP. 87 00:03:38,200 --> 00:03:42,400 Aga see läheb meile graafiline kasutajaliides, nii et me saame tegelikult 88 00:03:42,400 --> 00:03:46,054 luua nende ridade ja veergude ja siis räägi nendega kaudu koodi. 89 00:03:46,054 --> 00:03:47,970 Niisiis, olgem nüüd hakkavad ma arvan, et on ausalt öeldes 90 00:03:47,970 --> 00:03:51,000 selline lõbus protsess hoone tagaosas veebilehed, 91 00:03:51,000 --> 00:03:54,580 osad, et kasutajad ei näha, kuid kindlasti hoolivad, 92 00:03:54,580 --> 00:03:56,170 sest see on pigem andmed on läheb. 93 00:03:56,170 --> 00:03:59,570 Niisiis, sarnaseid C ja Veidi vähem nagu PHP, 94 00:03:59,570 --> 00:04:04,954 SQL või andmebaasi, mis toetab SQL, on vähemalt need andmetüübid 95 00:04:04,954 --> 00:04:05,870 ja kobarad teised. 96 00:04:05,870 --> 00:04:08,107 CHAR, varchar, INT, BIGINT, DECIMAL ja DATETIME. 97 00:04:08,107 --> 00:04:09,940 Ja seal on terve hunnik muid funktsioone, 98 00:04:09,940 --> 00:04:11,940 kuid teeme seda viis tegeliku näiteks. 99 00:04:11,940 --> 00:04:16,450 >> Ma lähen minema CS50 IDE Kui eelnevalt olen sisse logitud 100 00:04:16,450 --> 00:04:19,372 ja ma olen ka käinud URL Selle tööriista nimega PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 Ja probleem pani seitse, me ütleme teile täpselt, kuidas saada, et see liides 102 00:04:22,580 --> 00:04:23,200 samuti. 103 00:04:23,200 --> 00:04:25,640 On the top vasakus nurgas, märka seda ütleb loengu. 104 00:04:25,640 --> 00:04:27,610 Ja see tähendab lihtsalt, et ette, ma lõin 105 00:04:27,610 --> 00:04:31,360 tühja andmebaasi nimega loengu et ei ole tabeleid seda veel. 106 00:04:31,360 --> 00:04:32,600 Pole ridu ja veerge. 107 00:04:32,600 --> 00:04:34,308 Kuna esimene asi, mida me teeme 108 00:04:34,308 --> 00:04:37,100 on alustada luua tabel et läheb salvestada meie kasutajatele. 109 00:04:37,100 --> 00:04:39,100 >> Niisiis, sõna otseses mõttes üle siin õigus, ma olen 110 00:04:39,100 --> 00:04:42,070 ütlen andmebaasis Ma tahan tabelis pealkirjaga kasutajad. 111 00:04:42,070 --> 00:04:44,845 Nii, see on nagu fail, et ma soovite salvestada kõik oma andmed. 112 00:04:44,845 --> 00:04:45,720 Ja kui palju veerge? 113 00:04:45,720 --> 00:04:47,740 Noh, olgem hoida lihtsa nüüd. 114 00:04:47,740 --> 00:04:51,855 Ma tahan, et hoida nagu kasutajanimi ja nimi kasutaja. 115 00:04:51,855 --> 00:04:53,020 Hakkame väike. 116 00:04:53,020 --> 00:04:55,370 Niisiis, ma tahan kahte tulpa kokku. 117 00:04:55,370 --> 00:04:57,360 Ja ma lähen edasi minna ja klõpsake Mine. 118 00:04:57,360 --> 00:04:59,210 Ja siis, et need veerud, mida ma lähen 119 00:04:59,210 --> 00:05:04,576 to do-- kui see internet cooperates-- kõik korras, 120 00:05:04,576 --> 00:05:05,950 nii et me läheme proovida seda uuesti. 121 00:05:05,950 --> 00:05:09,180 Ma lähen luua tabel nimega Kasutajad, kellel on kaks veergu, klõpsake Go, OK. 122 00:05:09,180 --> 00:05:10,520 Nüüd on meil see väga kiiresti. 123 00:05:10,520 --> 00:05:12,065 Aitäh, väga hästi tehtud. 124 00:05:12,065 --> 00:05:14,440 Olgu, nii et mida me tahame need sambad, mida nimetatakse? 125 00:05:14,440 --> 00:05:16,080 >> Niisiis, üks läheb nimetada kasutajanime. 126 00:05:16,080 --> 00:05:19,480 Niisiis, kõik, mida ma näha siin-- ja kasutajaliides ausalt öeldes saab natuke inetu lõpuks, 127 00:05:19,480 --> 00:05:21,270 kui hakkate kirjutama kõik need andmed. 128 00:05:21,270 --> 00:05:27,450 Aga mis on tore, et omamoodi paradoksaalselt ma loon sambad, 129 00:05:27,450 --> 00:05:29,977 kuid näitaja on mõistmatult panid välja rida 130 00:05:29,977 --> 00:05:31,560 nii et ma ei saa seadistada need sambad. 131 00:05:31,560 --> 00:05:33,550 Niisiis, seal on kaks tühikud seal nime all. 132 00:05:33,550 --> 00:05:36,180 Ja üks nendest valdkondadest ma tahan nimetatakse kasutajanime, 133 00:05:36,180 --> 00:05:38,000 ja muus valdkonnas tahan helistada nimi. 134 00:05:38,000 --> 00:05:40,340 >> Ja nüüd on mul valida andmetüübid neid asju. 135 00:05:40,340 --> 00:05:42,330 Nii, et Excelis ja Google arvutustabeleid 136 00:05:42,330 --> 00:05:45,531 Kui soovite veerus, siis sõna otseses mõttes kirjuta nimi või kasutajanime, Enter. 137 00:05:45,531 --> 00:05:48,030 Äkki oleks rasvases kirjas lihtsalt selguse, kuid see on kõik. 138 00:05:48,030 --> 00:05:50,140 Sa ei täpsustata tüüpi veerud. 139 00:05:50,140 --> 00:05:53,790 Nüüd Google tabelites või Excel, siis võiks täpsustada, kuidas andmed on muutunud. 140 00:05:53,790 --> 00:05:58,120 Sa võid minna Format menüüst, ja sa saab määrata näidata nagu dollari märk, 141 00:05:58,120 --> 00:05:59,900 näidata nagu Murdarv. 142 00:05:59,900 --> 00:06:01,990 >> Nii, see on sarnase sisuga et see, mida me parasjagu teeme, 143 00:06:01,990 --> 00:06:04,740 kuid see on tegelikult sunni Andmed, mis tuleb teatud tüüpi. 144 00:06:04,740 --> 00:06:07,750 Nüüd, kuigi hetk tagasi ma ütles seal ainult paar tüüpi andmeid, 145 00:06:07,750 --> 00:06:11,120 seal on tegelikult palju, ja nad 146 00:06:11,120 --> 00:06:12,910 erineval määral konkreetsus. 147 00:06:12,910 --> 00:06:14,970 Ja kui kõrvale, siis Võib isegi teha fancy asju 148 00:06:14,970 --> 00:06:17,520 nagu ladustamine geomeetriale sees andmebaasis. 149 00:06:17,520 --> 00:06:19,250 Saate salvestada asju nagu GPS koordinaadid 150 00:06:19,250 --> 00:06:22,420 ja tegelikult leida, matemaatiliselt, punktid, mis on lähedane teised. 151 00:06:22,420 --> 00:06:24,128 Aga me ei kavatse hoida seda super lihtne 152 00:06:24,128 --> 00:06:26,800 ja minge siin kõik niinimetatud string tüüpi. 153 00:06:26,800 --> 00:06:29,240 >> Niisiis, siin on nimekiri, mis terve hulk võimalusi. 154 00:06:29,240 --> 00:06:32,740 CHAR, varchar, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 Ja see on selline suur. 156 00:06:34,110 --> 00:06:37,610 Ja kahjuks mõnevõrra paradoksaalselt C, 157 00:06:37,610 --> 00:06:40,120 char ei ole tegelikult CHAR. 158 00:06:40,120 --> 00:06:44,170 Kui määrate andmebaasis et teie andmed tüüp on CHAR, 159 00:06:44,170 --> 00:06:47,390 see tähendab, et jah, see on CHAR, kuid see on üks või mitu Paaliad. 160 00:06:47,390 --> 00:06:49,630 Ja siis pead määrama kui palju Paaliad soovite. 161 00:06:49,630 --> 00:06:51,636 Niisiis, milline on tüüpiline pikkus kasutajanime? 162 00:06:51,636 --> 00:06:52,760 Kas piir tavaliselt? 163 00:06:52,760 --> 00:06:53,920 >> Sihtrühm: [kuuldamatu] 164 00:06:53,920 --> 00:06:55,050 >> DAVID Humala: 16 äkki? 165 00:06:55,050 --> 00:06:55,990 Midagi sellist. 166 00:06:55,990 --> 00:06:57,948 Sa tead, tagasi päev, see oli varem kaheksa. 167 00:06:57,948 --> 00:07:00,289 Mõnikord on 16, mõnikord see on isegi rohkem. 168 00:07:00,289 --> 00:07:02,080 Ja nii see ei ole tähenda mulle üks CHAR. 169 00:07:02,080 --> 00:07:04,730 See tähendab, et mul täpsustada pikkus valdkonnas, 170 00:07:04,730 --> 00:07:07,402 ja nüüd ma võin öelda midagi 16. 171 00:07:07,402 --> 00:07:08,610 Ja seal on kompromiss siin. 172 00:07:08,610 --> 00:07:11,360 Niisiis, me näeme ühel hetkel et see tähendab üht, 173 00:07:11,360 --> 00:07:14,620 Iga kasutajanimi peab olema 16 tähemärki. 174 00:07:14,620 --> 00:07:18,720 Aga oota natuke, M-A-L-A-N. Kui see on minu kasutajanimi ja ma kasutan ainult viis, 175 00:07:18,720 --> 00:07:23,070 mida soovitaksite, et andmebaas teha teiste 11 märki, et 176 00:07:23,070 --> 00:07:24,471 Olen reserveeritud ruumi? 177 00:07:24,471 --> 00:07:25,220 Mida sa teeksid? 178 00:07:25,220 --> 00:07:26,480 >> Sihtrühm: [kuuldamatu] 179 00:07:26,480 --> 00:07:27,160 >> DAVID Humala: Jah, just need kõik null. 180 00:07:27,160 --> 00:07:28,290 Tee neid ruume. 181 00:07:28,290 --> 00:07:30,816 Aga ilmselt null, nii palju langkriipsude nulli. 182 00:07:30,816 --> 00:07:33,190 Niisiis, ühelt poolt oleme nüüd kindlaks teinud, et mu kasutajanimi 183 00:07:33,190 --> 00:07:34,780 võib olla mitte rohkem kui 16 tähemärki. 184 00:07:34,780 --> 00:07:37,590 Ja varjuküljeks mis on et kui mul oli tõesti pikk nimi 185 00:07:37,590 --> 00:07:39,940 või tahtsid tõesti pikk kasutajanime, nagu mõned teist 186 00:07:39,940 --> 00:07:44,840 poisid võisid selles kolledžis või kell Yale.edu, sa ei saa olla üks. 187 00:07:44,840 --> 00:07:47,177 Ja nii tegelikult, kui olete kunagi registreeritud kodulehel 188 00:07:47,177 --> 00:07:49,385 ja sa saad karjus öelda ununes on liiga pikk 189 00:07:49,385 --> 00:07:52,710 või sinu kasutajanimi on liiga pikk, siis on lihtsalt sellepärast, programmeerija, kui 190 00:07:52,710 --> 00:07:55,500 seadistamisel oma andmebaasi, Otsustati, et selles valdkonnas 191 00:07:55,500 --> 00:07:57,150 olla pikem kui selle pikkus. 192 00:07:57,150 --> 00:08:00,580 >> Hea küll, mis siis, kui Astume nimi? 193 00:08:00,580 --> 00:08:05,240 Kui kaua peaks Tüüpiline inimese nimi on? 194 00:08:05,240 --> 00:08:07,492 Mitu märki, 16? 195 00:08:07,492 --> 00:08:09,450 Olen aim võiksime leida keegi siin ruumis 196 00:08:09,450 --> 00:08:13,210 kus tema või tema esimene pluss viimase nimi on pikem kui 16 tähemärki. 197 00:08:13,210 --> 00:08:14,850 Niisiis, milline on parem kui 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 Suuremad? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> Sihtrühm: [kuuldamatu] 203 00:08:21,855 --> 00:08:23,700 DAVID Humala: 5000, oh mu jumal. 204 00:08:23,700 --> 00:08:26,309 Nii, see on ilmselt korralik ülemist piiri, ütleme. 205 00:08:26,309 --> 00:08:28,350 Ja siin me sellist on et kohtumõistja. 206 00:08:28,350 --> 00:08:30,400 Nagu, ei ole õige vastus siin. 207 00:08:30,400 --> 00:08:32,740 Infinite ei ole täiesti võimalik, sest me oleme lõpuks 208 00:08:32,740 --> 00:08:34,781 läheb have-- me oleme läheb otsa mälu. 209 00:08:34,781 --> 00:08:36,909 Niisiis, me peame tegema kohtumõistja mingil hetkel. 210 00:08:36,909 --> 00:08:41,010 >> Väga sageli oleks näiteks to use-- ja andke mulle täpsustada CHAR siin 211 00:08:41,010 --> 00:08:46,050 kui before-- 255 oli sõna otseses mõttes ülempiiri see andmebaasitarkvara 212 00:08:46,050 --> 00:08:46,700 aastaid tagasi. 213 00:08:46,700 --> 00:08:48,575 Ja nii palju inimesi ütleks selle trahvi. 214 00:08:48,575 --> 00:08:49,420 255 on piir. 215 00:08:49,420 --> 00:08:50,620 Lihtsalt kasutada maksimaalselt. 216 00:08:50,620 --> 00:08:51,870 Ja see on päris naeruväärne. 217 00:08:51,870 --> 00:08:55,060 Like, kui sa kirjutad kellegi nimi 200 pluss märki, 218 00:08:55,060 --> 00:08:56,140 et natuke naeruväärne. 219 00:08:56,140 --> 00:08:59,624 >> Aga pidage meeles, et ASCII ei ole ainuke süsteem tähemärki. 220 00:08:59,624 --> 00:09:01,540 Ja nii, seda eriti Paljud Aasia keelte 221 00:09:01,540 --> 00:09:04,248 kus tegelased ei saa me väljendada klaviatuurid nagu mu USA 222 00:09:04,248 --> 00:09:08,209 klaviatuur, mõned tegelased tegelikult asuda 16 bitti asemel kaheksa bitti. 223 00:09:08,209 --> 00:09:10,250 Ja nii see tegelikult ei ole nii ebamõistlik 224 00:09:10,250 --> 00:09:12,250 et meil on vaja rohkem ruumi, kui me tahame, et see sobiks 225 00:09:12,250 --> 00:09:16,252 suurem märke kui väga USA kesksemaks need oleme pigem arutada. 226 00:09:16,252 --> 00:09:17,460 Niisiis, me peame mõned ülemise. 227 00:09:17,460 --> 00:09:21,470 Ma ei tea, mis on parim üks, kuid 255 on üldiselt levinud. 228 00:09:21,470 --> 00:09:22,700 25 tundub väike. 229 00:09:22,700 --> 00:09:23,857 16, 32 tunnen madal. 230 00:09:23,857 --> 00:09:25,690 Ma Syyllistyä midagi kõrgemat. 231 00:09:25,690 --> 00:09:27,330 Aga seal on kompromiss, nagu alati. 232 00:09:27,330 --> 00:09:31,902 Mis on ehk selge Kompromiss reserveerimise 255 Paaliad 233 00:09:31,902 --> 00:09:33,360 igaühe nime minu andmebaasi? 234 00:09:33,360 --> 00:09:34,230 >> Sihtrühm: [kuuldamatu] 235 00:09:34,230 --> 00:09:34,510 >> DAVID Humala: Mis see on? 236 00:09:34,510 --> 00:09:35,430 >> Sihtrühm: [kuuldamatu] 237 00:09:35,430 --> 00:09:37,138 >> DAVID Humala: See on palju mälu, eks? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N. Olen lihtsalt raisku 250 tegelased lihtsalt salvestada oma nimi 239 00:09:42,280 --> 00:09:46,000 kaitsele, igaks juhuks keegi klassis on tõesti pikk nimi. 240 00:09:46,000 --> 00:09:47,940 See tundub põhjendamatu Miinuseks. 241 00:09:47,940 --> 00:09:52,040 >> Niisiis, tuleb välja, et SQL, Selles andmebaasis keeles 242 00:09:52,040 --> 00:09:55,480 tegelikult toetab midagi nimetatakse varchar või vahelduva CHAR. 243 00:09:55,480 --> 00:09:59,390 Ja see on omamoodi tore, et see võimaldab teil määrata ole fikseeritud 244 00:09:59,390 --> 00:10:01,900 laiusele, kuid pigem muutuva laiusega. 245 00:10:01,900 --> 00:10:05,060 Ja spetsiifilisemalt maksimaalne laius valdkonnas. 246 00:10:05,060 --> 00:10:08,901 Niisiis, see tähendab, et nimi ei olla mitte rohkem kui 250 tähemärki, 247 00:10:08,901 --> 00:10:10,150 küll aga võib olla vähem. 248 00:10:10,150 --> 00:10:11,733 Ja andmebaasis saab olema tark. 249 00:10:11,733 --> 00:10:14,860 Kui te ei pane M-A-L-A-N, see on ainult kavatse kasutada viis, 250 00:10:14,860 --> 00:10:18,120 võibolla kuus baiti nagu lõppserva null iseloomu, 251 00:10:18,120 --> 00:10:23,330 ja mitte kulutama täiendavalt 249 või 250 baiti asjatult. 252 00:10:23,330 --> 00:10:27,380 >> Nii, see tundub nagu ma peaks hakanud seda lugu. 253 00:10:27,380 --> 00:10:29,140 Aga seal on alati kompromiss. 254 00:10:29,140 --> 00:10:33,024 Niisiis, ühelt poolt, kasutajanime Olen täpsustada tuleb kõva kodeeritud 16, 255 00:10:33,024 --> 00:10:34,940 ja võibolla see ei olnud õige kõne, äkki see 256 00:10:34,940 --> 00:10:40,040 on, aga miks mitte kasutada VARCHARs kõike? 257 00:10:40,040 --> 00:10:42,020 >> Ta eksisteerib põhjus. 258 00:10:42,020 --> 00:10:46,200 Miks mitte kasutada VARCHARs iga valdkonna mille pikkus sa ei tea ette, 259 00:10:46,200 --> 00:10:48,180 kui see tundub olevat suur asi, eks? 260 00:10:48,180 --> 00:10:50,482 Kasutage ainult nii palju ruumi kui sa pead kuni see piir? 261 00:10:50,482 --> 00:10:51,271 >> Sihtrühm: aeglasem. 262 00:10:51,271 --> 00:10:52,146 DAVID Humala: Speller? 263 00:10:52,146 --> 00:10:53,120 Sihtrühm: Teeb aeglasem? 264 00:10:53,120 --> 00:10:53,970 DAVID Humala: Oh, see on aeglasem. 265 00:10:53,970 --> 00:10:55,720 Hea, et on peaaegu alati vastus, ausalt. 266 00:10:55,720 --> 00:10:56,520 Like, milline on kompromiss? 267 00:10:56,520 --> 00:10:58,570 See kas maksab rohkem ruumi või see maksab rohkem aega. 268 00:10:58,570 --> 00:11:00,111 Niisiis, sel juhul võib olla aeglasem. 269 00:11:00,111 --> 00:11:00,920 Miks? 270 00:11:00,920 --> 00:11:05,830 >> Sihtrühm: [kuuldamatu] määramisel [kuuldamatu]. 271 00:11:05,830 --> 00:11:06,640 >> DAVID Humala: Hea. 272 00:11:06,640 --> 00:11:09,670 Nii, võite mäletate isegi PSED5, mängides oma lähenemist 273 00:11:09,670 --> 00:11:12,750 sõnastikku, kui teil on mälu eraldada dünaamiliselt või hoida 274 00:11:12,750 --> 00:11:14,630 kasvav puhvrit, et võib tegelikult olla aeglane. 275 00:11:14,630 --> 00:11:16,963 Kui teil on helistada malloc all kapuuts ja võibolla 276 00:11:16,963 --> 00:11:19,610 see, mida MySQL teeb, nii kindlasti, et võib juhtuda. 277 00:11:19,610 --> 00:11:22,430 Ja kui te arvate, kuidas tagasi PSet-- või isegi 278 00:11:22,430 --> 00:11:26,340 nädalat kaks, kui me tegime asjad Kahendotsingupuu või isegi lineaarne otsing, 279 00:11:26,340 --> 00:11:30,690 üks tore asju iga sõna andmebaasis või iga sõna veerus 280 00:11:30,690 --> 00:11:33,690 on täpselt sama pikk, isegi kui terve hunnik neid tähemärki 281 00:11:33,690 --> 00:11:37,390 on tühi, on see, et saate random access oma andmed, eks? 282 00:11:37,390 --> 00:11:40,310 >> Kui sa tead, et iga Sõna on 16 tähemärki ära, 283 00:11:40,310 --> 00:11:46,460 mida saab kasutada pointer aritmeetika, nii et rääkida ja minna meile 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 ja sa võid hüpata koheselt kasutades aritmeetilise 285 00:11:49,589 --> 00:11:51,130 mis tahes sõna oma andmebaasi. 286 00:11:51,130 --> 00:11:54,280 Arvestades, kui see on varchar, Mis sa selle asemel tegema? 287 00:11:54,280 --> 00:11:55,960 >> [Telefonihelin] 288 00:11:55,960 --> 00:11:58,680 >> Kui see on varchar, siis ei saa kasutada muutmälu. 289 00:11:58,680 --> 00:12:01,341 Mida sa pead otsima või tegema? 290 00:12:01,341 --> 00:12:01,840 Jah? 291 00:12:01,840 --> 00:12:03,240 >> Sihtrühm: [kuuldamatu] 292 00:12:03,240 --> 00:12:04,310 >> DAVID Humala: Vaata läbi whole-- jälgi 293 00:12:04,310 --> 00:12:06,518 läbi terve nimekirja otsivad, mida kõige tõenäolisemalt? 294 00:12:06,518 --> 00:12:08,356 Millist erilist väärtust? 295 00:12:08,356 --> 00:12:09,230 Sihtrühm: [kuuldamatu] 296 00:12:09,230 --> 00:12:11,105 DAVID Humala: Vaadates for null terminators 297 00:12:11,105 --> 00:12:13,637 et piiritleda eraldamine sõnu. 298 00:12:13,637 --> 00:12:15,720 Nii jälle Miinuseks, ja pole õige vastus. 299 00:12:15,720 --> 00:12:18,380 Aga see on koht, kus eriti kui teie kasutajad saavad olema palju 300 00:12:18,380 --> 00:12:21,700 ja oma koormat serverite kasutavate inimeste arv siis saab kõrge, 301 00:12:21,700 --> 00:12:23,650 need on tegelikult nontrivial otsuseid. 302 00:12:23,650 --> 00:12:26,640 Nii võime jätta, kuna tegemist, kuid olgem keri üle paremale 303 00:12:26,640 --> 00:12:27,332 siin. 304 00:12:27,332 --> 00:12:30,290 Nüüd, seal on paar sambad kus peame kohtumõistja. 305 00:12:30,290 --> 00:12:35,170 Kas on mõtet lubada kasutaja Nime, kasutaja kasutajanimi või kasutaja 306 00:12:35,170 --> 00:12:36,370 Nimi, olla null? 307 00:12:36,370 --> 00:12:37,610 See on lihtsalt tühi. 308 00:12:37,610 --> 00:12:40,360 Tundub natuke absurdne, et ma olen ei kavatse vaadata need kastid. 309 00:12:40,360 --> 00:12:42,670 Aga selgub, on andmebaasi, võib öelda, 310 00:12:42,670 --> 00:12:44,620 keegi ei soovi olla selle väärtus. 311 00:12:44,620 --> 00:12:47,180 See veerus ei ole tegelikult olemas. 312 00:12:47,180 --> 00:12:48,570 >> Nüüd, seal on see rippmenüüst. 313 00:12:48,570 --> 00:12:50,810 Ja teate ma olen ikka esimeses reas seal, 314 00:12:50,810 --> 00:12:52,520 nii et ma räägin kasutajanimi nüüd. 315 00:12:52,520 --> 00:12:56,290 Ja selgub, et andmebaasi Erinevalt lihtne lihtsalt tabelisse, 316 00:12:56,290 --> 00:12:58,520 on võimas funktsioone nimetatakse indeksid. 317 00:12:58,520 --> 00:13:02,600 Ja indeks on viis öelda Andmebaasi ette, et ma inimese 318 00:13:02,600 --> 00:13:03,900 olen targem kui sina. 319 00:13:03,900 --> 00:13:10,430 >> Ma tean, milliseid päringuid valige või sisestada või kustutada või uuendada, 320 00:13:10,430 --> 00:13:13,182 et minu kood lõppeb teeme selle andmebaasi. 321 00:13:13,182 --> 00:13:14,390 Ma tahan lugeda palju andmeid. 322 00:13:14,390 --> 00:13:15,681 Ma tahan lisada palju andmeid. 323 00:13:15,681 --> 00:13:17,530 Ma tahan pidevalt kustutada palju andmeid. 324 00:13:17,530 --> 00:13:21,520 Kui ma tean, et ma lähen juurdepääsu valdkonnas nagu Kasutajanimi palju, 325 00:13:21,520 --> 00:13:24,770 Ma ei ennatlikult öelda andmebaasi, ma tean rohkem kui sina, 326 00:13:24,770 --> 00:13:29,220 ja ma tahan, et dekreedi, mis sa peaksid index selles valdkonnas. 327 00:13:29,220 --> 00:13:33,200 Kus indekseerimine valdkonnas või kolonnist tähendab, et andmebaasi eelnevalt 328 00:13:33,200 --> 00:13:37,040 peaks laenata ideid, nagu, Nädala neli ja viis ja kuus alates CS50 329 00:13:37,040 --> 00:13:39,240 ja tegelikult ehitada midagi binaarne otsing 330 00:13:39,240 --> 00:13:41,560 puu või midagi üldiselt nimetatakse B puu 331 00:13:41,560 --> 00:13:43,410 et sa õpiksid klassi nagu CS124 332 00:13:43,410 --> 00:13:46,710 Harvardi, mis on algoritmide klassi, või mitmeid teistes kohtades. 333 00:13:46,710 --> 00:13:49,570 >> Andmebaas ja nutikas inimesed, kes on seda rakendanud 334 00:13:49,570 --> 00:13:53,880 nuputada, kuidas hoida Selle tabeli info 335 00:13:53,880 --> 00:13:57,061 mälu, nii et otsingud ja muud toimingud on super kiire. 336 00:13:57,061 --> 00:13:58,060 Sa ei pea seda tegema. 337 00:13:58,060 --> 00:14:00,640 Sa ei pea rakendama lineaarne otsing või binaarne otsing 338 00:14:00,640 --> 00:14:03,300 või liita omamoodi või valiku sorteerida, ükskõik mis. 339 00:14:03,300 --> 00:14:06,590 Andmebaas see sinu jaoks kui sa ütled see ennetavalt indeks selles valdkonnas. 340 00:14:06,590 --> 00:14:09,100 >> Ja näed ka, seal on mõned muud omadused 341 00:14:09,100 --> 00:14:11,010 Me ei saa öelda andmebaasis jõustada. 342 00:14:11,010 --> 00:14:16,431 Mis võiks see tähendab, kui ma valin Unique sellest menüüst, lihtsalt intuitiivselt? 343 00:14:16,431 --> 00:14:16,930 Jah? 344 00:14:16,930 --> 00:14:17,889 >> Sihtrühm: [kuuldamatu] 345 00:14:17,889 --> 00:14:19,930 DAVID Humala: Jah, kasutajanimi peab olema unikaalne. 346 00:14:19,930 --> 00:14:23,330 Kas see on hea või halb asi andmebaasi veebilehel kasutajatega? 347 00:14:23,330 --> 00:14:24,965 Kui kasutajanimed olema unikaalne? 348 00:14:24,965 --> 00:14:25,880 Jah, ilmselt. 349 00:14:25,880 --> 00:14:27,800 Kui see on, mida valdkonnas, mida me kasutame, et sisse logida, 350 00:14:27,800 --> 00:14:31,867 sa ei taha, et inimesed, kellel sama tunne või sama kasutajanime. 351 00:14:31,867 --> 00:14:33,700 Nii saame olla andmebaasis jõustada, et nii 352 00:14:33,700 --> 00:14:37,880 et nüüd minu PHP kood või mis tahes keeles, Ma ei pea näiteks vaadata 353 00:14:37,880 --> 00:14:41,490 tingimata seda teeb kasutajanimi olemas enne kui ma lasta kellelgi registreeruda? 354 00:14:41,490 --> 00:14:46,690 Andmebaas ei lase kaks inimest nimega David või Malans registreerida sel juhul. 355 00:14:46,690 --> 00:14:50,030 >> Ja kui kõrvale, kuigi see menu vaid võimaldab valida ühe, 356 00:14:50,030 --> 00:14:54,550 unikaalne indeks on üks, mis on indekseeritud ülikiire jõudlus, 357 00:14:54,550 --> 00:14:56,100 kuid see sunnib unikaalsust. 358 00:14:56,100 --> 00:14:58,850 Ja me tuleme tagasi sellele, mida Ülejäänud kaks tähenda vaid hetk. 359 00:14:58,850 --> 00:15:00,930 Vahepeal, kui ma lähen minu teine ​​rida, mis 360 00:15:00,930 --> 00:15:06,230 on kasutaja nimi, ma peaksin täpsustada et nimi peaks olema unikaalne? 361 00:15:06,230 --> 00:15:09,550 Ei, sest sa võid kindlasti have-- pole kahe David 362 00:15:09,550 --> 00:15:11,050 Malans selles ruumis, kõige tõenäolisem. 363 00:15:11,050 --> 00:15:14,290 Aga kui me valime teise nime me võiksime kindlasti kokkupõrkeid. 364 00:15:14,290 --> 00:15:16,130 >> Mõtle tagasi räsitabeli jms. 365 00:15:16,130 --> 00:15:18,604 Niisiis, me kindlasti ei taha teha nimeväljal ainulaadne. 366 00:15:18,604 --> 00:15:21,270 Niisiis, me lihtsalt kavatse lahkuda et nagu kriips-kriips-kriips-midagi. 367 00:15:21,270 --> 00:15:22,660 Ja ma jätan kõike muud üksi. 368 00:15:22,660 --> 00:15:25,035 Tõepoolest, enamik neist väljad me ei pea hooli. 369 00:15:25,035 --> 00:15:27,830 Ja kui ma olen valmis päästma seda, kui internet koostööd, 370 00:15:27,830 --> 00:15:35,032 Ma käsku Salvesta ja väga, väga, väga aeglaselt ei andmebaasis saada päästetud. 371 00:15:35,032 --> 00:15:37,240 Ja nüüd ma olen tagasi selle liides, mis küll, 372 00:15:37,240 --> 00:15:38,680 on valdav esimesel pilgul. 373 00:15:38,680 --> 00:15:42,450 Aga ma lähen tegema, on klõpsa sõnal Kasutajad vasakus ülaservas. 374 00:15:42,450 --> 00:15:47,630 Ma lähen siin, klõpsa Kasutajad ja vaikimisi seda 375 00:15:47,630 --> 00:15:50,180 on sooritanud mõne SQL, kuid rohkem sellest kohe. 376 00:15:50,180 --> 00:15:52,654 Siin on ainult kokkuvõte, mida ma tegin. 377 00:15:52,654 --> 00:15:55,320 Ja ärge muretsege, et sa näed rääkimata Ladina ja Rootsi siin. 378 00:15:55,320 --> 00:16:00,490 Need on vaid vaikimisi seaded, sest MySQL algselt 379 00:16:00,490 --> 00:16:04,000 või PHP MyAdmin, üks kahest juhtus tuleb kirjutada mõned rootslased. 380 00:16:04,000 --> 00:16:06,100 Aga see on ebaoluline meie puhul siin. 381 00:16:06,100 --> 00:16:08,280 >> Hea küll, miks on see kõik huvitav? 382 00:16:08,280 --> 00:16:13,050 Selgub, võin lisada andmeid andmebaasiks kirjutades koodi. 383 00:16:13,050 --> 00:16:15,940 Ja ma minna ja minu pilt siin, ma olen 384 00:16:15,940 --> 00:16:19,000 läheb minna ja teeselda, nagu see on traadiga andmebaasi, mis 385 00:16:19,000 --> 00:16:23,040 see ei ole hetkel puuduvad, kuid see olla, kui me saame probleemi pani seitse. 386 00:16:23,040 --> 00:16:25,640 Ja ma lähen edasi minna ja käivitate funktsiooni nimetatakse päringu 387 00:16:25,640 --> 00:16:28,730 mis me anname teile probleem pani seitse jaotus- kood, mis 388 00:16:28,730 --> 00:16:31,490 võtab vähemalt üks argument, mis on lihtsalt string. 389 00:16:31,490 --> 00:16:33,460 Rida SQL koodi. 390 00:16:33,460 --> 00:16:36,700 Niisiis, sa oled umbes, et õppida, kuidas kirjuta Structured Query Language. 391 00:16:36,700 --> 00:16:41,270 >> Kui ma tahan lisada uus rida minu andmebaasi, sest keegi on esitanud 392 00:16:41,270 --> 00:16:47,600 vormis, et minu kood, ma oleks sõna otseses mõttes kirjutada INSERT INTO kasutajad järgmine 393 00:16:47,600 --> 00:16:52,800 valdkondades: kasutajanimi, koma, nimi, väärtused, 394 00:16:52,800 --> 00:16:57,480 ja nüüd ma pean sisestada midagi Humala ja tsiteerida, 395 00:16:57,480 --> 00:17:01,490 lõppeb "David Humala." Ja nüüd isegi need tuttavad SQL, 396 00:17:01,490 --> 00:17:07,830 miks ma kasutan ülakoma sees see roheline string? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Mis võib olla põhjuseks, siin? 399 00:17:13,040 --> 00:17:14,609 >> Pange tähele, ma olen segunemine kahes keeles. 400 00:17:14,609 --> 00:17:18,099 Päring on PHP funktsioon, kuid see võtab argument. 401 00:17:18,099 --> 00:17:21,740 Ja see argument on, et ise olla kirjutatud teises keeles nimetatakse 402 00:17:21,740 --> 00:17:23,500 SQL, Structured Query Language. 403 00:17:23,500 --> 00:17:27,940 Niisiis, kõik, mis ma just siin esile 404 00:17:27,940 --> 00:17:30,380 on selles keeles nimetatakse SQL. 405 00:17:30,380 --> 00:17:36,290 Niisiis, milline on koos ülakoma, sama kiire meelerahu vaadata? 406 00:17:36,290 --> 00:17:37,324 Lase käia. 407 00:17:37,324 --> 00:17:37,990 Nad on stringid. 408 00:17:37,990 --> 00:17:41,590 Nii, quote, lõppeb Humala ja tsiteerida, lõppeb David Humala on stringid. 409 00:17:41,590 --> 00:17:45,210 Ja just mõtlesin intuitiivselt nüüd, teades, mida sa tead C ja PHP, 410 00:17:45,210 --> 00:17:50,220 Miks ma ei tee seda, mida ma tavaliselt Kasutatud jutumärkide keelpillidele? 411 00:17:50,220 --> 00:17:52,310 Miks ma ei taha seda teha? 412 00:17:52,310 --> 00:17:52,810 Jah? 413 00:17:52,810 --> 00:17:53,685 >> Sihtrühm: [kuuldamatu] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID Humala: Täpselt. 416 00:17:57,570 --> 00:17:59,653 Kuna ma kasutan juba jutumärkide teel 417 00:17:59,653 --> 00:18:01,929 väljaspool argument PHP funktsiooni, 418 00:18:01,929 --> 00:18:03,470 Ma lihtsalt segadusse tõlk. 419 00:18:03,470 --> 00:18:04,860 See ei tea, kas need käivad käsikäes? 420 00:18:04,860 --> 00:18:05,735 Kas need käivad käsikäes? 421 00:18:05,735 --> 00:18:06,810 Kas need käivad käsikäes? 422 00:18:06,810 --> 00:18:08,070 Niisiis, ma vaheldumisi asemel. 423 00:18:08,070 --> 00:18:11,784 >> Või ma võiks teha midagi sellist, kurakriips quote või kurakriips tsiteerida. 424 00:18:11,784 --> 00:18:14,200 Ausalt, see lihtsalt hakkab saada väga loetamatu ja kole. 425 00:18:14,200 --> 00:18:16,790 Aga see oleks saavutada sama tulemuse samuti. 426 00:18:16,790 --> 00:18:19,760 >> Niisiis, kui ma suuta Päring Nüüd vaatame, mis juhtub. 427 00:18:19,760 --> 00:18:22,740 Ma lähen edasi minna nüüd ja pigem kui täita PHP kood, mis 428 00:18:22,740 --> 00:18:24,610 on koht, kus saate mängida probleemide pani seitse, 429 00:18:24,610 --> 00:18:27,200 Ma lähen asemel minna PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 Ja ma käsitsi läheb minna SQL sakk 431 00:18:29,770 --> 00:18:31,580 ja las ma suumida liides. 432 00:18:31,580 --> 00:18:34,007 Ja ma lähen kleebi asi, mida ma lihtsalt kirjutada. 433 00:18:34,007 --> 00:18:36,090 Ja värvikoodiga on muutunud natuke nüüd, 434 00:18:36,090 --> 00:18:38,750 lihtsalt sellepärast, et programm formaadid asju natuke teistmoodi. 435 00:18:38,750 --> 00:18:41,960 Aga märkate, et kõik, mida ma olen teinud on ma olen öelnud, lisada Kasutajad. 436 00:18:41,960 --> 00:18:45,790 Olen määratud, siis on komadega eraldatud sulgudes nimekirja kahe 437 00:18:45,790 --> 00:18:48,850 valdkondades, mida ma tahan lisada, ja siis ma olen sõna otseses mõttes ütles väärtused 438 00:18:48,850 --> 00:18:51,510 järgnes teine ​​paren, ja siis kaks väärtust 439 00:18:51,510 --> 00:18:53,520 Ma tahan, et plug-in, ja nüüd hea meede, 440 00:18:53,520 --> 00:18:55,010 Ma panen semikooloniga lõpus. 441 00:18:55,010 --> 00:18:56,570 Niisiis, see ei ole C. See ei ole PHP. 442 00:18:56,570 --> 00:18:59,970 See on nüüd SQL, ja ma määrimiseks sellesse veebipõhine kasutajaliides, mis on 443 00:18:59,970 --> 00:19:02,710 lihtsalt lase mind niipea kui ma vajutan Go, 444 00:19:02,710 --> 00:19:08,060 täidab selle päringu andmebaasi töötab sees CS50 IDE. 445 00:19:08,060 --> 00:19:09,470 >> Nii et see on hea. 446 00:19:09,470 --> 00:19:12,520 Pane tähele, et ütles üks rida sisestatud, läks super kiire, 447 00:19:12,520 --> 00:19:15,190 0,0054 sekundiga lisada, et andmeid. 448 00:19:15,190 --> 00:19:16,610 Nii, see kõlab päris terve. 449 00:19:16,610 --> 00:19:19,350 See ümberkujundatud minu päringu mulle siin lihtsalt seda näha 450 00:19:19,350 --> 00:19:21,730 aastal omamoodi värv kodeeritud versiooni. 451 00:19:21,730 --> 00:19:24,540 Aga nüüd, kui ma vajutan Sirvi, märkate, et isegi 452 00:19:24,540 --> 00:19:29,070 kuigi seal on palju segadusega ekraani, mu laua nüüd on kaks rida. 453 00:19:29,070 --> 00:19:30,700 >> Niisiis, lubage mul minna ja teha teisele. 454 00:19:30,700 --> 00:19:33,760 Selle asemel, lase mind minna SQL sakk uuesti. 455 00:19:33,760 --> 00:19:40,723 Ja seekord ma lisada midagi Rob ja tema nimi on Rob Bowden. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 Olgem käsku Salvesta. 458 00:19:44,040 --> 00:19:46,140 Oih, pigem Go. 459 00:19:46,140 --> 00:19:48,890 >> Vajuta Sirvi uuesti, ja Nüüd märkate Mul on kaks rida. 460 00:19:48,890 --> 00:19:52,390 Nii, see on lihtsalt nii keerulisemate kuidas avada Google Spreadsheets 461 00:19:52,390 --> 00:19:54,010 ja kirjutades järjest sambaks. 462 00:19:54,010 --> 00:19:57,070 Aga mis peamine on see, et meil on nüüd süntaks 463 00:19:57,070 --> 00:20:00,220 millega kirjutada koodi, nii et lõpuks saime tegelikult 464 00:20:00,220 --> 00:20:01,790 teha mõned ja see. 465 00:20:01,790 --> 00:20:05,380 Tuletame meelde, et PHP toetab super globaalseid muutujaid. 466 00:20:05,380 --> 00:20:08,415 >> Mis on sees dollar kirjutama alakriips saada PHP? 467 00:20:08,415 --> 00:20:10,290 Me vaatlesime ühe või kaks lihtsat näidet. 468 00:20:10,290 --> 00:20:15,640 Ja PSet6, meenub sul hello dot PHP, mis kasutab seda muutujat. 469 00:20:15,640 --> 00:20:17,870 Mis läheb seal? 470 00:20:17,870 --> 00:20:21,015 Või mis see on? 471 00:20:21,015 --> 00:20:22,522 Vähe kõvemini. 472 00:20:22,522 --> 00:20:23,790 >> Sihtrühm: [kuuldamatu] 473 00:20:23,790 --> 00:20:25,030 >> DAVID Humala: See on lumi seemne massiiv, mis 474 00:20:25,030 --> 00:20:27,714 on lihtsalt fancy viis öelda massiiv, mis on peamine väärtus paare. 475 00:20:27,714 --> 00:20:28,880 Ja võtmed ei ole numbrilist. 476 00:20:28,880 --> 00:20:30,420 Nad on sõnad või stringid. 477 00:20:30,420 --> 00:20:32,750 Ja just, mida need põhiväärtus paari? 478 00:20:32,750 --> 00:20:35,110 Kust nad tulevad? 479 00:20:35,110 --> 00:20:35,620 Vabandust? 480 00:20:35,620 --> 00:20:36,994 >> Sihtrühm: [kuuldamatu] 481 00:20:36,994 --> 00:20:37,660 DAVID Humala: No? 482 00:20:37,660 --> 00:20:40,700 Kust need võti väärtuse paarid tulevad? 483 00:20:40,700 --> 00:20:42,490 Öelge uuesti? 484 00:20:42,490 --> 00:20:44,610 Jälle? 485 00:20:44,610 --> 00:20:46,472 Kas ma olen ainuke, kuulmine midagi? 486 00:20:46,472 --> 00:20:47,810 >> [NAER] 487 00:20:47,810 --> 00:20:49,042 >> See on õige, jah? 488 00:20:49,042 --> 00:20:50,435 >> Sihtrühm: [kuuldamatu] 489 00:20:50,435 --> 00:20:52,560 DAVID Humala: Jah, nad pärit stringi. 490 00:20:52,560 --> 00:20:55,380 Niisiis, kui teil kerida ajas kui oleme mänginud Google 491 00:20:55,380 --> 00:20:59,600 ja me oleme läinud Google.com kaldkriipsuga Otsing küsimärk q võrdub kassid, 492 00:20:59,600 --> 00:21:03,550 kui ma Enter ja kui Google rakendati PHP, 493 00:21:03,550 --> 00:21:07,017 PHP kood, mis Google kirjutas oleks juurdepääs dollari märk 494 00:21:07,017 --> 00:21:11,600 rõhutavad GET mille sees on oluline nn Q ja väärtus 495 00:21:11,600 --> 00:21:17,680 nimetatakse kassid, et seda saab siis kasutada harjunud tegema tegelik otsingut. 496 00:21:17,680 --> 00:21:20,860 >> Nii et tegelikult, ma lähen tegema nüüd lähen tagasi oma PHP koodi 497 00:21:20,860 --> 00:21:23,140 et sa jälle näha rohkem in PSet7. 498 00:21:23,140 --> 00:21:25,440 Ja selle asemel, ühendades kõva kodeeritud väärtused, mis 499 00:21:25,440 --> 00:21:27,630 ei tundu väga dünaamiline veebileht, 500 00:21:27,630 --> 00:21:30,680 Ma annan teile teaser mida teie tegelik kood teeks. 501 00:21:30,680 --> 00:21:32,854 Sa oleks panna kaks küsimärke niimoodi. 502 00:21:32,854 --> 00:21:34,270 Ma ei tea, mis kasutajanimi on. 503 00:21:34,270 --> 00:21:37,390 Ma ei tea, mida nimi saab olema, 504 00:21:37,390 --> 00:21:39,470 aga ma tean, et ma ei saa saada neid dünaamiliselt. 505 00:21:39,470 --> 00:21:43,420 >> Seega, kui koodi anname nüüd on kood töötab Google'i serveritesse, 506 00:21:43,420 --> 00:21:46,940 või kui see on hello dot PHP, mis pakub PSet6, 507 00:21:46,940 --> 00:21:48,650 Ma lähen edasi kanduda päringu funktsiooni 508 00:21:48,650 --> 00:21:51,450 nagu printf, kaks argumenti. 509 00:21:51,450 --> 00:21:57,120 GET, quote, lõppeb kasutajanime Ja saada, quote, lõppeb nime. 510 00:21:57,120 --> 00:22:00,720 Ja nüüd, märkate, mida üldine struktuur on siin. 511 00:22:00,720 --> 00:22:03,320 Mul vasakul servas kõne 512 00:22:03,320 --> 00:22:05,480 Seda funktsiooni nimetatakse päringu PHP. 513 00:22:05,480 --> 00:22:08,160 Mul on veel esimese argument, vaid mingi teksti. 514 00:22:08,160 --> 00:22:11,000 >> Aga et tekstistringi on kirjutatud keeles nimetatakse SQL. 515 00:22:11,000 --> 00:22:12,616 Ja ausalt öeldes, see ei ole suur keel. 516 00:22:12,616 --> 00:22:14,990 Me ainult räägime, see ametlikult täna, tõesti. 517 00:22:14,990 --> 00:22:17,031 Ja siis probleem seatud seitse, seal on suhteliselt 518 00:22:17,031 --> 00:22:18,800 mõned omadused, et me oleme läheb võimendada. 519 00:22:18,800 --> 00:22:22,530 Küsimärke, aga mõtlen pistik väärtus siin ja plug teises väärtus 520 00:22:22,530 --> 00:22:23,130 siin. 521 00:22:23,130 --> 00:22:26,010 Ja teate, ma olen ära jätta, mida kogu quote-- kuradi 522 00:22:26,010 --> 00:22:30,470 see-- ümber tsitaat tähistab seekord. 523 00:22:30,470 --> 00:22:34,930 Olen jäetud tsitaat märgid ümber küsimärk, 524 00:22:34,930 --> 00:22:36,410 sorry, seekord. 525 00:22:36,410 --> 00:22:38,870 >> Niisiis, milline on tore see küsimärk funktsioon, mis 526 00:22:38,870 --> 00:22:42,830 PHP kipub toetama, Ruby ja Python ja teistes keeltes, 527 00:22:42,830 --> 00:22:45,730 see tähendab lihtsalt plug mõnel Väärtustame siin ja sa tead, mida? 528 00:22:45,730 --> 00:22:48,300 Sa nuputada, kas kasutada ülakoma või jutumärkide. 529 00:22:48,300 --> 00:22:50,966 Ära tüüta mind nendega intellektuaalselt ebahuvitav üksikasjad. 530 00:22:50,966 --> 00:22:53,780 Aga veenduge, et see on õige nii et minu kood on lõppkokkuvõttes 531 00:22:53,780 --> 00:22:57,010 tegevus- ja ohutu, mis on tähendus enne pikk. 532 00:22:57,010 --> 00:23:00,460 >> Nüüd, kui paljud argumendid kokku, lihtsalt olema selge, on päringu funktsiooni võtmist? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Igaüks taha hääletada rohkem kui kaks? 535 00:23:07,581 --> 00:23:08,080 Kolm? 536 00:23:08,080 --> 00:23:10,001 Muidugi, miks? 537 00:23:10,001 --> 00:23:10,920 Miks kolm? 538 00:23:10,920 --> 00:23:12,305 >> Sihtrühm: [kuuldamatu] 539 00:23:12,305 --> 00:23:13,180 DAVID Humala: Täpselt. 540 00:23:13,180 --> 00:23:14,610 Esimene osa on string. 541 00:23:14,610 --> 00:23:18,640 Teine argument on dollari märk rõhutavad GET sulg kasutajanimi. 542 00:23:18,640 --> 00:23:21,950 Ja kolmas argument on Sama asi, kuid ainult nime. 543 00:23:21,950 --> 00:23:24,590 Nii teisisõnu, nüüd kui mul oleks veebivormi 544 00:23:24,590 --> 00:23:27,149 mis pidi tekstiväljade üks kasutaja kasutajanimi, 545 00:23:27,149 --> 00:23:29,690 üks tema nimi, vaid nagu sa näeksid oma kodulehel 546 00:23:29,690 --> 00:23:32,120 kui registreerute mõned kodulehel, võib see 547 00:23:32,120 --> 00:23:35,450 olla kood kolp, et tegelikult teeb sisestamise nüüd 548 00:23:35,450 --> 00:23:37,220 andmebaasi. 549 00:23:37,220 --> 00:23:40,870 >> Nüüd seevastu olgem kiiresti edasi. 550 00:23:40,870 --> 00:23:43,840 Oletame, et kasutaja on nüüd logimist ja soovid 551 00:23:43,840 --> 00:23:48,860 kirjutada PHP kood, mis kontrollib, kas isik, kes on just sisse 552 00:23:48,860 --> 00:23:52,250 on tegelikult kasutaja saab kasutada päris lihtne süntaks. 553 00:23:52,250 --> 00:23:55,832 Võite öelda SELECT oletame star, kus täht tähendab kõike. 554 00:23:55,832 --> 00:23:57,540 Ma ei tea, mida ma soovite, et anda mulle 555 00:23:57,540 --> 00:24:01,585 kõik veerud tabelis nimetatakse kasutajatega, ja see on tore. 556 00:24:01,585 --> 00:24:03,710 Vali toetab milline nimetatakse predikaat, mis on 557 00:24:03,710 --> 00:24:06,630 nagu viis saamise mida sa tahad. 558 00:24:06,630 --> 00:24:10,590 Kus kasutajanimi võrdub tsitaat, lõppeb Humala. 559 00:24:10,590 --> 00:24:13,680 Nii ka siin, ma olen varjatud sees argument 560 00:24:13,680 --> 00:24:16,110 to PHP funktsioon, rida SQL koodi. 561 00:24:16,110 --> 00:24:18,680 Ja et SQL koodi selle aeg on sõna otseses mõttes läheb 562 00:24:18,680 --> 00:24:21,790 otsida quote, lõppeb Humala. 563 00:24:21,790 --> 00:24:24,420 >> Nüüd see pole veel kõik, mis kasulik, nii et ma lähen vahele, et 564 00:24:24,420 --> 00:24:28,650 ja ma lähen ära koristama see tip Brady ja mine 565 00:24:28,650 --> 00:24:30,990 ja plug-in asemel küsimärk siin. 566 00:24:30,990 --> 00:24:33,290 Nii lihtsalt peab olema selge, mida peaks minu teine ​​argument 567 00:24:33,290 --> 00:24:37,480 olla, kui keegi on just sisse ja ma tahan vaadata, kas ta on tegelikult 568 00:24:37,480 --> 00:24:39,265 kasutaja? 569 00:24:39,265 --> 00:24:40,140 Sihtrühm: [kuuldamatu] 570 00:24:40,140 --> 00:24:40,890 DAVID Humala: Jah. 571 00:24:40,890 --> 00:24:44,120 Olen kuulnud dollari märk alakriips Saa Quote, lõppeb kasutajanimi. 572 00:24:44,120 --> 00:24:50,040 Ja see peaks tagasi mulle ükskõik milline rida minu andmebaasis 573 00:24:50,040 --> 00:24:51,986 mis on kasutajanimi ja Humala. 574 00:24:51,986 --> 00:24:54,860 Nüüd loodetavasti ma lähen tagasi null, kui Humala pole kunagi olnud siin, 575 00:24:54,860 --> 00:24:56,290 või üks, kui tal on. 576 00:24:56,290 --> 00:24:59,026 Ma ei saa tagasi kaks või kolm või neli. 577 00:24:59,026 --> 00:24:59,526 Miks? 578 00:24:59,526 --> 00:25:00,220 >> Sihtrühm: [kuuldamatu] 579 00:25:00,220 --> 00:25:01,120 >> DAVID Humala: ma ütlesin unikaalne, eks? 580 00:25:01,120 --> 00:25:01,750 Lihtne põhjus. 581 00:25:01,750 --> 00:25:04,030 Sest ma ütlesin seda ju olema unikaalne, vaid loogiliselt, 582 00:25:04,030 --> 00:25:07,940 Sul võib olla null või üks Malans selles andmebaasi tabelisse. 583 00:25:07,940 --> 00:25:10,965 Nüüd kui kõrvale, lihtsalt, et sa oled näinud see, kuigi ma saan kasutada GET 584 00:25:10,965 --> 00:25:14,350 ja kuigi PSet6 kasutatakse ainult GET, saate kindlasti POST. 585 00:25:14,350 --> 00:25:17,212 Ja meenutada, et Post on teine tehnikat andmete esitamise 586 00:25:17,212 --> 00:25:19,170 alates vormis, kuid see ei näita üles URL. 587 00:25:19,170 --> 00:25:22,690 See on veidi turvalisem kindlasti jaoks asjad kasutajanimed ja paroolid, 588 00:25:22,690 --> 00:25:25,210 mis PSet7 on tegelikult kaasata. 589 00:25:25,210 --> 00:25:28,130 >> Niisiis, teeme seda PHP MyAdmin ja vaata, mis juhtub. 590 00:25:28,130 --> 00:25:30,020 Ma lähen MySQL tab. 591 00:25:30,020 --> 00:25:34,450 Ja märkad, et vaikeväärtusi PHP MyAdmin, lihtsalt püüan olla kasulik, 592 00:25:34,450 --> 00:25:37,050 on valida star kasutajate kus üks. 593 00:25:37,050 --> 00:25:39,430 Noh, üks on alati tõsi, et see on rumal tõhus 594 00:25:39,430 --> 00:25:40,400 lihtsalt valida kõike. 595 00:25:40,400 --> 00:25:42,691 Aga ma lähen veidi rohkem pedantne ja käsitsi 596 00:25:42,691 --> 00:25:45,920 kirjuta välja SELECT tähe kasutajad. 597 00:25:45,920 --> 00:25:48,294 >> Nüüd tehniliselt, saate Tsiteerin nimi tabelid. 598 00:25:48,294 --> 00:25:50,460 See on haruldane, et sa pead, aga märgata neid ei ole 599 00:25:50,460 --> 00:25:52,240 teie tavaline hinnapakkumisi USA klaviatuuri. 600 00:25:52,240 --> 00:25:54,760 See on niinimetatud graavis, mille Üldiselt on peal vasakul 601 00:25:54,760 --> 00:25:56,000 nurgas oma klaviatuuri. 602 00:25:56,000 --> 00:25:58,500 Aga see on haruldane, et teil tegelikult vaja muretseda, et 603 00:25:58,500 --> 00:25:59,950 nii et ma lihtsalt jätta neid niikuinii. 604 00:25:59,950 --> 00:26:02,280 Nüüd lubage mul minna ja tabas minna. 605 00:26:02,280 --> 00:26:06,616 Ja kui palju ridu ma peaksin tagasi, kui ma valida tähe kasutajad? 606 00:26:06,616 --> 00:26:08,407 >> Sihtrühm: [kuuldamatu] 607 00:26:08,407 --> 00:26:09,990 DAVID Humala: Mitu rida on, kindlasti. 608 00:26:09,990 --> 00:26:12,390 Aga kui palju selles konkreetne jutt kohe? 609 00:26:12,390 --> 00:26:14,640 Kaks, sest seal oli mina ja seal oli Rob. 610 00:26:14,640 --> 00:26:19,370 Niisiis, kui ma vajutan Go näen visuaalselt, et Ma olen saanud tagasi, tõepoolest, kaks rida. 611 00:26:19,370 --> 00:26:22,060 Seal on palju segadust kohta ekraan, aga ma näen ainult kaks rida. 612 00:26:22,060 --> 00:26:28,580 Seevastu, kui ma seda uuesti ja teha VALI star kasutajate, kus kasutajanimi 613 00:26:28,580 --> 00:26:31,840 võrdub quote, lõppeb Humala, nüüd, kui ma vajutan Go, 614 00:26:31,840 --> 00:26:33,970 Ma olen ainult hakka tagasi ühes reas. 615 00:26:33,970 --> 00:26:36,499 Ja lõpuks, kui ma midagi sellist, arvan 616 00:26:36,499 --> 00:26:38,290 et ma ei hooli saada kõike, 617 00:26:38,290 --> 00:26:41,020 mis on selline mõttetu nüüd sest seal on ainult kaks veergu. 618 00:26:41,020 --> 00:26:43,103 See ei ole nagu ma valides suur hulk andmeid. 619 00:26:43,103 --> 00:26:46,720 Oletame ma minna ja ei valige nimi 620 00:26:46,720 --> 00:26:51,990 kasutajate, kus kasutajanimi on võrdne Humala, Mis on tore SQL ausalt, 621 00:26:51,990 --> 00:26:54,290 on see tõesti lihtsalt ei mida sa öelda tahad. 622 00:26:54,290 --> 00:26:57,550 See on päris lühike, kuid sa sõna otseses mõttes lihtsalt öelda seda, mida sa tahad teha. 623 00:26:57,550 --> 00:27:01,130 Vali nime kasutajate kus kasutajanimi võrdub Humala. 624 00:27:01,130 --> 00:27:03,440 Ja see on tõesti nii selge. 625 00:27:03,440 --> 00:27:08,410 Nii, nüüd, kui ma tabanud Go, kui palju rida ma lähen tagasi saada? 626 00:27:08,410 --> 00:27:10,770 Üks, sest see on lihtsalt Humala, loodetavasti. 627 00:27:10,770 --> 00:27:13,100 Või null, kui ta ei ole olemas, kuid ühe maksimaalselt. 628 00:27:13,100 --> 00:27:17,610 >> Ja kui palju veerge ma saan tagasi? 629 00:27:17,610 --> 00:27:18,450 Mitu sambad? 630 00:27:18,450 --> 00:27:20,658 Seekord ma lihtsalt lähen saada üks, sest ma ei ole 631 00:27:20,658 --> 00:27:22,380 vali täht, mis on kõike. 632 00:27:22,380 --> 00:27:27,900 Nüüd ma valides lihtsalt nime, nii et ma lihtsalt saada tagasi üks veerg ja üks rida. 633 00:27:27,900 --> 00:27:31,730 Ja tundub justkui asjakohaselt naeruväärne, lihtsalt otsin super 634 00:27:31,730 --> 00:27:33,060 väike niimoodi. 635 00:27:33,060 --> 00:27:34,290 Niisiis, mis tegelikult toimub? 636 00:27:34,290 --> 00:27:36,890 Kui te käivitate SQL päring kasutades valige, 637 00:27:36,890 --> 00:27:38,700 mida sa saada tagasi andmebaasist 638 00:27:38,700 --> 00:27:42,970 on nagu ajutine tabel ridade ja veergude, võibolla, 639 00:27:42,970 --> 00:27:46,260 aga et jätta kõik, mis tegelikult ei valinud teid. 640 00:27:46,260 --> 00:27:49,010 Nii, see on nagu siis, kui keegi oli suur tabelisse kõik õpilased 641 00:27:49,010 --> 00:27:51,610 Registreeritud mõnda üliõpilased ja sa ütled, 642 00:27:51,610 --> 00:27:55,097 anna mulle kõik uustulnuk, kes olen Registreeritud meie õpilaste rühm, mida 643 00:27:55,097 --> 00:27:56,930 Teie kolleegi üliõpilased võiksid teha 644 00:27:56,930 --> 00:27:58,430 on nad võiksid lihtsalt käsi sa kogu tabelit. 645 00:27:58,430 --> 00:27:59,742 See on nagu öelda valige star. 646 00:27:59,742 --> 00:28:02,200 Ja see on natuke tüütu, kui sa ainult tahtsid uustulnuk. 647 00:28:02,200 --> 00:28:05,640 Ja nii, kui sa selle asemel ütles, Vali täht andmebaasi tabeli 648 00:28:05,640 --> 00:28:08,470 kus aasta võrdub tsitaat, lõppeb uustulnuk, 649 00:28:08,470 --> 00:28:10,810 see on justkui oma sõber õpilase grupp 650 00:28:10,810 --> 00:28:13,770 sõna otseses mõttes esile ja kopeerida ainult uustulnuk rida, 651 00:28:13,770 --> 00:28:16,780 kleebitud nad uude Google Töövihik või Exceli faili, 652 00:28:16,780 --> 00:28:18,860 ja andis sulle tagasi tulemuseks faili ainult. 653 00:28:18,860 --> 00:28:21,710 See on kõik, mis läheb kohta kontseptuaalselt siin. 654 00:28:21,710 --> 00:28:23,920 >> Nii et lõpuks, mida me teha saame päris väljamõeldud asju 655 00:28:23,920 --> 00:28:26,560 salvestades asjad kasutajanime ja paroolid jms. 656 00:28:26,560 --> 00:28:30,310 Aga selgub, et peaksime tegema natuke teistmoodi kui see. 657 00:28:30,310 --> 00:28:34,750 See ei ole nii tark, et ainult salvestada kasutajanimi ja parool. 658 00:28:34,750 --> 00:28:37,790 Keegi varem, ma arvan siia alla, soovitas ID. 659 00:28:37,790 --> 00:28:40,787 Nüüd ID võiks olla nagu Harvardi ID või Yale'i Net ID, 660 00:28:40,787 --> 00:28:42,870 kuid see võiks olla veelgi lihtsam Meie andmebaasis puhul. 661 00:28:42,870 --> 00:28:45,120 Ja tõepoolest, ühise juhul on, et teise kolonni. 662 00:28:45,120 --> 00:28:46,953 Ja ma lähen edasi ja muuta oma laua. 663 00:28:46,953 --> 00:28:49,521 Ja kui sa mängida Selle liidese PSet7, 664 00:28:49,521 --> 00:28:51,770 näete, et saate kontrollida Selle nupu siin ja lisada 665 00:28:51,770 --> 00:28:53,750 valdkonnas alguses lauale. 666 00:28:53,750 --> 00:28:56,720 Ja nüüd, kui ma vajutan Go, see läheb mulle üks neist vormidest 667 00:28:56,720 --> 00:28:57,600 varasemate. 668 00:28:57,600 --> 00:29:00,170 Ma lähen lisada Väli ID. 669 00:29:00,170 --> 00:29:03,070 Ja ma teen seda arvuline. 670 00:29:03,070 --> 00:29:05,362 >> Mul on terve hunnik väärtuste numerics. 671 00:29:05,362 --> 00:29:08,677 Ma lihtsalt valida INT ja ei muretse erinevad suurused. 672 00:29:08,677 --> 00:29:10,510 Ma ei pea täpsustada pikkus või väärtus, 673 00:29:10,510 --> 00:29:13,710 sest see saab olema 32 bitti ükskõik mida. 674 00:29:13,710 --> 00:29:16,070 Näitajad, me ei näinud enne. 675 00:29:16,070 --> 00:29:18,410 Iga huvi mõni neist menüüvalikud seekord? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Sest INT? 678 00:29:23,745 --> 00:29:24,620 Mida soovitaksite? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 No? 681 00:29:28,445 --> 00:29:29,570 Kas mõni neist on mõtet? 682 00:29:29,570 --> 00:29:30,536 Jah. 683 00:29:30,536 --> 00:29:31,900 Jah, allkirjastamata, eks? 684 00:29:31,900 --> 00:29:35,930 >> Üldiselt, kui me ei kavatse anda igaüks unikaalne number, mis 685 00:29:35,930 --> 00:29:38,200 on koht, kus see lugu on läheb, ma tõesti tahan ainult 686 00:29:38,200 --> 00:29:41,919 inimene saada nii palju nagu null ja üks ja kaks ja kolm ja neli. 687 00:29:41,919 --> 00:29:43,710 Ma ei pea tegelema negatiivse numbrid. 688 00:29:43,710 --> 00:29:45,210 See lihtsalt tundub tarbetu keerukus. 689 00:29:45,210 --> 00:29:48,470 Ma tahan 4000000000 võimalikku väärtust, ei 4000000000 võimalikku väärtust, 690 00:29:48,470 --> 00:29:50,699 nii et ma lihtsalt kahekordistunud suutlikkust minu INT. 691 00:29:50,699 --> 00:29:53,490 Selle kõrvale, kui soovite siduda see, et midagi nagu Facebook, 692 00:29:53,490 --> 00:29:56,190 tagasi justkui minu päev, mil Facebook kõigepealt tuli välja, 693 00:29:56,190 --> 00:29:59,510 Ma usun seda, mida nad olid kasutades oma MySQL andmebaasi 694 00:29:59,510 --> 00:30:02,856 salvestada kasutaja tunnust, oli lihtsalt INT. 695 00:30:02,856 --> 00:30:05,230 Aga muidugi, seal on palju reaalsed inimesed maailmas. 696 00:30:05,230 --> 00:30:07,438 Seal on palju võltsitud Facebook moodustab kogu maailmas. 697 00:30:07,438 --> 00:30:11,701 Ja nii lõpuks, Facebook ajama suurust INT, nelja miljardit 698 00:30:11,701 --> 00:30:12,200 väärtus. 699 00:30:12,200 --> 00:30:15,032 Mistõttu, kui te vaatate ümber ja seal on veebilehed 700 00:30:15,032 --> 00:30:16,740 mida öelda, mida oma unikaalse ID on. 701 00:30:16,740 --> 00:30:19,781 Ja kui sa kunagi valisid kasutajanime Facebook, näete oma unikaalne ID. 702 00:30:19,781 --> 00:30:23,080 Ma arvan, et see profiili dot PHP küsimärk ID võrdub midagi. 703 00:30:23,080 --> 00:30:27,210 See on nüüd midagi suurt INT või pika pika kui soovite, 704 00:30:27,210 --> 00:30:29,700 mis on 64-bitine väärtus või midagi võrreldavat. 705 00:30:29,700 --> 00:30:33,620 >> Seega, isegi reaalses maailmas teha neid küsimused lõpuks mõnikord oluline. 706 00:30:33,620 --> 00:30:37,600 Ja selgub siin, kui ma olen andes kogu oma kasutajate unikaalne ID, 707 00:30:37,600 --> 00:30:41,750 Ma tahan olla super selgesõnaline ja minimaalselt teha selles valdkonnas ainulaadne. 708 00:30:41,750 --> 00:30:44,750 Selgub aga seal on üks tükk nomenklatuuri täna liiga 709 00:30:44,750 --> 00:30:46,470 see on primaarvõti. 710 00:30:46,470 --> 00:30:49,800 Kui sa mingit andmebaasi laua ja sa tead ette 711 00:30:49,800 --> 00:30:55,580 et üks tulp nimetatud tabelis peaks ja üheselt identifitseerida rida 712 00:30:55,580 --> 00:30:58,500 tabelis, mida soovid täpsustada seda ja öelda andmebaasis 713 00:30:58,500 --> 00:31:00,250 see on minu esmane võti. 714 00:31:00,250 --> 00:31:02,110 Võib korduda muudes valdkondades, 715 00:31:02,110 --> 00:31:06,330 aga ma ütlen andmebaasi, et see on minu esmane, minu olulisim, 716 00:31:06,330 --> 00:31:08,420 see on garanteeritud olema unikaalne. 717 00:31:08,420 --> 00:31:09,660 >> Nüüd tundub, et see üleliigne. 718 00:31:09,660 --> 00:31:13,830 Ma teen ettepaneku võtta, et me lisada, klõpsates Salvesta siin 719 00:31:13,830 --> 00:31:17,210 valdkonnas nimetaks ma lähen minna ja klõpsake AI, 720 00:31:17,210 --> 00:31:19,720 me tuleme tagasi et ühel hetkel, säästate. 721 00:31:19,720 --> 00:31:22,540 Pakun nüüd, et minu laua näeb välja selline. 722 00:31:22,540 --> 00:31:26,305 Mul on INT Väli ID, char valdkonnas nimetatakse kasutajanime, 723 00:31:26,305 --> 00:31:31,100 varchar Väli nimi, kuid ID, kas see on esmane ja seetõttu unikaalne, 724 00:31:31,100 --> 00:31:33,760 Miks ma lihtsalt raisku aja sisse, mis 725 00:31:33,760 --> 00:31:39,140 tõhusalt on teine ​​unikaalne Väli ID, mis on INT? 726 00:31:39,140 --> 00:31:41,980 >> Kasutajanimi, mäletate, oli juba unikaalne, me ütlesime. 727 00:31:41,980 --> 00:31:45,350 Nii lihtsalt loogiliselt, sa ei pea üheski andmebaasis kogemus põhjus 728 00:31:45,350 --> 00:31:47,570 läbi selle, miks Võib Olen tutvustas 729 00:31:47,570 --> 00:31:50,065 INT nagu minu kordumatu tunnus ka? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Mis see-- veelkord öelda? 732 00:31:53,930 --> 00:31:55,580 >> Sihtrühm: [kuuldamatu] 733 00:31:55,580 --> 00:31:59,534 >> DAVID Humala: Juhuslikud ühendus on lihtsam, miks? 734 00:31:59,534 --> 00:32:00,410 >> Sihtrühm: [kuuldamatu] 735 00:32:00,410 --> 00:32:02,367 DAVID Humala: Jah, see on lihtsalt juurdepääsu numbrid. 736 00:32:02,367 --> 00:32:04,750 Niisiis, kui te arvate sellest tõeliselt on tabel, nagu massiivi, 737 00:32:04,750 --> 00:32:07,690 nüüd on mul kordumatute tunnuste et ma saan hüpata ringi. 738 00:32:07,690 --> 00:32:11,520 Ja parem kui ikka on, et kui suur on INT läheb jälle? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 bitti või neli baiti. 741 00:32:15,800 --> 00:32:17,750 >> Kui suur on minu kasutajanimi saab olema? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Maksimaalselt? 744 00:32:21,990 --> 00:32:22,880 16 baiti. 745 00:32:22,880 --> 00:32:26,080 >> Niisiis, kui teil on tõesti hoolib täita oma kood, 746 00:32:26,080 --> 00:32:31,390 arvan, et tagasi PSet5 sooviksite otsida neli bait väärtusega või 16 747 00:32:31,390 --> 00:32:32,240 baidi väärtus, eks? 748 00:32:32,240 --> 00:32:33,810 See on tõesti nii lihtne. 749 00:32:33,810 --> 00:32:38,060 Sa pead tegema neli korda nii palju tööd otsida kasutajanimed, sest need 750 00:32:38,060 --> 00:32:38,830 on 16 baiti. 751 00:32:38,830 --> 00:32:41,320 Nii, teil on sõna otseses mõttes võrrelda kõiki 16 baiti olevat 752 00:32:41,320 --> 00:32:43,140 Kindlasti jah, see on kasutajanimi tahan. 753 00:32:43,140 --> 00:32:46,610 Arvestades eest INT, saate seda teha vaid nelja baiti. 754 00:32:46,610 --> 00:32:49,212 >> Ja kui kõrvale need, huvitatud arvuti riistvara, 755 00:32:49,212 --> 00:32:52,420 Selgub mahub midagi INT või 32-bitine väärtus midagi 756 00:32:52,420 --> 00:32:55,330 nimetatakse register arvutis CPU, mis tähendab, et see on super, 757 00:32:55,330 --> 00:32:58,400 super kiire, et isegi kõige madalama tasemel arvuti riistvara. 758 00:32:58,400 --> 00:33:00,530 Niisiis, seal on lihtsalt eeliseid kogu. 759 00:33:00,530 --> 00:33:01,530 Niisiis, mida see tähendab? 760 00:33:01,530 --> 00:33:04,850 Tegelikult, kui sa mingit andmebaasi tabeli peaaegu kogu aeg 761 00:33:04,850 --> 00:33:07,170 kas sa ei ole ainult andmete hoolid, 762 00:33:07,170 --> 00:33:09,280 vaid ka midagi kordumatu tunnus 763 00:33:09,280 --> 00:33:11,280 sest see läheb tehkem muid asju. 764 00:33:11,280 --> 00:33:13,160 Ja olgem komistada üks probleem. 765 00:33:13,160 --> 00:33:15,990 >> Oletame, et kasutajad ei ole lihtsalt kasutajanimed ja nimed, 766 00:33:15,990 --> 00:33:19,540 kuid neil on ka asjad linnad ja riikide ja postiindeksid, vähemalt 767 00:33:19,540 --> 00:33:20,432 siin USAs. 768 00:33:20,432 --> 00:33:22,390 Nii, et ma lähen edasi minna ja lihtsalt kiiresti öelda, 769 00:33:22,390 --> 00:33:26,180 anna mulle veel kolm sambad lõpus tabelis. 770 00:33:26,180 --> 00:33:28,900 Ja see saab olema City, see saab olema riigi, 771 00:33:28,900 --> 00:33:30,400 ja see saab olema Zip. 772 00:33:30,400 --> 00:33:32,710 >> Nüüd City, milliseid andmetüüpe kui see peaks olema, võib-olla? 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 Ma ei tea, mida Pikim nimi linn on. 776 00:33:37,780 --> 00:33:40,571 Kusagil Ameerikas, seal on ilmselt mõned naeruväärselt pikk sõna, 777 00:33:40,571 --> 00:33:43,605 nii Lähme koos 255, mõnevõrra ajalooliselt või meelevaldselt. 778 00:33:43,605 --> 00:33:44,730 Riik, mida sa teha tahad? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Kohtuotsus kõne, eks? 781 00:33:50,367 --> 00:33:51,700 Mis võibolla kõige tõhusam? 782 00:33:51,700 --> 00:33:53,500 Mitu tähemärki? 783 00:33:53,500 --> 00:33:55,950 Võib-olla vaid kaks, kui me suudame pääse teed lihtsalt, 784 00:33:55,950 --> 00:33:58,250 jms, MA Massachusetts ja nii edasi. 785 00:33:58,250 --> 00:34:00,520 Niisiis, ma lähen char väärtus kaks. 786 00:34:00,520 --> 00:34:03,080 >> Zip kood on huvitav. 787 00:34:03,080 --> 00:34:06,679 Oleme siin 02138, nii et soovitab, et peaksime kasutama, mida? 788 00:34:06,679 --> 00:34:07,470 See on INT, eks? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, lühike? 791 00:34:12,800 --> 00:34:14,521 Lühike töötaks. 792 00:34:14,521 --> 00:34:15,020 No? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR või viis, aga ma tahan INT. 795 00:34:20,870 --> 00:34:23,710 Miks tagurdamise kohta INT? 796 00:34:23,710 --> 00:34:26,820 Veenda mind sellest. 797 00:34:26,820 --> 00:34:29,210 Mis loll umbes INT, minu idee? 798 00:34:29,210 --> 00:34:29,871 Jah. 799 00:34:29,871 --> 00:34:31,199 >> Sihtrühm: võtavad rohkem mälu. 800 00:34:31,199 --> 00:34:32,909 >> DAVID Humala: võtavad rohkem mälu. 801 00:34:32,909 --> 00:34:35,310 Neli baiti, kuid sa oled ettepaneku postiindeksi 802 00:34:35,310 --> 00:34:39,000 viie baiti või keegi oli nagu CHAR, mis tunne on eh, see ei ole tõesti 803 00:34:39,000 --> 00:34:39,620 puhul. 804 00:34:39,620 --> 00:34:40,489 >> Noh, lõbus lugu. 805 00:34:40,489 --> 00:34:43,179 Aastaid tagasi, kui ma harjunud kasutama Microsoft Outlook minu e-posti, 806 00:34:43,179 --> 00:34:45,150 Ma lõpuks tahtis minna Gmail. 807 00:34:45,150 --> 00:34:48,949 Ja nii ma eksporditakse kõik minu kontaktid Outlook CSV-failina. 808 00:34:48,949 --> 00:34:50,699 Komadega eraldatud väärtuste, mis lihtsalt tähendas Ma 809 00:34:50,699 --> 00:34:54,060 olid kõik mu sõbrad nimed ja viimase Nimede ja telefoninumbrite ja postiindeksid 810 00:34:54,060 --> 00:34:54,747 ja kõik see. 811 00:34:54,747 --> 00:34:56,580 Ja siis ma tegin viga avades selle 812 00:34:56,580 --> 00:34:58,640 Excelis, mis on tabelarvutusprogrammi, et 813 00:34:58,640 --> 00:35:00,289 mõistab CSV faile nagu me oleme näinud. 814 00:35:00,289 --> 00:35:03,080 Aga siis pean ma tabanud, nagu, Juhtimis- ja kontrollsüsteemi S ühel hetkel. 815 00:35:03,080 --> 00:35:06,250 Ja Excel ilmselt ajal oli omadus, mille läbi iga kord, kui ta 816 00:35:06,250 --> 00:35:08,100 nägin number, seda üritanud olla kasulik. 817 00:35:08,100 --> 00:35:11,610 Ja kui see number algas nulli, see oleks lihtsalt lahti saada neist. 818 00:35:11,610 --> 00:35:13,420 Miks sa vajad juhtiv nullid täisarvud? 819 00:35:13,420 --> 00:35:15,140 Nad on mõttetu, matemaatiliselt. 820 00:35:15,140 --> 00:35:17,530 Nad ei ole mõttetu USA Postal süsteemi. 821 00:35:17,530 --> 00:35:19,954 Niisiis, ma olen olnud juba aastaid, sel päeval, ma ikka 822 00:35:19,954 --> 00:35:22,370 on sõpru, kui harva juhtub, et mul on vaja kellegi 823 00:35:22,370 --> 00:35:24,078 tegeleda nendel päevadel, Ma ikka näha, et ma 824 00:35:24,078 --> 00:35:26,767 on sõber Cambridge, Massachusetts, 2138. 825 00:35:26,767 --> 00:35:29,350 Ja see on tüütu, kui sa oled üritab sorteerida ning programmiliselt 826 00:35:29,350 --> 00:35:30,975 luua ümbriku või lihtsalt kübeke see maha. 827 00:35:30,975 --> 00:35:33,599 Ja see on sellepärast, et sel põhjusel, Ma valisin vale andmete tüübi. 828 00:35:33,599 --> 00:35:34,490 Niisiis, ma armastan oma idee. 829 00:35:34,490 --> 00:35:35,650 Olgem kasutada sümbolit valdkonnas. 830 00:35:35,650 --> 00:35:38,340 Viis märki, välja arvatud on nurgas puhul. 831 00:35:38,340 --> 00:35:42,220 Kui sa ikka saata posti, mõnikord postiindeksid nendel päevadel, 832 00:35:42,220 --> 00:35:45,360 nad, nagu, pluss neli. 833 00:35:45,360 --> 00:35:48,200 Niisiis, me peame sidekriipsuga ja seejärel vajame veel neli numbrit. 834 00:35:48,200 --> 00:35:50,330 Nii et olgem ausad, see võiks minna mitmeti. 835 00:35:50,330 --> 00:35:52,371 >> Sest nüüd, ma lähen hoida see lihtne ja ma olen lihtsalt 836 00:35:52,371 --> 00:35:54,780 ütlen, et see on viie CHAR väärtus ja me oleme 837 00:35:54,780 --> 00:35:56,739 läheb vahele kogu kriips pluss neli. 838 00:35:56,739 --> 00:35:58,280 Aga need on, milliseid kompromisse. 839 00:35:58,280 --> 00:36:00,196 Ja sa ei mõtle Samad probleemid tekivad 840 00:36:00,196 --> 00:36:01,860 Telefoninumbrite või muudes valdkondades. 841 00:36:01,860 --> 00:36:04,350 >> Ja nüüd, see on tegelikult rumal tee minna. 842 00:36:04,350 --> 00:36:08,000 Oletame Rob ja I ja Hannah ja Maria ja [? Davon?] Ja Andy 843 00:36:08,000 --> 00:36:12,820 ja teised töötajad elavad kõik Cambridge, Massachusetts, 02138. 844 00:36:12,820 --> 00:36:17,970 See tegelikult loll, et ma olen Lisades oma kasutajate tabelist, linn, riik, 845 00:36:17,970 --> 00:36:18,630 ja ZIP. 846 00:36:18,630 --> 00:36:20,980 Miks? 847 00:36:20,980 --> 00:36:21,960 >> Sihtrühm: [kuuldamatu] 848 00:36:21,960 --> 00:36:22,918 >> DAVID Humala: Ütle uuesti? 849 00:36:22,918 --> 00:36:24,310 Sihtrühm: [kuuldamatu] 850 00:36:24,310 --> 00:36:25,850 >> DAVID Humala: Nad alati lähe kokku, eks? 851 00:36:25,850 --> 00:36:28,660 Kui selgub, oleme harjunud mõtlema see oli nii kuni me ammendavalt 852 00:36:28,660 --> 00:36:30,570 otsida kogu USA, ja selgub, et seal 853 00:36:30,570 --> 00:36:32,653 on mõningaid puudusi kus mitmed linnad on 854 00:36:32,653 --> 00:36:35,060 Samal zip, mis on imelik. 855 00:36:35,060 --> 00:36:40,580 Aga kui me ette näha, et nüüd, 02138 Alati on Cambridge, Massachusetts, 856 00:36:40,580 --> 00:36:44,910 miks maailmas oleks sa salvestada Sinu andmebaasi Cambridge ja MA ja 02138 857 00:36:44,910 --> 00:36:49,357 minu ja Hannah ja Rob ja for [? Davon?] Ja teised, kes elavad 858 00:36:49,357 --> 00:36:51,190 siin Cambridge, see on täiesti üleliigne. 859 00:36:51,190 --> 00:36:54,480 >> Me peaksime minema lihtsalt ladustamiseks mida? 860 00:36:54,480 --> 00:36:55,610 Just sihtnumber. 861 00:36:55,610 --> 00:36:58,660 Aga siis, kui me salvestada ainult sihtnumber, ma ei taha, ilmselt, 862 00:36:58,660 --> 00:37:02,160 minu kodulehel teada, kus 02138 on. 863 00:37:02,160 --> 00:37:03,910 Niisiis, ma pean teises tabelis. 864 00:37:03,910 --> 00:37:04,697 Ja see on OK. 865 00:37:04,697 --> 00:37:07,530 Ja tegelikult on see üks disaini protsesside kavandamise tabelid 866 00:37:07,530 --> 00:37:11,472 et saad teha PSet7 ka kusjuures soovite tegur ühised andmed. 867 00:37:11,472 --> 00:37:14,430 Just nagu me oleme faktooring välja ühine kood ja faktooring ühised 868 00:37:14,430 --> 00:37:17,380 stiilid CSS, siin liiga andmebaasis 869 00:37:17,380 --> 00:37:21,180 kui ma ainult vaja 02138 üheselt tuvastada kellegi kodulinnas, 870 00:37:21,180 --> 00:37:25,020 ei talleta Cambridge, Mass eest iga darn kasutaja oma laua. 871 00:37:25,020 --> 00:37:29,770 >> Selle asemel, on eraldi tabel nimega Postiindeksid, et peaks olema, mida sambad? 872 00:37:29,770 --> 00:37:33,490 Tõenäoliselt ID-valdkonnas, lihtsalt sellepärast, et põhimõtteid me räägime nüüd. 873 00:37:33,490 --> 00:37:35,720 Tõenäoliselt zip väli 02138. 874 00:37:35,720 --> 00:37:38,400 Ja siis ilmselt mida teised veerud? 875 00:37:38,400 --> 00:37:42,950 Linn ja riik, kuid ainult üks rida 02138, üks rida 02139, 876 00:37:42,950 --> 00:37:44,772 üks rida 90210. 877 00:37:44,772 --> 00:37:46,730 Ja see on sõna otseses mõttes kõik sihtnumbrid ma tean. 878 00:37:46,730 --> 00:37:49,012 >> Nüüd, mida saate teha? 879 00:37:49,012 --> 00:37:51,220 See on problemaatiline, sest Nüüd on mul kaks tabelit. 880 00:37:51,220 --> 00:37:54,660 Niisiis, minu kasutajad on enamasti üle siin, kuid nende linnriik info on 881 00:37:54,660 --> 00:37:55,390 siin. 882 00:37:55,390 --> 00:37:58,635 Niisiis, tuleb välja, SQL, seal on tegelikult viis liituda info 883 00:37:58,635 --> 00:38:00,470 ja sa näed seda ka pset. 884 00:38:00,470 --> 00:38:03,000 >> Aga selgub, saate midagi sellist. 885 00:38:03,000 --> 00:38:10,501 VALI tähe kasutajad, LIITU lukud ON kasutajate dot zip võrdub lukud dot zip. 886 00:38:10,501 --> 00:38:13,360 Milline on vähe paljusõnaline, küll, kuid seda vaid 887 00:38:13,360 --> 00:38:17,590 tähendab valige kõike protsess võtab oma kasutajate tabelis 888 00:38:17,590 --> 00:38:19,580 ja minu lukud tabelis. 889 00:38:19,580 --> 00:38:22,120 Liitu neist ühelt valdkonnas neil veerus. 890 00:38:22,120 --> 00:38:24,780 Niisiis, sõna otseses mõttes midagi niimoodi, ja anna mulle tagasi 891 00:38:24,780 --> 00:38:27,360 uus ajutine tabel see on laiem, mis on suurem, 892 00:38:27,360 --> 00:38:29,450 millel on kõik veerud mõlemad. 893 00:38:29,450 --> 00:38:33,510 Ja see, lihtsalt oleks süntaks midagi sellist. 894 00:38:33,510 --> 00:38:35,540 >> Niisiis, seal on see ees, kuid seal saab 895 00:38:35,540 --> 00:38:38,950 olla teiste disaini otsuseid saate pead tegema, mitte ainult indeksid 896 00:38:38,950 --> 00:38:40,550 vaid ka suubuvad väljakutseid. 897 00:38:40,550 --> 00:38:43,360 Tegelikult on väljakutse Igal andmebaasi disain 898 00:38:43,360 --> 00:38:47,930 kusjuures mõnikord kaks inimest tahta juurdepääs samale rida andmebaasi 899 00:38:47,930 --> 00:38:48,530 tabelis. 900 00:38:48,530 --> 00:38:51,450 Nii, see on midagi, mida me tulen puutuvad PSet7 samuti. 901 00:38:51,450 --> 00:38:54,686 >> Aga ma mõtlesin, et ma vaadata ühe rünnak, mis on võimalik SQL. 902 00:38:54,686 --> 00:38:56,560 Mis on mõned probleeme, mis võivad tekkida? 903 00:38:56,560 --> 00:38:58,170 Nii, saate kokku puutuda selle PSet7. 904 00:38:58,170 --> 00:39:01,874 Ja me ütlen teile otse, mida kodeerimine lahendus sellele probleemile on. 905 00:39:01,874 --> 00:39:04,790 Aga kui te võtate kõrgema klassi, eriti operatsioonisüsteemid, 906 00:39:04,790 --> 00:39:06,950 sa lähed tekib küsimus atomicity, 907 00:39:06,950 --> 00:39:10,080 probleemi üritavad teha Mitme asja korraga 908 00:39:10,080 --> 00:39:11,000 katkestusteta. 909 00:39:11,000 --> 00:39:14,560 >> Ja ma mõtlesin, et ma tutvustada selle Idee PSet7 metafoori 910 00:39:14,560 --> 00:39:18,160 et ma õppinud ennast Margo Seltzer on CS164 operatsioonisüsteemid 911 00:39:18,160 --> 00:39:18,990 klassi aastat tagasi. 912 00:39:18,990 --> 00:39:22,230 Oletame, et teil on üks neist ühiselamus külmkappe oma Dorm tuba või maja, 913 00:39:22,230 --> 00:39:24,474 ja sul on tõeline Eelistus piima. 914 00:39:24,474 --> 00:39:27,140 Ja nii, te tulete klassi Ühel päeval, kui avate külmik. 915 00:39:27,140 --> 00:39:27,620 Oh, kurat võtaks. 916 00:39:27,620 --> 00:39:28,870 Ei ole piima külmkappi. 917 00:39:28,870 --> 00:39:32,470 Niisiis, sa sulgeda külmik, ukse lukku, lukustada oma Dorm, 918 00:39:32,470 --> 00:39:34,770 kõndida ümber nurga CVS, võta line, 919 00:39:34,770 --> 00:39:36,312 ja alustada end välja mõned piima. 920 00:39:36,312 --> 00:39:38,978 Ja see läheb veidi aega, sest need kuradi ise kassas 921 00:39:38,978 --> 00:39:40,570 letid võtta igaveseks kasutada niikuinii. 922 00:39:40,570 --> 00:39:41,950 Nii vahepeal oma toakaaslane tuleb koju. 923 00:39:41,950 --> 00:39:43,470 Ta tõesti meeldib piim ka. 924 00:39:43,470 --> 00:39:45,520 Nad tulevad Dorm tuba, avada külmik, oh, darn ta. 925 00:39:45,520 --> 00:39:46,490 Ei ole enam piima. 926 00:39:46,490 --> 00:39:49,040 >> Nii ta ka läheb ümber nurga. 927 00:39:49,040 --> 00:39:51,670 Aga nüüd, sest seal on nagu kaks või kolm või neli CVSes lähedal, 928 00:39:51,670 --> 00:39:53,800 nad juhtuvad minema üks erinevatega väljakul. 929 00:39:53,800 --> 00:39:55,830 Ja nii nüüd, paar minutit Hiljem, te mõlemad 930 00:39:55,830 --> 00:39:58,060 koju ja vuih, halvim probleemi kunagi. 931 00:39:58,060 --> 00:40:00,967 Nüüd on teil liiga palju piima sest see läheb Hapantua. 932 00:40:00,967 --> 00:40:03,050 Ja sulle meeldib piim, aga sa tõesti ei meeldi piima. 933 00:40:03,050 --> 00:40:06,730 >> Nüüd, see oli kallis viga, sest te mõlemad 934 00:40:06,730 --> 00:40:09,870 tehtud otsuse aluseks on riigi mõne muutuja 935 00:40:09,870 --> 00:40:12,660 oli protsessis on muutunud sind, 936 00:40:12,660 --> 00:40:14,560 algataja hakka piima. 937 00:40:14,560 --> 00:40:17,785 Niisiis, mida on ehk inimese lahendus sellele probleemile? 938 00:40:17,785 --> 00:40:18,660 Sihtrühm: [kuuldamatu] 939 00:40:18,660 --> 00:40:19,430 DAVID Humala: Jäta teade, eks? 940 00:40:19,430 --> 00:40:21,850 Jätke alati tähele, kui sa oled tuttav, et show. 941 00:40:21,850 --> 00:40:23,100 Jah, seal on kahekesi. 942 00:40:23,100 --> 00:40:25,940 Niisiis, jätke alati tähele, või sõna otseses mõttes lukustada külmkapp 943 00:40:25,940 --> 00:40:28,602 mingi tabaluku või midagi Peal niimoodi. 944 00:40:28,602 --> 00:40:31,310 Aga see on tegelikult saab olema peamine probleem on andmebaasi disain, 945 00:40:31,310 --> 00:40:34,710 eriti kui sa võisid mitu brauserid, mitu sülearvutid, 946 00:40:34,710 --> 00:40:37,450 suurkasutajatega kõik üritavad ajakohastada teavet korraga. 947 00:40:37,450 --> 00:40:40,590 Eriti tundlik teave nagu finantsteavet, 948 00:40:40,590 --> 00:40:43,350 kusjuures koos aktsia kauplemise veebilehel nagu Teil on hoone, 949 00:40:43,350 --> 00:40:47,270 Mis siis, kui sa tahad, et kontrollida, kui palju raha sul on ja siis kui sul on piisavalt, 950 00:40:47,270 --> 00:40:48,490 osta mõned varu? 951 00:40:48,490 --> 00:40:50,899 >> Aga mis siis, kui keegi teine, kes on ühine konto teiega 952 00:40:50,899 --> 00:40:52,690 on samaaegselt üritab osta mõned varu? 953 00:40:52,690 --> 00:40:55,190 Niisiis, ta on kontrollida kontoseisu, te mõlemad 954 00:40:55,190 --> 00:40:57,540 saada tagasi samal vastus, ei ole piima. 955 00:40:57,540 --> 00:41:00,580 Või nii saad tagasi vastus, sul on $ 100 konto. 956 00:41:00,580 --> 00:41:04,680 Mõlemad üritate teha otsus osta üks osa mõne firma aktsia. 957 00:41:04,680 --> 00:41:06,130 >> Ja nüüd, mis juhtub? 958 00:41:06,130 --> 00:41:07,140 Sul on kaks aktsiaid? 959 00:41:07,140 --> 00:41:08,420 Teil ei ole aktsiaid? 960 00:41:08,420 --> 00:41:10,320 Probleemid nagu mis võivad tekkida. 961 00:41:10,320 --> 00:41:11,755 Niisiis, me kohtame seda. 962 00:41:11,755 --> 00:41:14,630 SQL süst rünnakud, õnneks on midagi, mida me aitame teid, 963 00:41:14,630 --> 00:41:17,430 kuid need on metsikult levinud nendel päevadel ikka. 964 00:41:17,430 --> 00:41:18,680 Nii, see on lihtsalt üks näide. 965 00:41:18,680 --> 00:41:21,290 Ma ei tee väiteid, et Harvardi PIN süsteem 966 00:41:21,290 --> 00:41:23,130 tundlikud selle konkreetse rünnaku. 967 00:41:23,130 --> 00:41:24,160 Oleme püüdnud. 968 00:41:24,160 --> 00:41:26,120 Aga sa tead, et me on valdkond, nagu seda. 969 00:41:26,120 --> 00:41:29,620 Ja Yale'i Net ID on sarnane otsin ekraani nendel päevadel. 970 00:41:29,620 --> 00:41:33,190 Ja selgub, et võib-olla PIN süsteemi rakendatakse PHP. 971 00:41:33,190 --> 00:41:37,050 >> Ja kui see were-- see Mitte-- nad võib olla kood, mis näeb välja selline. 972 00:41:37,050 --> 00:41:38,210 Neil on kaks muutujat. 973 00:41:38,210 --> 00:41:42,495 Andke mulle kasutajanimi ja parool kohalt super globaalne muutuja 974 00:41:42,495 --> 00:41:43,970 et me rääkisime varem. 975 00:41:43,970 --> 00:41:47,310 Ehk Harvard on päringu nagu SELECT tähe kasutajad 976 00:41:47,310 --> 00:41:50,005 kus kasutajanimi on võrdne ja parooli võrdne. 977 00:41:50,005 --> 00:41:51,880 Ja teate, et ma olen lihtsalt kõrvaldamine seda kasutades 978 00:41:51,880 --> 00:41:55,050 lokkis traksidega märke teistest päev, mis tähendab lihtsalt ühendage väärtus 979 00:41:55,050 --> 00:41:55,550 siin. 980 00:41:55,550 --> 00:41:57,449 Ma ei kasuta küsimärk tehnikat. 981 00:41:57,449 --> 00:41:59,240 Mul ei ole ühtegi teist või kolmas argument. 982 00:41:59,240 --> 00:42:02,350 Ma olen lihtsalt sõna otseses mõttes ehitamise string ennast. 983 00:42:02,350 --> 00:42:04,930 >> Probleem, kuigi see, et kui keegi meeldib scroob, 984 00:42:04,930 --> 00:42:09,020 mis on viide film, logib midagi sellist, 985 00:42:09,020 --> 00:42:11,250 ja ma olen eemaldanud dots et tavaliselt varjata 986 00:42:11,250 --> 00:42:14,370 paroole, mis siis, kui ta on eriti pahatahtlik 987 00:42:14,370 --> 00:42:18,860 ja tema parooli võibolla on 12345, Ühe filmi nimega "Spaceballs" 988 00:42:18,860 --> 00:42:21,970 kuid ta kriitiliselt tüübid ülakoma pärast viit, 989 00:42:21,970 --> 00:42:24,790 siis sõna otseses mõttes sõna või ruumi, ja siis tsiteerin 990 00:42:24,790 --> 00:42:29,160 lõppeb üks võrdub quote üks, kuid teate, et ta on ära jäetud, mida? 991 00:42:29,160 --> 00:42:32,700 Ta jättis välja quote paremal ja ta jättis välja quote vasakul. 992 00:42:32,700 --> 00:42:35,170 >> Sest kui see ründaja scroob eeldus 993 00:42:35,170 --> 00:42:38,160 on see, et inimesed, kes kirjutas Selle PHP kood ei ole nii hele, 994 00:42:38,160 --> 00:42:42,990 äkki nad lihtsalt mõnele üksikule jutumärgid interpolatsiooni 995 00:42:42,990 --> 00:42:45,210 muutuja lokkis traksid? 996 00:42:45,210 --> 00:42:48,620 Ja et äkki saaks ta lahke ning täiendada oma mõtte 997 00:42:48,620 --> 00:42:53,290 neid, kuid nii, et läheb lase tal häkkis PIN süsteem. 998 00:42:53,290 --> 00:42:55,310 Teisisõnu, oletame et see on kood 999 00:42:55,310 --> 00:42:57,140 ja nüüd ühendage mida scroob kirjutatud. 1000 00:42:57,140 --> 00:42:58,770 Ja see on punane, sest see on halb. 1001 00:42:58,770 --> 00:43:01,310 >> Ja selle aluseks oleva teksti on see, mida ta kirjutada, 1002 00:43:01,310 --> 00:43:05,510 scroob võiks petta Harvardi server arvesse ehitamise SQL päring 1003 00:43:05,510 --> 00:43:07,440 string, mis näeb välja selline. 1004 00:43:07,440 --> 00:43:11,760 Salasõna võrdub 12345 või üks võrdub üks. 1005 00:43:11,760 --> 00:43:14,820 Mistõttu loogiliselt on see, et see on sisse scroob 1006 00:43:14,820 --> 00:43:18,360 aastal, kui tema parool 12345 või kui üks võrdsete 1007 00:43:18,360 --> 00:43:22,660 üks, mis on muidugi alati tõene, mis tähendab scroob alati satub. 1008 00:43:22,660 --> 00:43:26,060 >> Ja nii, kuidas määrata Siin, nagu ka paljudel juhtudel, 1009 00:43:26,060 --> 00:43:28,140 oleks kirjutada rohkem kaitsele. 1010 00:43:28,140 --> 00:43:30,390 Et kasutada midagi meie tegelik päringu funktsiooni, mis 1011 00:43:30,390 --> 00:43:33,980 näete PSet7, kus me ühendage midagi küsimärke siin. 1012 00:43:33,980 --> 00:43:35,980 Ja ilu päringu funktsiooni, et me 1013 00:43:35,980 --> 00:43:40,010 teile on ta kaitseb nende vastu Niinimetatud SQL süst rünnakud, kus 1014 00:43:40,010 --> 00:43:44,260 keegi kavaldades oma koodi süstivate enda SQL koodi. 1015 00:43:44,260 --> 00:43:47,380 Sest see, mis päringu funktsiooni anname tegelikult teha, 1016 00:43:47,380 --> 00:43:51,270 kui te kasutate küsimärk süntaks ja teine ​​ja kolmas argument siin 1017 00:43:51,270 --> 00:43:54,590 on see, mida tegid seda lisada sisend, et kasutaja ei esitanud? 1018 00:43:54,590 --> 00:43:56,060 Need kurakriips hinnapakkumisi. 1019 00:43:56,060 --> 00:43:58,590 >> Nii, see põgeneb kõigi võimalike ohtlikke sümboleid. 1020 00:43:58,590 --> 00:44:01,000 See tundub imelik nüüd, kuid see ei ole haavatav 1021 00:44:01,000 --> 00:44:03,260 kuna see ei ülesehituse muutmist enam 1022 00:44:03,260 --> 00:44:06,470 sest et kogu salasõna on nüüd ülakoma see pole, 1023 00:44:06,470 --> 00:44:07,596 Tegelikult scroob parooli. 1024 00:44:07,596 --> 00:44:09,845 Niisiis, seal on olnud mõned naljad selle aastate jooksul. 1025 00:44:09,845 --> 00:44:12,570 Niisiis, see oli tehtud foto Mõne geek parklas 1026 00:44:12,570 --> 00:44:16,620 millega sa võiksid teada, et mõned linnad ja riikide proovida skaneerida litsentsi 1027 00:44:16,620 --> 00:44:19,460 plaat teile arve või pileti sulle kui sa lähed läbi ilma, nagu, 1028 00:44:19,460 --> 00:44:20,660 E-Z Pass asi. 1029 00:44:20,660 --> 00:44:24,490 Nii, see inimene oletada, et võibolla inimesed kirjalikult E-Z Pass süsteem 1030 00:44:24,490 --> 00:44:28,240 ei olnud nii särav ja äkki nad lihtsalt märge on kokku string, 1031 00:44:28,240 --> 00:44:32,190 nii, et ta ei suutnud pahatahtlikult mitte ainult täiendada oma mõtte, 1032 00:44:32,190 --> 00:44:35,150 aga tegelikult ellu halb käsk, mis me oleme seni mainimata 1033 00:44:35,150 --> 00:44:36,380 kuid saab ilmselt vist. 1034 00:44:36,380 --> 00:44:39,820 Et lisaks kustutada ja sisestada ja uuendada ning valida, 1035 00:44:39,820 --> 00:44:43,370 seal on ka märksõna nimetatakse langus, mis sõna otseses mõttes kustutab kõik 1036 00:44:43,370 --> 00:44:45,300 andmebaasi, mis Eriti halb. 1037 00:44:45,300 --> 00:44:48,760 >> Me saame suurendada selle, kui see on natuke raske näha. 1038 00:44:48,760 --> 00:44:52,300 See, nüüd on kuulsa multifilmi see on imeliselt tark nüüd 1039 00:44:52,300 --> 00:44:53,145 ja arusaadav. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [NAER] 1042 00:45:04,750 --> 00:45:05,910 >> Jah, lahe. 1043 00:45:05,910 --> 00:45:06,800 Kind of geeking välja. 1044 00:45:06,800 --> 00:45:08,800 Nii et need, siis on SQL süst rünnakud. 1045 00:45:08,800 --> 00:45:13,050 Ja nad on nii lihtne, et vältida abil õige koodi või paremal raamatukogud. 1046 00:45:13,050 --> 00:45:15,947 Ja näete PSet7, mis on miks me anname teile päringu funktsiooni. 1047 00:45:15,947 --> 00:45:17,780 Niisiis, paar õrritused et me arvasime me tahaks 1048 00:45:17,780 --> 00:45:19,930 teile siin meie Ülejäänud minuti koos. 1049 00:45:19,930 --> 00:45:24,030 Niisiis, kui see teile meenub alates nädalal null, siis kehtestati need kaks lambid, mille 1050 00:45:24,030 --> 00:45:26,610 on kena, mitte ainult sellepärast, nad on üsna ja on värviline, 1051 00:45:26,610 --> 00:45:29,450 kuid kuna nad toetavad midagi nimetatakse API taotlus 1052 00:45:29,450 --> 00:45:31,980 Programming Interface Ja in CS50 siiani oleme 1053 00:45:31,980 --> 00:45:34,440 keskendunud peamiselt GET ja POST, kuid selgub, 1054 00:45:34,440 --> 00:45:37,390 seal on teised HTTP verbid nagu PUT. 1055 00:45:37,390 --> 00:45:39,430 >> Ja tegelikult, see oli liumägi nädalal null 1056 00:45:39,430 --> 00:45:44,930 kusjuures, kui sa kirjutad koodi, mis saadab a la PSet6 HTTP taotluse, et 1057 00:45:44,930 --> 00:45:49,647 näeb välja selline selle tüki teksti allosas, mida nimetatakse JSON, 1058 00:45:49,647 --> 00:45:52,230 või JavaScript Object Märge et me räägime järgmisel nädalal, 1059 00:45:52,230 --> 00:45:57,030 saab sisse või välja lülitada või muuta värvi tuled sarnaselt. 1060 00:45:57,030 --> 00:46:00,480 Nii et kui CS50 on ka lisaks mõned need lambid siin New Haven 1061 00:46:00,480 --> 00:46:02,480 Kui soovite laenata neid lõplikke projekte, 1062 00:46:02,480 --> 00:46:04,370 Samuti mõned Microsoft Bändid, mis on nagu 1063 00:46:04,370 --> 00:46:07,619 kellad, et te kannate ümber randme et sarnaselt on API, nii et teil 1064 00:46:07,619 --> 00:46:10,040 saab kirjutada oma tarkvara nende jaoks. 1065 00:46:10,040 --> 00:46:12,490 >> Meil on konto Apple iOS kood nii 1066 00:46:12,490 --> 00:46:15,510 et kui sul on Apple Watch või iPhone või iPad või iPod, 1067 00:46:15,510 --> 00:46:17,707 võite kirjutada koodi, mis tegelikult töötab neid. 1068 00:46:17,707 --> 00:46:19,540 Meil on terve hunnik of Arduinos, mis on 1069 00:46:19,540 --> 00:46:22,010 tilluke arvutid ilma juhtudel sisuliselt 1070 00:46:22,010 --> 00:46:25,240 et saate ühendada USB, Tavaliselt sinu enda Mac või PC, 1071 00:46:25,240 --> 00:46:28,810 kirjutada koodi, mis töötab nende füüsilist seadmed, mis on sageli andurid neile 1072 00:46:28,810 --> 00:46:30,790 nii saad suhelda reaalses maailmas. 1073 00:46:30,790 --> 00:46:32,860 Meil on terve hunnik hüpe Resolutsiooni seadmeid, 1074 00:46:32,860 --> 00:46:36,500 mis on USB seadmed Mac ja Arvutid, siin ja jälle, New Haven. 1075 00:46:36,500 --> 00:46:40,080 Ja kui sa ühendada oma Mac, saab tegelikult kontrollida arvuti 1076 00:46:40,080 --> 00:46:42,550 kirjutades tarkvara et infrapuna kiirte, 1077 00:46:42,550 --> 00:46:46,360 arvud, kus oma inimeste kätega, isegi ilma puudutamata klaviatuuri. 1078 00:46:46,360 --> 00:46:49,135 Me mõtlesime, et tahaks jagada kiire heidame pilgu sellele, näiteks. 1079 00:46:49,135 --> 00:46:51,428 >> [Muusika mängib] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Niisiis, meil on terve hunnik neid asju, 1082 00:47:57,590 --> 00:48:01,040 Ka nn Müo arm ansamblid mis paned üle käsivarre 1083 00:48:01,040 --> 00:48:04,595 ja siis saab kontrollida reaalne maailma või virtuaalses maailmas niimoodi. 1084 00:48:04,595 --> 00:48:06,471 >> [Muusika mängib] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Või on meil ka mõned Google Papi, mis on sõna otseses mõttes, nagu, 1087 00:49:20,920 --> 00:49:24,841 pappkast võid panna oma nägu, kuid slide telefoni sinna 1088 00:49:24,841 --> 00:49:27,590 nii, et paned klaasi oma telefoni tõesti lähedal silmad. 1089 00:49:27,590 --> 00:49:30,190 Ja Google kartong on päris odav at $ 10 või 20 $. 1090 00:49:30,190 --> 00:49:32,230 Ja see on natuke objektiivid et veidi off vahetuses 1091 00:49:32,230 --> 00:49:35,900 pilt ekraanil oma inimese silmad teile sügavust 1092 00:49:35,900 --> 00:49:39,550 nii et sa tegelikult 3D keskkonna ees. 1093 00:49:39,550 --> 00:49:42,927 Meil on ka mõned Samsung Gear, mis on kallim versioon sellest, 1094 00:49:42,927 --> 00:49:46,010 aga mis saab sarnaselt slaidi ühes Android telefoni ja annab sulle illusiooni 1095 00:49:46,010 --> 00:49:48,309 of-- või anda kogemusi virtuaalne reaalsus. 1096 00:49:48,309 --> 00:49:50,850 Ja meie kaks viimast minutit arvasime me tahaks proovida seda teha. 1097 00:49:50,850 --> 00:49:55,250 Kui ma ei saa prognoosida, millist Colton on siin lihtsalt huvi äratamiseks, 1098 00:49:55,250 --> 00:49:58,442 lubage mul minna ja visata üles suurel ekraanil siin. 1099 00:49:58,442 --> 00:49:59,400 Lubage mul tappa tuled. 1100 00:49:59,400 --> 00:50:02,290 Colton, sa tahad minna ja pane oma mobiiltelefoni hetkeks 1101 00:50:02,290 --> 00:50:05,171 ja tule üle Keset lava? 1102 00:50:05,171 --> 00:50:07,420 Ja sa tahad project-- see on see, mida Colton näeb. 1103 00:50:07,420 --> 00:50:10,560 >> Nüüd, Wi-Fi siin on ei ole nii tugev selle seadme jaoks 1104 00:50:10,560 --> 00:50:13,870 et see on super kaalukad, kuid Colton on sõna otseses mõttes 1105 00:50:13,870 --> 00:50:15,710 Selles maagiline futuristlik koht. 1106 00:50:15,710 --> 00:50:16,796 Ta näeb vaid ühe pildi. 1107 00:50:16,796 --> 00:50:19,920 Sa näed oma vasaku ja parema silma et tema aju on õmblemisega kokku 1108 00:50:19,920 --> 00:50:22,260 kolmemõõtmelisse keskkond tema nägu. 1109 00:50:22,260 --> 00:50:24,319 Ta on lihtsalt valinud menüükäsu siin. 1110 00:50:24,319 --> 00:50:27,360 Ja nii uuesti, ta kannab seda peakomplekt koos Samsung telefoni peal, mis on 1111 00:50:27,360 --> 00:50:29,080 juhtmevabalt projekteerimine meie pea kohal. 1112 00:50:29,080 --> 00:50:30,349 Nüüd oled Mars, ma arvan? 1113 00:50:30,349 --> 00:50:31,140 COLTON: Ma arvan küll. 1114 00:50:31,140 --> 00:50:32,181 Ma ei ole kindel, [kuuldamatu]. 1115 00:50:32,181 --> 00:50:34,250 [NAER] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID Humala: Selgub Mars on nende menüüsid. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [kuuldamatu] mõned lahedad kohti, kui me tahame minna mina-- 1118 00:50:41,590 --> 00:50:43,330 >> DAVID Humala: kuhu me tahame minna? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [kuuldamatu] 1120 00:50:45,837 --> 00:50:48,170 DAVID Humala: Ja vaatame kus Colton on meid nüüd. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [kuuldamatu] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID Humala: Niisiis, seal on nii palju erinevates kohtades saab võtta ise. 1124 00:50:56,380 --> 00:51:00,590 Seal FAPIs, mille kaudu saab kirjuta mänge või vastasmõju, 1125 00:51:00,590 --> 00:51:01,950 joosta, lõpuks telefoni. 1126 00:51:01,950 --> 00:51:03,908 Niisiis, sa tõesti ainult kirjalikult mobiiltelefoni app. 1127 00:51:03,908 --> 00:51:06,380 Kuid tänu tarkvara ja graafika võimeid, 1128 00:51:06,380 --> 00:51:08,765 nüüd Colton on selles tilluke suvila. 1129 00:51:08,765 --> 00:51:10,515 Ja riski valdav ise, 1130 00:51:10,515 --> 00:51:13,330 Colton ja ma jään ringi samas lõpus class täna 1131 00:51:13,330 --> 00:51:14,300 Kui soovite tulla ja mängida. 1132 00:51:14,300 --> 00:51:16,350 Ja me toome neid järgmisel nädalal tagasi ka. 1133 00:51:16,350 --> 00:51:18,420 Ilma pikema, jututa Ongi täna. 1134 00:51:18,420 --> 00:51:21,990 Näeme järgmisel nädalal. 1135 00:51:21,990 --> 00:51:24,140 >> [MUSIC - Ragga kaksikud, "paha mees"] 1136 00:51:24,140 --> 00:55:23,146