1 00:00:00,000 --> 00:00:02,405 >> [Predvaja glasba] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVID Malan: V redu, to je CS50. 4 00:00:11,980 --> 00:00:13,740 To je konec osmih teden. 5 00:00:13,740 --> 00:00:15,887 In danes smo začeli da izpolnite v nekaterih kosih 6 00:00:15,887 --> 00:00:17,720 ko gre za gradnjo stvari na spletu. 7 00:00:17,720 --> 00:00:20,020 Torej, se spomni, da je v ponedeljek smo porabili veliko več časa 8 00:00:20,020 --> 00:00:22,530 na PHP, ki je to dinamična programski jezik, ki 9 00:00:22,530 --> 00:00:26,872 nam omogoča izhod, med drugim Stvari, HTML in druge take vsebine 10 00:00:26,872 --> 00:00:27,830 da bomo želeli videti. 11 00:00:27,830 --> 00:00:30,871 Vendar nismo zares pogledal, kako bomo shranjujemo vsako informacijo. 12 00:00:30,871 --> 00:00:34,477 Dejansko je skoraj vsak od da je super zanimive spletne strani, ki jih obiščete danes 13 00:00:34,477 --> 00:00:36,560 imajo nekakšno zbirko podatkov na zadnji konec, kajne? 14 00:00:36,560 --> 00:00:39,540 Facebook zagotovo shrani veliko podatkov o vseh nas in Gmail trgovinah vse 15 00:00:39,540 --> 00:00:40,210 vaše e-pošte. 16 00:00:40,210 --> 00:00:44,150 >> In tako, veliko drugih spletnih strani, ne samo statična vsebina, ki je informativna. 17 00:00:44,150 --> 00:00:45,640 To je pravzaprav dinamična na nek način. 18 00:00:45,640 --> 00:00:48,480 Vam zagotavljajo vhod, posodablja strani za druge ljudi. 19 00:00:48,480 --> 00:00:50,620 Dobiš sporočila, ki jih pošljete sporočila, in tako naprej. 20 00:00:50,620 --> 00:00:54,250 Torej danes pogledamo pobliže temeljev projekta 21 00:00:54,250 --> 00:00:57,330 da boste potopili v naslednjem teden, CS50 Finance, ki 22 00:00:57,330 --> 00:01:00,509 se dejansko dogaja, da ste graditi nekaj ni v C, ampak v PHP. 23 00:01:00,509 --> 00:01:02,550 Spletna stran, ki izgleda malo kaj takega 24 00:01:02,550 --> 00:01:05,810 ki omogoča, da kupujejo in prodajajo staleži, ki so dejansko 25 00:01:05,810 --> 00:01:09,044 dogaja črpati realnem času Podatki staleža od Yahoo Finance. 26 00:01:09,044 --> 00:01:11,960 In tako na koncu, boste imeli iluzija zase in za uporabnike 27 00:01:11,960 --> 00:01:14,550 da ste dejansko odkup in prodajo zaloge in že skoraj v realnem času 28 00:01:14,550 --> 00:01:16,800 posodobitve, upravljanje portfelja, ki so vsi 29 00:01:16,800 --> 00:01:20,310 se dogaja, da zahtevajo ob, navsezadnje, baze podatkov uporabnikov. 30 00:01:20,310 --> 00:01:23,330 >> Torej, s svojimi besedami, še posebej, če niste 31 00:01:23,330 --> 00:01:25,670 super seznanjeni z računalnikom znanost ali podatkovne baze, kar 32 00:01:25,670 --> 00:01:30,790 veš, baze podatkov, da bi zdaj, v netehniških smislu? 33 00:01:30,790 --> 00:01:32,300 Kaj je to? 34 00:01:32,300 --> 00:01:36,882 Kako bi ga opisali s sostanovalcem ali prijatelja? 35 00:01:36,882 --> 00:01:40,100 >> OBČINSTVO: [neslišno] informacije [neslišno] 36 00:01:40,100 --> 00:01:44,430 >> DAVID Malan: Torej, seznam informacij, ali store-- seznam informacij 37 00:01:44,430 --> 00:01:47,160 da boste morda želeli, da shranite o nečem, kot uporabnika. 38 00:01:47,160 --> 00:01:50,190 In kaj imajo uporabniki povezana z njimi? 39 00:01:50,190 --> 00:01:53,160 Če ste uporabnik na Facebooku ali Gmail, kaj so značilnosti 40 00:01:53,160 --> 00:01:54,940 da vse nas imajo uporabniki? 41 00:01:54,940 --> 00:01:58,530 Všeč, kaj bi lahko nekatere od Stolpci v preglednici, ki smo 42 00:01:58,530 --> 00:01:59,390 namiguje zadnjič? 43 00:01:59,390 --> 00:02:01,140 Ker spet, lahko mislim baze podatkov 44 00:02:01,140 --> 00:02:05,810 res kot fancy Excelove datoteke ali Google Preglednice ali Apple Numbers datoteke. 45 00:02:05,810 --> 00:02:08,280 >> Torej, kaj misliš o ko misliš uporabnika? 46 00:02:08,280 --> 00:02:11,290 Kaj imajo? 47 00:02:11,290 --> 00:02:11,790 Kaj je to? 48 00:02:11,790 --> 00:02:12,470 >> OBČINSTVO: Ime. 49 00:02:12,470 --> 00:02:13,303 >> DAVID Malan: Ime. 50 00:02:13,303 --> 00:02:16,840 Torej, če imena, kot so David Malan bi ime nekega uporabnika. 51 00:02:16,840 --> 00:02:17,980 Kaj drugega uporabnik imeti? 52 00:02:17,980 --> 00:02:18,770 >> OBČINSTVO: An ID. 53 00:02:18,770 --> 00:02:19,561 >> DAVID Malan: An ID. 54 00:02:19,561 --> 00:02:23,320 Torej, kot številko ID, kot je vaš Harvardu ID ali vaš Yale Čisti ID ali podobno. 55 00:02:23,320 --> 00:02:24,923 Kaj drugega bi lahko uporabnik? 56 00:02:24,923 --> 00:02:25,890 >> OBČINSTVO: Geslo. 57 00:02:25,890 --> 00:02:29,240 >> DAVID Malan: geslo, pa se morda naslov, morda telefonsko številko, morda 58 00:02:29,240 --> 00:02:30,050 e-poštni naslov. 59 00:02:30,050 --> 00:02:32,640 Torej, tam je šopke poljih in to bi nekako uidejo izpod nadzora 60 00:02:32,640 --> 00:02:34,760 hitro, takoj ko začnete zavedali, oh, dajmo shranite to 61 00:02:34,760 --> 00:02:36,190 in kaj je shranjevanje to in ono. 62 00:02:36,190 --> 00:02:37,657 >> Ampak kako smo pravzaprav storili? 63 00:02:37,657 --> 00:02:39,740 Torej še enkrat, mentalni model, da so za danes, kot smo 64 00:02:39,740 --> 00:02:42,320 potopite v dejanskem SQL, Structured Query Language, 65 00:02:42,320 --> 00:02:44,186 je baza podatkov, ki izgleda takole. 66 00:02:44,186 --> 00:02:45,310 To je le nekaj vrstic in stolpcev. 67 00:02:45,310 --> 00:02:48,309 In si lahko predstavljate Google Spreadsheets ali poljubno število drugih programov. 68 00:02:48,309 --> 00:02:52,130 Toda kaj je ključ o MySQL, ki je baze podatkov programske opreme bomo uporabili, 69 00:02:52,130 --> 00:02:54,920 svobodnega odkrito available-- Facebook uporabe 70 00:02:54,920 --> 00:02:59,200 je in poljubno število drugih websites-- Baza podatkov shranjuje stvari relacijsko. 71 00:02:59,200 --> 00:03:01,770 In relacijske baze podatkov pomeni le eno, da je dobesedno 72 00:03:01,770 --> 00:03:03,672 shranjuje svoje podatke v vrsticah in stolpcih. 73 00:03:03,672 --> 00:03:04,630 To je tako enostavno, kot da. 74 00:03:04,630 --> 00:03:07,230 >> Torej, tudi nekaj podobnega Oracle, ki Morda ste v glavnem slišali 75 00:03:07,230 --> 00:03:08,271 je relacijska podatkovna baza. 76 00:03:08,271 --> 00:03:10,929 In pod pokrovom, ga shranjuje podatke v vrsticah in stolpcih. 77 00:03:10,929 --> 00:03:12,970 In Oracle vam zaračunava veliko denarja za to, 78 00:03:12,970 --> 00:03:15,550 ker MySQL dajatev ti nič za isto. 79 00:03:15,550 --> 00:03:18,790 Torej, SQL se dogaja, da se nam vsaj štiri operacije. 80 00:03:18,790 --> 00:03:23,190 Sposobnost za izbiro podatkov, kot bralno podatkov, vstavljanje, brisanje in posodabljanje podatkov. 81 00:03:23,190 --> 00:03:25,525 Z drugimi besedami, to so res štiri ključne dejavnosti, 82 00:03:25,525 --> 00:03:28,950 da se dogaja, da nam omogočajo, da spremenite stvari v teh vrsticah in stolpcih. 83 00:03:28,950 --> 00:03:33,250 >> Orodje, ki ga bomo danes uporabljajo predvsem da se naučijo SQL in z njim igral 84 00:03:33,250 --> 00:03:34,627 Ponovno se imenuje PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 To je spletno orodje. 86 00:03:35,460 --> 00:03:38,200 Skupaj naključje, da to je napisano v PHP. 87 00:03:38,200 --> 00:03:42,400 Ampak to se dogaja, da nam grafičnim uporabniški vmesnik, tako da bomo lahko dejansko 88 00:03:42,400 --> 00:03:46,054 ustvarjanje teh vrstic in stolpcev in potem se pogovarjajte z njimi preko kode. 89 00:03:46,054 --> 00:03:47,970 Torej, kaj je zdaj začeti kar mislim, da je odkrito 90 00:03:47,970 --> 00:03:51,000 vrsta postopka zabavno gradnjo zadnji konec spletnih strani, 91 00:03:51,000 --> 00:03:54,580 deli, ki jih uporabniki ne glej, ampak zagotovo mar, 92 00:03:54,580 --> 00:03:56,170 ker to je precej podatkov dogaja. 93 00:03:56,170 --> 00:03:59,570 Tako, podobno C in Malo manj kot PHP, 94 00:03:59,570 --> 00:04:04,954 SQL, ali zbirka podatkov, ki podpira SQL, ima vsaj te vrste podatkov 95 00:04:04,954 --> 00:04:05,870 in grozde drugih. 96 00:04:05,870 --> 00:04:08,107 CHAR, VARCHAR, INT, BIGINT, DECIMAL in DATETIME. 97 00:04:08,107 --> 00:04:09,940 In tam je cela kup drugih funkcij, 98 00:04:09,940 --> 00:04:11,940 ampak dajmo to narediti s način dejansko npr. 99 00:04:11,940 --> 00:04:16,450 >> Jaz bom šel v CS50 IDE kjer vnaprej, sem prijavljeni 100 00:04:16,450 --> 00:04:19,372 in sem obiskal tudi URL To orodje se imenuje PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 In problem nastaviti sedem, bomo povej vam točno, kako priti do tega vmesnika 102 00:04:22,580 --> 00:04:23,200 kot dobro. 103 00:04:23,200 --> 00:04:25,640 V zgornjem levem kotu, Opazili pa pravi predavanje. 104 00:04:25,640 --> 00:04:27,610 In to samo pomeni, da vnaprej, sem ustvaril 105 00:04:27,610 --> 00:04:31,360 prazno podatkovno bazo, imenovano predavanje da nima preglednic v njem še ni. 106 00:04:31,360 --> 00:04:32,600 Tukaj ni vrstice in stolpce. 107 00:04:32,600 --> 00:04:34,308 Ker se prvi stvar, bomo storili 108 00:04:34,308 --> 00:04:37,100 se začnete ustvarjati tabele da se dogaja, da shranite naše uporabnike. 109 00:04:37,100 --> 00:04:39,100 >> Torej, dobesedno čez Tukaj v desno, da sem 110 00:04:39,100 --> 00:04:42,070 bo povedal baze podatkov Hočem miza imenuje uporabnike. 111 00:04:42,070 --> 00:04:44,845 Torej, to je kot datoteka, ki sem želite shraniti vseh mojih podatkov. 112 00:04:44,845 --> 00:04:45,720 In koliko stolpcev? 113 00:04:45,720 --> 00:04:47,740 No, pa naj bo enostavno za zdaj. 114 00:04:47,740 --> 00:04:51,855 Rad bi samo, da shranite Like uporabniško ime in ime uporabnika. 115 00:04:51,855 --> 00:04:53,020 Bomo začeli majhen. 116 00:04:53,020 --> 00:04:55,370 Torej, želim dveh stolpcih skupaj. 117 00:04:55,370 --> 00:04:57,360 In bom, da gredo naprej in kliknite Pojdi. 118 00:04:57,360 --> 00:04:59,210 In potem, za te stebri, kaj bom 119 00:04:59,210 --> 00:05:04,576 da do-- če te internetu cooperates-- vso pravico, 120 00:05:04,576 --> 00:05:05,950 tako da bomo še enkrat poskusite to. 121 00:05:05,950 --> 00:05:09,180 Jaz grem, da ustvarite tabelo imenovano Uporabniki z dvema stolpcema, kliknite Go, OK. 122 00:05:09,180 --> 00:05:10,520 Zdaj imamo res hitro. 123 00:05:10,520 --> 00:05:12,065 Hvala, zelo dobro opravljeno. 124 00:05:12,065 --> 00:05:14,440 Vse je v redu, tako da kaj hočemo ti stolpci se imenuje? 125 00:05:14,440 --> 00:05:16,080 >> Torej, ena se dogaja, da se imenuje ime. 126 00:05:16,080 --> 00:05:19,480 Torej, vse kar vidim here-- in vmesnik odkrito gets malo grd sčasoma, 127 00:05:19,480 --> 00:05:21,270 Ko začnete tipkati v vseh teh podatkov. 128 00:05:21,270 --> 00:05:27,450 Toda kaj je lepo je, da nekako paradoksalno, sem ustvarjanju stolpce, 129 00:05:27,450 --> 00:05:29,977 vendar ima orodje neumno jih je določeno v vrsticah 130 00:05:29,977 --> 00:05:31,560 tako da sem lahko konfigurirate te stolpce. 131 00:05:31,560 --> 00:05:33,550 Torej, tam je dve nedokončani tam pod ime. 132 00:05:33,550 --> 00:05:36,180 In eden od teh področij I radi imenujemo uporabniško ime, 133 00:05:36,180 --> 00:05:38,000 in druga polja želim poklicati ime. 134 00:05:38,000 --> 00:05:40,340 >> In zdaj moram izbrati tipi podatkov za te stvari. 135 00:05:40,340 --> 00:05:42,330 Torej, medtem ko je v Excelu in Google Spreadsheets, 136 00:05:42,330 --> 00:05:45,531 Če želite stolpec, boste dobesedno vtipkaj ime ali uporabniško ime, pritisnite tipko Enter. 137 00:05:45,531 --> 00:05:48,030 Mogoče vam bo to krepko samo za jasnost, ampak to je to. 138 00:05:48,030 --> 00:05:50,140 Vi ne določite Vrste stolpcev. 139 00:05:50,140 --> 00:05:53,790 Zdaj v Google Spreadsheets ali Excel, vas lahko določite, kako se podatki opravljene. 140 00:05:53,790 --> 00:05:58,120 Lahko bi šel v meniju Oblika, in si Določite lahko kažejo na to, kot znak za dolar, 141 00:05:58,120 --> 00:05:59,900 prikazati to kot plavajočo vrednosti točke. 142 00:05:59,900 --> 00:06:01,990 >> Torej, to je podobno v duhu da tisto, kar smo o tem, da ne, 143 00:06:01,990 --> 00:06:04,740 ampak to se dejansko dogaja na silo Podatki, ki se določena vrsta. 144 00:06:04,740 --> 00:06:07,750 Sedaj, čeprav je pred nekaj trenutki sem je dejal, da je le nekaj podatkovni tipi, 145 00:06:07,750 --> 00:06:11,120 tam je pravzaprav cel kup, in oni 146 00:06:11,120 --> 00:06:12,910 v različne stopnje specifičnosti. 147 00:06:12,910 --> 00:06:14,970 In kot prahi, si Lahko tudi narediti fancy stvari 148 00:06:14,970 --> 00:06:17,520 kot geometrij shranjevanje znotraj baze podatkov. 149 00:06:17,520 --> 00:06:19,250 Lahko shranite stvari kot so GPS koordinate 150 00:06:19,250 --> 00:06:22,420 in dejansko ugotovili, matematično, točke, ki so v bližini drugih. 151 00:06:22,420 --> 00:06:24,128 Ampak bomo obdržati to super enostavna 152 00:06:24,128 --> 00:06:26,800 in pojdite do tu vse ti tipi niz. 153 00:06:26,800 --> 00:06:29,240 >> Torej, tukaj je seznam cel kup možnosti. 154 00:06:29,240 --> 00:06:32,740 CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 In to je nekako ogromna. 156 00:06:34,110 --> 00:06:37,610 In žal, nekoliko paradoksalno na C, 157 00:06:37,610 --> 00:06:40,120 char ni res CHAR. 158 00:06:40,120 --> 00:06:44,170 Če podate v bazi podatkov da je tvoj tip podatkov CHAR, 159 00:06:44,170 --> 00:06:47,390 to pomeni, da ja, to je ZNAK, ampak to je ena ali več znakov. 160 00:06:47,390 --> 00:06:49,630 In morate navesti koliko znakov želite. 161 00:06:49,630 --> 00:06:51,636 Torej, kaj je tipično Dolžina za uporabniško ime? 162 00:06:51,636 --> 00:06:52,760 Ali obstaja omejitev običajno? 163 00:06:52,760 --> 00:06:53,920 >> OBČINSTVO: [neslišno] 164 00:06:53,920 --> 00:06:55,050 >> DAVID Malan: 16 morda? 165 00:06:55,050 --> 00:06:55,990 Nekaj ​​podobnega. 166 00:06:55,990 --> 00:06:57,948 Veš, nazaj v dan, je nekoč osem. 167 00:06:57,948 --> 00:07:00,289 Včasih je 16, včasih je še več kot to. 168 00:07:00,289 --> 00:07:02,080 In tako, to ne pomeni, daj mi en CHAR. 169 00:07:02,080 --> 00:07:04,730 To pomeni, da moram navesti dolžina polja, 170 00:07:04,730 --> 00:07:07,402 in zdaj lahko rečem nekaj takega kot 16 let. 171 00:07:07,402 --> 00:07:08,610 In tam je blagovna menjava. 172 00:07:08,610 --> 00:07:11,360 Torej, bomo videli v trenutku da to pomeni ena, 173 00:07:11,360 --> 00:07:14,620 vsak uporabniško ime mora biti 16 znakov. 174 00:07:14,620 --> 00:07:18,720 Toda počakaj minuto, M-A-L-a-N. Če je moje ime in sem z le pet, 175 00:07:18,720 --> 00:07:23,070 kaj bi vi predlagali, da je baza podatkov narediti za druge 11 znakov, da 176 00:07:23,070 --> 00:07:24,471 Sem rezerviran prostor za? 177 00:07:24,471 --> 00:07:25,220 Kaj bi ti naredil? 178 00:07:25,220 --> 00:07:26,480 >> OBČINSTVO: [neslišno] 179 00:07:26,480 --> 00:07:27,160 >> DAVID Malan: Ja, samo da bodo vsi null. 180 00:07:27,160 --> 00:07:28,290 Naj jim prostore. 181 00:07:28,290 --> 00:07:30,816 Ampak verjetno ničen, zato je Veliko poševnica nazaj ničel. 182 00:07:30,816 --> 00:07:33,190 Torej, na eni strani, ki smo jih Zdaj je prepričan, da je moje uporabniško ime 183 00:07:33,190 --> 00:07:34,780 ne more biti več kot 16 znakov. 184 00:07:34,780 --> 00:07:37,590 In druga plat, ki je da če bi imeli res dolgo ime 185 00:07:37,590 --> 00:07:39,940 ali želel res dolgo username kot nekateri od vas 186 00:07:39,940 --> 00:07:44,840 fantje bi morali v tej šoli ali na Yale.edu, ne morete imeti eno. 187 00:07:44,840 --> 00:07:47,177 In tako v resnici, če ste kdaj registriran za spletno stran 188 00:07:47,177 --> 00:07:49,385 in dobili boste vpil na rek Vaše geslo je predolgo 189 00:07:49,385 --> 00:07:52,710 ali pa vaše uporabniško ime je predolgo, da je preprosto zato, ker programer, ko 190 00:07:52,710 --> 00:07:55,500 konfiguriranje svojo bazo podatkov, se odločili, da na tem področju bo 191 00:07:55,500 --> 00:07:57,150 ne sme biti daljši od te dolžine. 192 00:07:57,150 --> 00:08:00,580 >> Vse je v redu, pa kaj, če bomo nadaljevali ime? 193 00:08:00,580 --> 00:08:05,240 Kako dolgo naj bi Ime tipične Človeški biti? 194 00:08:05,240 --> 00:08:07,492 Kako veliko znakov, 16? 195 00:08:07,492 --> 00:08:09,450 Im 'ugibati, smo lahko najti nekoga v tej sobi 196 00:08:09,450 --> 00:08:13,210 kjer ga njegovi prvi plus zadnji ime je daljše od 16 znakov. 197 00:08:13,210 --> 00:08:14,850 Torej, kaj je bolje, kot da je 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 Večji? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> OBČINSTVO: [neslišno] 203 00:08:21,855 --> 00:08:23,700 DAVID Malan: 5000, oh moj Bog. 204 00:08:23,700 --> 00:08:26,309 Torej, to je verjetno dostojno zgornja meja, bomo rekli. 205 00:08:26,309 --> 00:08:28,350 In tukaj smo nekako imeli da bi sodbo klic. 206 00:08:28,350 --> 00:08:30,400 Kot, da ni pravi odgovor tukaj. 207 00:08:30,400 --> 00:08:32,740 Infinite ni povsem mogoče, zato, ker smo na koncu 208 00:08:32,740 --> 00:08:34,781 bo have-- smo bo zmanjkalo pomnilnika. 209 00:08:34,781 --> 00:08:36,909 Torej, moramo narediti sodba klic na neki točki. 210 00:08:36,909 --> 00:08:41,010 >> Zelo pogosti bi bilo, na primer, da use-- in mi določite CHAR tukaj 211 00:08:41,010 --> 00:08:46,050 kot before-- 255 je dobesedno zgornja meja te programske opreme baze podatkov 212 00:08:46,050 --> 00:08:46,700 pred leti. 213 00:08:46,700 --> 00:08:48,575 In tako, veliko ljudi bi samo rekli, v redu. 214 00:08:48,575 --> 00:08:49,420 255 je omejitev. 215 00:08:49,420 --> 00:08:50,620 Poglejmo samo uporabo maksimum. 216 00:08:50,620 --> 00:08:51,870 In to je precej smešno. 217 00:08:51,870 --> 00:08:55,060 Like, če tipkate nekdo ime za 200 plus znake, 218 00:08:55,060 --> 00:08:56,140 da je malo smešno. 219 00:08:56,140 --> 00:08:59,624 >> Ampak, ne pozabite, da je ASCII ne edini sistem za znake. 220 00:08:59,624 --> 00:09:01,540 In tako, še posebej v Veliko azijskih jezikov 221 00:09:01,540 --> 00:09:04,248 kjer obstaja znakov ne moremo izraziti na tipkovnicah, kot moj ZDA 222 00:09:04,248 --> 00:09:08,209 tipkovnica, nekateri znaki dejansko traja do 16 bitov namesto osem bitov. 223 00:09:08,209 --> 00:09:10,250 In tako je to v resnici ni vse, da je nerazumno 224 00:09:10,250 --> 00:09:12,250 da potrebujemo več prostor, če želimo, da se prilega 225 00:09:12,250 --> 00:09:16,252 Večje črke od samega ZDA centric tisti smo urejene, da bi razpravljali. 226 00:09:16,252 --> 00:09:17,460 Torej, potrebujemo nekaj zgornja meja. 227 00:09:17,460 --> 00:09:21,470 Ne vem, kaj je najbolje, ena je, ampak 255 je na splošno pogost. 228 00:09:21,470 --> 00:09:22,700 25 počuti nizka. 229 00:09:22,700 --> 00:09:23,857 16, 32 čutijo nizka. 230 00:09:23,857 --> 00:09:25,690 Jaz bi napačno na strani nečesa več. 231 00:09:25,690 --> 00:09:27,330 Ampak tam je kompromis, kot vedno. 232 00:09:27,330 --> 00:09:31,902 Kaj je, morda, očitno trade off rezervacijo 255 znakov 233 00:09:31,902 --> 00:09:33,360 za ime vsakogar v moji zbirki podatkov? 234 00:09:33,360 --> 00:09:34,230 >> OBČINSTVO: [neslišno] 235 00:09:34,230 --> 00:09:34,510 >> DAVID Malan: Kaj je to? 236 00:09:34,510 --> 00:09:35,430 >> OBČINSTVO: [neslišno] 237 00:09:35,430 --> 00:09:37,138 >> DAVID Malan: To je Veliko spomina, kajne? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N. Pravkar sem zapravil 250 znakov samo za shranjevanje moje ime 239 00:09:42,280 --> 00:09:46,000 osredotočila le v primeru, nekdo v razredu ima zelo dolgo ime. 240 00:09:46,000 --> 00:09:47,940 To se zdi kot nepotrebnega kompromis. 241 00:09:47,940 --> 00:09:52,040 >> Torej, se izkaže, da je SQL, ta jezik baze podatkov, 242 00:09:52,040 --> 00:09:55,480 dejansko podpira nekaj imenuje VARCHAR ali Variable CHAR. 243 00:09:55,480 --> 00:09:59,390 In to je nekako lepo, da je to vam omogoča, da določite ni fiksna 244 00:09:59,390 --> 00:10:01,900 širina, ampak, spremenljiva širina. 245 00:10:01,900 --> 00:10:05,060 Natančneje, A največja širina področju. 246 00:10:05,060 --> 00:10:08,901 Torej, to pomeni, da ime lahko ne sme biti več kot 250 znakov, 247 00:10:08,901 --> 00:10:10,150 vendar pa lahko zagotovo manj. 248 00:10:10,150 --> 00:10:11,733 In baza podatkov se bo pameten. 249 00:10:11,733 --> 00:10:14,860 Če čaka na M-A-L-A-N, to je samo še uporabiti pet, 250 00:10:14,860 --> 00:10:18,120 mogoče šest bajte za podobno zadnjim null značaj, 251 00:10:18,120 --> 00:10:23,330 in ne preživijo dodatni 249 ali 250 bajtov nepotrebnem. 252 00:10:23,330 --> 00:10:27,380 >> Torej, to se zdi kot, da bi moral so začeli s to zgodbo. 253 00:10:27,380 --> 00:10:29,140 Ampak tam je vedno kompromis. 254 00:10:29,140 --> 00:10:33,024 Torej, na eni strani, uporabniško ime Sem določeno, da se težko kodirane na 16, 255 00:10:33,024 --> 00:10:34,940 in morda to ni bilo pravica klic, morda ga 256 00:10:34,940 --> 00:10:40,040 je, ampak zakaj ne bi uporabili VARCHARs za vse? 257 00:10:40,040 --> 00:10:42,020 >> Obstaja z razlogom. 258 00:10:42,020 --> 00:10:46,200 Zakaj VARCHARs ne uporabljajte za vsako področje katerih dolžina ne veste vnaprej 259 00:10:46,200 --> 00:10:48,180 če se zdi, da je velika stvar, kajne? 260 00:10:48,180 --> 00:10:50,482 Uporabljajte le toliko prostora, kot morate do te meje? 261 00:10:50,482 --> 00:10:51,271 >> OBČINSTVO: Počasnejše. 262 00:10:51,271 --> 00:10:52,146 DAVID Malan: Speller? 263 00:10:52,146 --> 00:10:53,120 OBČINSTVO: to naredi počasneje? 264 00:10:53,120 --> 00:10:53,970 DAVID Malan: Oh, to je počasnejši. 265 00:10:53,970 --> 00:10:55,720 Dobro, to je skoraj vedno odgovor, odkrito. 266 00:10:55,720 --> 00:10:56,520 Všeč, kaj je kompromis? 267 00:10:56,520 --> 00:10:58,570 Bodisi stane več prostora ali pa stane več časa. 268 00:10:58,570 --> 00:11:00,111 Torej, v tem primeru bi bilo počasnejše. 269 00:11:00,111 --> 00:11:00,920 Zakaj? 270 00:11:00,920 --> 00:11:05,830 >> OBČINSTVO: [neslišno] določanje [neslišno]. 271 00:11:05,830 --> 00:11:06,640 >> DAVID Malan: Dobro. 272 00:11:06,640 --> 00:11:09,670 Torej, boste morda spomnite iz celo PSED5, igranje s svojim pristopom 273 00:11:09,670 --> 00:11:12,750 v slovar, če imate dodeliti pomnilnika dinamično ali obdržati 274 00:11:12,750 --> 00:11:14,630 narašča pufer, da lahko dejansko počasi. 275 00:11:14,630 --> 00:11:16,963 Če morate poklicati malloc Pod pokrovom motorja in morda 276 00:11:16,963 --> 00:11:19,610 to je tisto, MySQL počne, tako gotovo, da bi se lahko zgodilo. 277 00:11:19,610 --> 00:11:22,430 In če mislite, da pot nazaj na PSet-- ali celo 278 00:11:22,430 --> 00:11:26,340 tednov dve, ko smo naredili stvari, kot binarno iskanje ali celo linearno iskanje, 279 00:11:26,340 --> 00:11:30,690 ena od lepih stvari o vsaki besedi v podatkovno bazo ali vsako besedo v koloni 280 00:11:30,690 --> 00:11:33,690 da popolnoma enake dolžine, še če je cel kup teh znakov 281 00:11:33,690 --> 00:11:37,390 so prazne, je, da lahko uporabite random access o vaših podatkov, kajne? 282 00:11:37,390 --> 00:11:40,310 >> Če veste, da vsak Beseda je 16 znakov proč, 283 00:11:40,310 --> 00:11:46,460 lahko uporabite kazalec aritmetike, tako da govori, in pojdite z nami 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 in si lahko samo skok hipu z aritmetično 285 00:11:49,589 --> 00:11:51,130 kateremkoli od besed v zbirki podatkov. 286 00:11:51,130 --> 00:11:54,280 Ker se, če je to VARCHAR, kaj si namesto tega morali narediti? 287 00:11:54,280 --> 00:11:55,960 >> [Telefon zvoni] 288 00:11:55,960 --> 00:11:58,680 >> Če je to VARCHAR, si ne more uporabiti naključno dostop. 289 00:11:58,680 --> 00:12:01,341 Kaj morate iskati, ali ne? 290 00:12:01,341 --> 00:12:01,840 Ja? 291 00:12:01,840 --> 00:12:03,240 >> OBČINSTVO: [neslišno] 292 00:12:03,240 --> 00:12:04,310 >> DAVID Malan: Poglej skozi whole-- sledu 293 00:12:04,310 --> 00:12:06,518 preko celotnega seznama išče kaj, najverjetneje? 294 00:12:06,518 --> 00:12:08,356 Kakšne posebne vrednosti? 295 00:12:08,356 --> 00:12:09,230 OBČINSTVO: [neslišno] 296 00:12:09,230 --> 00:12:11,105 DAVID Malan: Iščem Za null končnikov 297 00:12:11,105 --> 00:12:13,637 da razmejijo ločevanje besed. 298 00:12:13,637 --> 00:12:15,720 Torej še enkrat, kompromis, in ni pravilen odgovor. 299 00:12:15,720 --> 00:12:18,380 Ampak, to je, če, še posebej, ko uporabniki dobili, da je veliko 300 00:12:18,380 --> 00:12:21,700 in vaš tovor na vaših strežnikih je Število ljudi, ki ga uporabljajo, dobi visoko, 301 00:12:21,700 --> 00:12:23,650 to so pravzaprav enostavna odločitve. 302 00:12:23,650 --> 00:12:26,640 Torej, mi lahko pustite, saj to, ampak dajmo se pomaknite navzdol čez na desno 303 00:12:26,640 --> 00:12:27,332 tukaj. 304 00:12:27,332 --> 00:12:30,290 Zdaj, tam je par stolpcev kjer imamo, da bi sodbo klic. 305 00:12:30,290 --> 00:12:35,170 Ali je smiselno, da se omogoči uporabnikov ime, uporabniško ime uporabnikova ali uporabnikov 306 00:12:35,170 --> 00:12:36,370 ime, da je nična? 307 00:12:36,370 --> 00:12:37,610 To pomeni, da le prazen prostor. 308 00:12:37,610 --> 00:12:40,360 Počutim se malo nesmiselno, tako da sem ne gre za preverjanje tiste škatle. 309 00:12:40,360 --> 00:12:42,670 Vendar se izkaže v baze podatkov, lahko rečem, 310 00:12:42,670 --> 00:12:44,620 nekdo lahko po želji imajo to vrednost. 311 00:12:44,620 --> 00:12:47,180 Ta stolpec nima dejansko tam. 312 00:12:47,180 --> 00:12:48,570 >> Zdaj pa je to spustnem meniju. 313 00:12:48,570 --> 00:12:50,810 In opazil, da sem še vedno v prvi vrsti tam, 314 00:12:50,810 --> 00:12:52,520 tako da sem govoril o uporabniškim imenom zdaj. 315 00:12:52,520 --> 00:12:56,290 In se izkaže, da je v zbirki podatkov, za razliko od preprostega zgolj preglednice, 316 00:12:56,290 --> 00:12:58,520 ima zmogljive funkcije, imenovane indeksi. 317 00:12:58,520 --> 00:13:02,600 In indeks je način za štetje Baza podatkov vnaprej, da jaz, človeško 318 00:13:02,600 --> 00:13:03,900 sem pametnejši od tebe. 319 00:13:03,900 --> 00:13:10,430 >> Vem, kakšne poizvedbe, izberite ali vstavite ali izbrišete ali posodobitev, 320 00:13:10,430 --> 00:13:13,182 da moja koda se bo končalo delaš na tej bazi podatkov. 321 00:13:13,182 --> 00:13:14,390 Rad bi prebral veliko podatkov. 322 00:13:14,390 --> 00:13:15,681 Hočem vstaviti veliko podatkov. 323 00:13:15,681 --> 00:13:17,530 Želim, da nenehno izbrisati veliko podatkov. 324 00:13:17,530 --> 00:13:21,520 Če vem, da bom lahko dostopu polje kot ime veliko, 325 00:13:21,520 --> 00:13:24,770 Znam preemptively povej baza podatkov, vem več kot ti, 326 00:13:24,770 --> 00:13:29,220 in želim, da odlok, ki morate indeks tem področju. 327 00:13:29,220 --> 00:13:33,200 Kje indeksiranje polje ali stolpec pomeni, da je baza podatkov v vnaprej 328 00:13:33,200 --> 00:13:37,040 morala sposoditi nekaj idej, kot so, štiri teden in pet in šest od CS50 329 00:13:37,040 --> 00:13:39,240 in dejansko zgraditi nekaj podobnega binarnega iskanja 330 00:13:39,240 --> 00:13:41,560 drevo ali kaj podobnega na splošno imenujemo drevo B 331 00:13:41,560 --> 00:13:43,410 da bi se naučili v razredu, kot CS124 332 00:13:43,410 --> 00:13:46,710 na Harvardu, določeni razred algoritmi, ali poljubno število drugih mestih. 333 00:13:46,710 --> 00:13:49,570 >> Podatkovna baza in pametna ljudje, ki ga izvajajo 334 00:13:49,570 --> 00:13:53,880 bo ugotoviti, kako shraniti da tabela informacij 335 00:13:53,880 --> 00:13:57,061 v spomin, tako da išče in drugi postopki so super hitro. 336 00:13:57,061 --> 00:13:58,060 Nimate, da to storite. 337 00:13:58,060 --> 00:14:00,640 Nimate izvajati linearna iskanje ali binarno iskanje 338 00:14:00,640 --> 00:14:03,300 ali zlivanjem ali izbiro razvrščanje, nič od tega. 339 00:14:03,300 --> 00:14:06,590 Baza podatkov to počne za vas, če vam povem, je preemptively indeks na tem področju. 340 00:14:06,590 --> 00:14:09,100 >> In si lahko ogledate tudi, da je nekatere druge značilnosti 341 00:14:09,100 --> 00:14:11,010 mi lahko poveste, podatkovna baza za uveljavitev. 342 00:14:11,010 --> 00:14:16,431 Kaj bi pomenilo, če sem se odločil Unique Iz tega menija, samo intuitivno? 343 00:14:16,431 --> 00:14:16,930 Ja? 344 00:14:16,930 --> 00:14:17,889 >> OBČINSTVO: [neslišno] 345 00:14:17,889 --> 00:14:19,930 DAVID Malan: Ja, uporabniško ime mora biti edinstvena. 346 00:14:19,930 --> 00:14:23,330 Je to dobro ali slabo stvar za baze podatkov, za spletno stran z uporabniki? 347 00:14:23,330 --> 00:14:24,965 Morala uporabniška imena biti edinstven? 348 00:14:24,965 --> 00:14:25,880 Ja, verjetno. 349 00:14:25,880 --> 00:14:27,800 Če je to tisto, kar Polje, ki jih uporabljamo, da se prijavite, 350 00:14:27,800 --> 00:14:31,867 ste v resnici ne želijo, da ljudje, ki imajo enak občutek ali enako uporabniško ime. 351 00:14:31,867 --> 00:14:33,700 Torej, lahko imajo Baza podatkov uveljaviti, da tako 352 00:14:33,700 --> 00:14:37,880 da je zdaj v moji PHP kode ali katerem koli jeziku, Nimam, da, na primer, preveriti 353 00:14:37,880 --> 00:14:41,490 nujno pa to uporabniško ime obstajati, preden sem pustil nekdo registrirati? 354 00:14:41,490 --> 00:14:46,690 Podatkovna baza ne bo pustil dva človeka imenom David ali Malans registracijo v tem primeru. 355 00:14:46,690 --> 00:14:50,030 >> In kot prahi, čeprav je to meniju le izberete eno, 356 00:14:50,030 --> 00:14:54,550 edinstven indeks je tista, ki je indeksirajo za super hitro delovanje, 357 00:14:54,550 --> 00:14:56,100 ampak tudi uveljavlja edinstvenost. 358 00:14:56,100 --> 00:14:58,850 In bomo prišli nazaj na to, kar druga dva pa pomeni v samo trenutek. 359 00:14:58,850 --> 00:15:00,930 Medtem, če grem na moja druga vrstica, ki 360 00:15:00,930 --> 00:15:06,230 Uporabnik je ime, bi moral navesti da bi moralo biti ime edinstveno? 361 00:15:06,230 --> 00:15:09,550 Ne, ker si lahko zagotovo have-- ni dva David 362 00:15:09,550 --> 00:15:11,050 Malans v tej sobi, najverjetneje. 363 00:15:11,050 --> 00:15:14,290 Ampak, če bomo izbrali drugačno ime, bomo lahko zagotovo trčenja. 364 00:15:14,290 --> 00:15:16,130 >> Pomisli nazaj hash tabele in podobno. 365 00:15:16,130 --> 00:15:18,604 Torej, mi zagotovo ne želite da bi polje ime edinstveno. 366 00:15:18,604 --> 00:15:21,270 Torej, smo le, da bo zapustil da kot dash, dash, dash, nič. 367 00:15:21,270 --> 00:15:22,660 In bom zapustil vse ostalo sam. 368 00:15:22,660 --> 00:15:25,035 Dejansko je večina teh področjih mi ne bo treba skrbeti. 369 00:15:25,035 --> 00:15:27,830 In ko sem pripravljena rešiti to, če internet sodeluje, 370 00:15:27,830 --> 00:15:35,032 I kliknite Shrani in zelo, zelo, zelo Počasi se je baza podatkov se shrani. 371 00:15:35,032 --> 00:15:37,240 In zdaj sem nazaj na to vmesnik, ki je sicer, 372 00:15:37,240 --> 00:15:38,680 je prepričljivo na prvi pogled. 373 00:15:38,680 --> 00:15:42,450 Ampak vse bom storiti, je klik na besedo uporabnikov v zgornjem levem kotu. 374 00:15:42,450 --> 00:15:47,630 Jaz bom šel tu gor, kliknite Uporabniki, in ga privzeto, da 375 00:15:47,630 --> 00:15:50,180 je izpeljal nekaj SQL, vendar več o tem v tem trenutku. 376 00:15:50,180 --> 00:15:52,654 Tukaj je samo povzetek tega, kar sem storil. 377 00:15:52,654 --> 00:15:55,320 In ne skrbite, da boste videli omenjamo latinščine in švedščini tukaj. 378 00:15:55,320 --> 00:16:00,490 Tisti, ki so le privzeto nastavitve, ker MySQL prvotno, 379 00:16:00,490 --> 00:16:04,000 ali PHP MyAdmin, eden izmed njiju je zgodilo mora biti napisano v nekaterih švedskih ljudi. 380 00:16:04,000 --> 00:16:06,100 Ampak to je v našem primeru nepomembno tukaj. 381 00:16:06,100 --> 00:16:08,280 >> Vse je v redu, zakaj je vse to zanimivo? 382 00:16:08,280 --> 00:16:13,050 Izkazalo se je, da lahko vstavite podatke v podatkovni bazi s pisanjem kode. 383 00:16:13,050 --> 00:16:15,940 In sem šel naprej in v moji datoteki tukaj sem 384 00:16:15,940 --> 00:16:19,000 dogaja, da gredo naprej in se pretvarjati, kot to je nakazan na te baze podatkov, ki je 385 00:16:19,000 --> 00:16:23,040 ni v tem trenutku, vendar pa bo bo, ko pridemo do problema nastaviti sedem. 386 00:16:23,040 --> 00:16:25,640 In bom, da gredo naprej in izvršiti funkcijo imenovano poizvedbe, 387 00:16:25,640 --> 00:16:28,730 ki vam bo dal v problemu določenih sedem na distribucijsko kodo, ki 388 00:16:28,730 --> 00:16:31,490 traja vsaj en argument, ki je le niz. 389 00:16:31,490 --> 00:16:33,460 Niz SQL kode. 390 00:16:33,460 --> 00:16:36,700 Torej, ste o tem, da se naučijo, kako napišite Structured Query Language. 391 00:16:36,700 --> 00:16:41,270 >> Če želim vstaviti novo vrstico v mojem baze podatkov, ker je nekdo bil predložen 392 00:16:41,270 --> 00:16:47,600 obrazec za mojo kodo, jaz bi dobesedno napišite INSERT INTO uporabnikov naslednja 393 00:16:47,600 --> 00:16:52,800 področja: username, vejica, ime, vrednotah, 394 00:16:52,800 --> 00:16:57,480 in zdaj moram vstaviti nekaj podobnega Malan, in ponudbo, 395 00:16:57,480 --> 00:17:01,490 Konec citata "David Malan." In zdaj tudi za tiste, ki ne poznajo SQL, 396 00:17:01,490 --> 00:17:07,830 Zato sem z uporabo enojne narekovaje znotraj te zelene vrvice? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Kaj bi lahko bil razlog tu? 399 00:17:13,040 --> 00:17:14,609 >> Obvestilo, da sem co-druženje dva jezika. 400 00:17:14,609 --> 00:17:18,099 Poizvedba je funkcija PHP, vendar pa je potrebno argument. 401 00:17:18,099 --> 00:17:21,740 In ta trditev je že sama napisana v drugem jeziku, ki se imenuje 402 00:17:21,740 --> 00:17:23,500 SQL Structured Query Language. 403 00:17:23,500 --> 00:17:27,940 Torej, vse, kar sem pravkar poudarili tu 404 00:17:27,940 --> 00:17:30,380 je ta jezik se imenuje SQL. 405 00:17:30,380 --> 00:17:36,290 Torej, kaj je z enojnimi narekovaji, samo kot preverjanje hiter razumnosti? 406 00:17:36,290 --> 00:17:37,324 Kar daj. 407 00:17:37,324 --> 00:17:37,990 Oni so strune. 408 00:17:37,990 --> 00:17:41,590 Torej, citiram, konec citata Malan in citiram, konec citata David Malan so strune. 409 00:17:41,590 --> 00:17:45,210 In samo razmišljam intuitivno zdaj, vedoč, kaj veste o C in PHP, 410 00:17:45,210 --> 00:17:50,220 zakaj nisem tega naredil, kar sem ponavadi rabljeni dvojni narekovaji za godala? 411 00:17:50,220 --> 00:17:52,310 Zakaj nisem hotel narediti to? 412 00:17:52,310 --> 00:17:52,810 Ja? 413 00:17:52,810 --> 00:17:53,685 >> OBČINSTVO: [neslišno] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID Malan: Točno tako. 416 00:17:57,570 --> 00:17:59,653 Ker sem že uporabljate dvojne kotacije na poti 417 00:17:59,653 --> 00:18:01,929 izven argument na funkcijo PHP, 418 00:18:01,929 --> 00:18:03,470 Jaz bi samo zmesti tolmača. 419 00:18:03,470 --> 00:18:04,860 To ne bo vedel, kaj ti gredo skupaj? 420 00:18:04,860 --> 00:18:05,735 Ali ti gredo skupaj? 421 00:18:05,735 --> 00:18:06,810 Ali ti gredo skupaj? 422 00:18:06,810 --> 00:18:08,070 Torej, sem namesto izmenično. 423 00:18:08,070 --> 00:18:11,784 >> Ali lahko naredim kaj takega, poševnica nazaj quote ali poševnica nazaj quote. 424 00:18:11,784 --> 00:18:14,200 Odkrito povedano, da je šele začne dobili zelo neberljiv in grda. 425 00:18:14,200 --> 00:18:16,790 Ampak, da bi dosegli enak rezultat, kot dobro. 426 00:18:16,790 --> 00:18:19,760 >> Torej, če bi bil za izvedbo tega poizvedba zdaj, da vidimo, kaj se zgodi. 427 00:18:19,760 --> 00:18:22,740 Grem, da gredo naprej in zdaj namesto kot izvršiti kodo PHP, ki 428 00:18:22,740 --> 00:18:24,610 je, če bom igral v problem nastaviti sedem, 429 00:18:24,610 --> 00:18:27,200 Bom namesto da gredo na PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 In jaz ročno dogaja iti na zavihek SQL, 431 00:18:29,770 --> 00:18:31,580 in mi povečate na vmesniku. 432 00:18:31,580 --> 00:18:34,007 In bom prilepiti v stvar sem tipkal. 433 00:18:34,007 --> 00:18:36,090 In barvne oznake ima spremenila malo zdaj, 434 00:18:36,090 --> 00:18:38,750 samo zato, ker so oblike programa stvari malo drugače. 435 00:18:38,750 --> 00:18:41,960 Ampak obvestilo, da je vse, kar sem naredil je sem rekel, vstavite uporabnike. 436 00:18:41,960 --> 00:18:45,790 Sem določeno, nato pa v vejico ločen oklepajni seznam dva 437 00:18:45,790 --> 00:18:48,850 polja, da sem želite vstaviti, in potem sem dobesedno rekel vrednosti 438 00:18:48,850 --> 00:18:51,510 sledijo drug paren, In potem dve vrednosti 439 00:18:51,510 --> 00:18:53,520 Rad bi plug-in Zdaj za dober ukrep, 440 00:18:53,520 --> 00:18:55,010 Bom dal podpičje na koncu. 441 00:18:55,010 --> 00:18:56,570 Torej, to ni C. To ni PHP. 442 00:18:56,570 --> 00:18:59,970 To je zdaj SQL, in sem ga prilepite v tej spletni vmesnik, ki je 443 00:18:59,970 --> 00:19:02,710 samo, da me boš pustil, takoj, ko sem kliknite Go, 444 00:19:02,710 --> 00:19:08,060 izvršiti to poizvedbo v bazi podatkov teče znotraj CS50 IDE. 445 00:19:08,060 --> 00:19:09,470 >> Torej, to je dobro. 446 00:19:09,470 --> 00:19:12,520 Obvestilo, da je omenjena ena vrstica vstavljena, se je super hiter, 447 00:19:12,520 --> 00:19:15,190 0.0054 sekund za vnos teh podatkov. 448 00:19:15,190 --> 00:19:16,610 Torej, to zveni zelo zdrava. 449 00:19:16,610 --> 00:19:19,350 To preoblikovan mojo poizvedbo za mene tukaj, samo da ga vidim 450 00:19:19,350 --> 00:19:21,730 v nekakšno barvno različico. 451 00:19:21,730 --> 00:19:24,540 Ampak zdaj, če sem kliknite Prebrskaj, opazili, da, celo 452 00:19:24,540 --> 00:19:29,070 čeprav obstaja veliko nereda na zaslon, moja miza ima zdaj dve vrstici. 453 00:19:29,070 --> 00:19:30,700 >> Torej, naj gredo naprej in ne drugo. 454 00:19:30,700 --> 00:19:33,760 Namesto tega, naj me pojdite na zavihek SQL znova. 455 00:19:33,760 --> 00:19:40,723 In tokrat bom vstaviti nekaj podobnega Rob in njegovo ime bo Rob Bowden. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 Oglejmo kliknite Shrani. 458 00:19:44,040 --> 00:19:46,140 Ups, namesto Pojdi. 459 00:19:46,140 --> 00:19:48,890 >> Spet kliknite Prebrskaj in zdaj opazili, imam dve vrstici. 460 00:19:48,890 --> 00:19:52,390 Torej, to je samo način bolj zapleten način odpiranja Google Spreadsheets 461 00:19:52,390 --> 00:19:54,010 in vtipkate vrstico v stolpcu. 462 00:19:54,010 --> 00:19:57,070 Toda kaj je ključnega pomena, da imamo zdaj sintakso 463 00:19:57,070 --> 00:20:00,220 s katero pisati kodo, tako da na koncu, bi lahko dejansko 464 00:20:00,220 --> 00:20:01,790 naredite nekaj in to. 465 00:20:01,790 --> 00:20:05,380 Spomnimo se, da PHP podpira super globalne spremenljivke. 466 00:20:05,380 --> 00:20:08,415 >> Kaj je notri dolarja prijavite podčrtaj GET v PHP? 467 00:20:08,415 --> 00:20:10,290 Vzeli smo si na eni ali dva preprostih primerov. 468 00:20:10,290 --> 00:20:15,640 In v PSet6, spomnimo imate zdravo dot PHP, ki uporablja te spremenljivke. 469 00:20:15,640 --> 00:20:17,870 Kaj se dogaja tam notri? 470 00:20:17,870 --> 00:20:21,015 Ali kaj je to? 471 00:20:21,015 --> 00:20:22,522 Malo glasneje. 472 00:20:22,522 --> 00:20:23,790 >> OBČINSTVO: [neslišno] 473 00:20:23,790 --> 00:20:25,030 >> DAVID Malan: To je sneg seme matrike, ki 474 00:20:25,030 --> 00:20:27,714 je samo fancy način rekel matrika, ki ima ključne parov vrednosti. 475 00:20:27,714 --> 00:20:28,880 In tipke niso številčna. 476 00:20:28,880 --> 00:20:30,420 Oni so besede ali nize. 477 00:20:30,420 --> 00:20:32,750 In še posebej, kaj so ti ključni parov vrednost? 478 00:20:32,750 --> 00:20:35,110 Kje prihajajo? 479 00:20:35,110 --> 00:20:35,620 Žal? 480 00:20:35,620 --> 00:20:36,994 >> OBČINSTVO: [neslišno] 481 00:20:36,994 --> 00:20:37,660 DAVID Malan: Ne? 482 00:20:37,660 --> 00:20:40,700 Kam tistih ključnih parov vrednosti prihaja iz? 483 00:20:40,700 --> 00:20:42,490 Spet rekel? 484 00:20:42,490 --> 00:20:44,610 Spet? 485 00:20:44,610 --> 00:20:46,472 Sem edini zaslišanje kaj? 486 00:20:46,472 --> 00:20:47,810 >> [Smeh] 487 00:20:47,810 --> 00:20:49,042 >> To je pravica, ja? 488 00:20:49,042 --> 00:20:50,435 >> OBČINSTVO: [neslišno] 489 00:20:50,435 --> 00:20:52,560 DAVID Malan: Ja, prihajajo iz poizvedbi. 490 00:20:52,560 --> 00:20:55,380 Torej, če ste nazaj v čas, da ko smo igrali z Googlom 491 00:20:55,380 --> 00:20:59,600 in smo šli na Google.com poševnico Iskanje vprašaj q enak mačke, 492 00:20:59,600 --> 00:21:03,550 če bi bil jaz zadeti nastopiti, in če Google so bile izvedene v PHP, 493 00:21:03,550 --> 00:21:07,017 PHP koda, da je Google napisal bi imeli dostop do znak za dolar 494 00:21:07,017 --> 00:21:11,600 podčrtaj GET znotraj katerega je ključni imenuje Q in vrednost 495 00:21:11,600 --> 00:21:17,680 imenovane mačke, ki jo lahko potem uporabite počel dejansko iskanje z. 496 00:21:17,680 --> 00:21:20,860 >> Torej, v resnici, kaj bom zdaj je šel nazaj na moj PHP kodo 497 00:21:20,860 --> 00:21:23,140 da boste spet videli več v PSet7. 498 00:21:23,140 --> 00:21:25,440 In namesto da bi odpravili v trdih kodiranih vrednosti, ki 499 00:21:25,440 --> 00:21:27,630 ne zdi zelo zelo dinamično spletno stran, 500 00:21:27,630 --> 00:21:30,680 Bom vam teaser kaj bi vaša dejanska koda storiti. 501 00:21:30,680 --> 00:21:32,854 Ti bi dal v dvoje Vprašanje označuje takole. 502 00:21:32,854 --> 00:21:34,270 Ne vem, kaj je ime je. 503 00:21:34,270 --> 00:21:37,390 Ne vem, kaj je Ime se bo, 504 00:21:37,390 --> 00:21:39,470 ampak jaz vem, da lahko jih dobite dinamično. 505 00:21:39,470 --> 00:21:43,420 >> Torej, če je bila oznaka smo zdaj pisanjem je koda teče na Googlovih strežnikih, 506 00:21:43,420 --> 00:21:46,940 ali če je to zdravo pika PHP, ki prihaja z PSet6, 507 00:21:46,940 --> 00:21:48,650 Bom prehajajo v funkcija izraz 508 00:21:48,650 --> 00:21:51,450 tako kot printf, dve drugi argumenti. 509 00:21:51,450 --> 00:21:57,120 GET, citiram, konec citata uporabniško ime, in GET, citiram, konec citata ime. 510 00:21:57,120 --> 00:22:00,720 In zdaj, opazili, kaj se Splošna struktura je tukaj. 511 00:22:00,720 --> 00:22:03,320 Imam na levi strani na desni strani klicem 512 00:22:03,320 --> 00:22:05,480 ta funkcija imenuje poizvedbo v PHP. 513 00:22:05,480 --> 00:22:08,160 Še vedno kot prvi argument, samo niz besedila. 514 00:22:08,160 --> 00:22:11,000 >> Ampak, da je niz besedila je napisana v jeziku, ki se imenuje SQL. 515 00:22:11,000 --> 00:22:12,616 In odkrito povedano, to ni velik jezik. 516 00:22:12,616 --> 00:22:14,990 Mi smo samo govorili o formalno danes, res. 517 00:22:14,990 --> 00:22:17,031 In potem v problem določiti sedem, tam je relativno 518 00:22:17,031 --> 00:22:18,800 Nekaj ​​značilnosti, ki sva bo vzvoda. 519 00:22:18,800 --> 00:22:22,530 Vprašanje, znamke, čeprav pomeni priključite vrednost, tukaj in vtič v drugi vrednosti 520 00:22:22,530 --> 00:22:23,130 tukaj. 521 00:22:23,130 --> 00:22:26,010 In obvestilo, ki sem jih izpustijo, kar iz celega quote-- prekleto 522 00:22:26,010 --> 00:22:30,470 it-- okoli citata zaznamuje ta čas. 523 00:22:30,470 --> 00:22:34,930 Sem izpuščena kotaciji Ocene okrog vprašajem, 524 00:22:34,930 --> 00:22:36,410 Žal, ta čas okrog. 525 00:22:36,410 --> 00:22:38,870 >> Torej, kaj je lepo, o tem Vprašanje funkcija znamka, ki 526 00:22:38,870 --> 00:22:42,830 PHP ponavadi podpirajo, Ruby in Python in drugih jezikih, 527 00:22:42,830 --> 00:22:45,730 To samo pomeni, čep v nekaterih cenijo tukaj in veš kaj? 528 00:22:45,730 --> 00:22:48,300 Ugotovimo, ali želite uporabljati enojni narekovaji ali dvojni narekovaji. 529 00:22:48,300 --> 00:22:50,966 Me ne trudi se s tistimi, intelektualno nezanimivi podrobnosti. 530 00:22:50,966 --> 00:22:53,780 Ampak, se prepričajte, da je pravilno tako da je moja koda koncu 531 00:22:53,780 --> 00:22:57,010 operativno in varno, kar bo imela pomen kmalu. 532 00:22:57,010 --> 00:23:00,460 >> Zdaj, koliko argumenti skupaj, samo da bi bo jasno, ali je funkcija jemanje vprašanje? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Kdo želel glasovati za več kot dve? 535 00:23:07,581 --> 00:23:08,080 Tri? 536 00:23:08,080 --> 00:23:10,001 Seveda, zakaj? 537 00:23:10,001 --> 00:23:10,920 Zakaj tri? 538 00:23:10,920 --> 00:23:12,305 >> OBČINSTVO: [neslišno] 539 00:23:12,305 --> 00:23:13,180 DAVID Malan: Točno tako. 540 00:23:13,180 --> 00:23:14,610 Prvi del je niz. 541 00:23:14,610 --> 00:23:18,640 Drugi argument je znak za dolar podčrtaj GET uporabniško ime nosilca. 542 00:23:18,640 --> 00:23:21,950 In tretji argument je Ista stvar, ampak samo ime. 543 00:23:21,950 --> 00:23:24,590 Torej z drugimi besedami, sedaj če sem imel spletnega obrazca 544 00:23:24,590 --> 00:23:27,149 da je bilo na poljih z besedilom, ena za uporabnikovo uporabniško ime, 545 00:23:27,149 --> 00:23:29,690 ena za njegovo ali njeno ime, samo kot bi lahko vidite na spletni strani 546 00:23:29,690 --> 00:23:32,120 ko se registrirate za nekatere spletne strani, bi to lahko 547 00:23:32,120 --> 00:23:35,450 biti kodo na zadnji konec, da je v resnici počne vstavljanja zdaj 548 00:23:35,450 --> 00:23:37,220 v podatkovno bazo. 549 00:23:37,220 --> 00:23:40,870 >> Zdaj pa, nasprotno, pa hitro naprej. 550 00:23:40,870 --> 00:23:43,840 Recimo, da je uporabnik zdaj prijavi in ​​želite 551 00:23:43,840 --> 00:23:48,860 pisati PHP kodo, ki preveri, ali je oseba, ki je pravkar prijavljeni 552 00:23:48,860 --> 00:23:52,250 je dejansko uporabnik, lahko uporabiti precej preprosto sintakso. 553 00:23:52,250 --> 00:23:55,832 Lahko rečem SELECT, recimo zvezda, kjer zvezda pomeni vse. 554 00:23:55,832 --> 00:23:57,540 Ne vem, kaj sem želijo, tako da samo dajte mi 555 00:23:57,540 --> 00:24:01,585 vse stolpce iz tabele pozval uporabnike, če je, in to je lepo. 556 00:24:01,585 --> 00:24:03,710 Izberite podpira tisto, kar je imenuje predikat, ki je 557 00:24:03,710 --> 00:24:06,630 kot način kvalifikacije, kar hočeš. 558 00:24:06,630 --> 00:24:10,590 Kje username enaka citiram, konec citata Malan. 559 00:24:10,590 --> 00:24:13,680 Torej tudi tu, sem vgrajeni znotraj argumenta 560 00:24:13,680 --> 00:24:16,110 na funkcijo PHP, linijo SQL kode. 561 00:24:16,110 --> 00:24:18,680 In da SQL koda ta Čas je dobesedno dogaja 562 00:24:18,680 --> 00:24:21,790 za iskanje citiram, konec citata Malan. 563 00:24:21,790 --> 00:24:24,420 >> Zdaj pa to še ni vse, da je koristno, tako da bom preskočiti, da 564 00:24:24,420 --> 00:24:28,650 in bom dal stran ta tip od Brady, in pojdi 565 00:24:28,650 --> 00:24:30,990 in plug-in namesto vprašaj tukaj. 566 00:24:30,990 --> 00:24:33,290 Torej, samo da bo jasno, kaj naj bi bil moj drugi argument 567 00:24:33,290 --> 00:24:37,480 se, če je nekdo samo prijavljeni in I želeli preveriti, če on ali ona je pravzaprav 568 00:24:37,480 --> 00:24:39,265 uporabnik? 569 00:24:39,265 --> 00:24:40,140 OBČINSTVO: [neslišno] 570 00:24:40,140 --> 00:24:40,890 DAVID Malan: Ja. 571 00:24:40,890 --> 00:24:44,120 Slišal sem, da znak za dolar podčrtaj GET citiram, konec citata uporabniško ime. 572 00:24:44,120 --> 00:24:50,040 In da bi se morali vrniti k meni koli od vrstic v svoji bazi podatkov 573 00:24:50,040 --> 00:24:51,986 ki imajo uporabniško ime Malan. 574 00:24:51,986 --> 00:24:54,860 Zdaj upam, da bom dobil nazaj nič, če Malan je nikoli ni bilo tukaj, 575 00:24:54,860 --> 00:24:56,290 ali enega, če ima. 576 00:24:56,290 --> 00:24:59,026 Jaz ne bi dobili nazaj dva ali tri ali štiri. 577 00:24:59,026 --> 00:24:59,526 Zakaj? 578 00:24:59,526 --> 00:25:00,220 >> OBČINSTVO: [neslišno] 579 00:25:00,220 --> 00:25:01,120 >> DAVID Malan: Rekel sem edinstven, kajne? 580 00:25:01,120 --> 00:25:01,750 Preprostega razloga. 581 00:25:01,750 --> 00:25:04,030 Ker sem rekel, je to dobil biti edinstvena, samo logično, 582 00:25:04,030 --> 00:25:07,940 imate lahko samo nič ali enega Malans V tem konkretnem tabele zbirke podatkov. 583 00:25:07,940 --> 00:25:10,965 Zdaj kot prahi, samo zato, da ste videli da, čeprav sem še naprej uporabljati GET 584 00:25:10,965 --> 00:25:14,350 in čeprav PSet6 uporabljajo samo GET, lahko zagotovo POST. 585 00:25:14,350 --> 00:25:17,212 In opozarjajo, da je objava drugo Tehnika za predložitev podatkov 586 00:25:17,212 --> 00:25:19,170 svojo obliko, vendar ne pokaže v URL. 587 00:25:19,170 --> 00:25:22,690 To je malo bolj varen gotovo za Stvari, kot so uporabniška imena in gesla, 588 00:25:22,690 --> 00:25:25,210 ki PSet7 bo, v resnici gre. 589 00:25:25,210 --> 00:25:28,130 >> Torej, dajmo to narediti v PHP MyAdmin in glej kaj se zgodi. 590 00:25:28,130 --> 00:25:30,020 Bom šel na zavihek MySQL. 591 00:25:30,020 --> 00:25:34,450 In opazil, da so privzete vrednosti za PHP MyAdmin, samo poskusiti, da je koristno, 592 00:25:34,450 --> 00:25:37,050 je, da izberete zvezdo od uporabnikov, ko ena. 593 00:25:37,050 --> 00:25:39,430 No, eden je vedno velja, da To je neumno učinkovit 594 00:25:39,430 --> 00:25:40,400 od le izberite vse. 595 00:25:40,400 --> 00:25:42,691 Ampak jaz grem, da se malo bolj občutljiv in ročno 596 00:25:42,691 --> 00:25:45,920 tip iz SELECT zvezda iz uporabnikov. 597 00:25:45,920 --> 00:25:48,294 >> Zdaj tehnično, lahko citiram imena tabel. 598 00:25:48,294 --> 00:25:50,460 To je redko, da boste morali, ampak obvestilo, to niso 599 00:25:50,460 --> 00:25:52,240 svoj običajni kotacije na tipkovnici ZDA. 600 00:25:52,240 --> 00:25:54,760 To je tako imenovani backtick, ki je na splošno na zgornji levi strani 601 00:25:54,760 --> 00:25:56,000 kotu tipkovnici. 602 00:25:56,000 --> 00:25:58,500 Ampak to je redko, da boste dejansko morali ukvarjati s tem, 603 00:25:58,500 --> 00:25:59,950 tako da bom samo jih izpustiti anyway. 604 00:25:59,950 --> 00:26:02,280 Torej, zdaj, naj gredo naprej in zadeti iti. 605 00:26:02,280 --> 00:26:06,616 In koliko vrstic naj dobim nazaj, ko sem izberite zvezdo od uporabnikov? 606 00:26:06,616 --> 00:26:08,407 >> OBČINSTVO: [neslišno] 607 00:26:08,407 --> 00:26:09,990 DAVID Malan: število vrstic, seveda. 608 00:26:09,990 --> 00:26:12,390 Toda koliko v tem beton zgodba prav zdaj? 609 00:26:12,390 --> 00:26:14,640 Drugič, ker ni bilo jaz in tam je bil Rob. 610 00:26:14,640 --> 00:26:19,370 Torej, če sem kliknite Go, vidim, da je vizualno Sem prišel nazaj, res, dve vrstici. 611 00:26:19,370 --> 00:26:22,060 Obstaja veliko nereda na zaslon, ampak vidim samo dve vrstici. 612 00:26:22,060 --> 00:26:28,580 Nasprotno, če bi to še enkrat in ne SELECT zvezda od uporabnikov, kjer je username 613 00:26:28,580 --> 00:26:31,840 enaka citiram, konec citata Malan, zdaj, če sem kliknite Go, 614 00:26:31,840 --> 00:26:33,970 Jaz sem samo še, da bi dobili nazaj eno vrstico. 615 00:26:33,970 --> 00:26:36,499 In nenazadnje, če naredim kaj takega, recimo, 616 00:26:36,499 --> 00:26:38,290 da mi ni mar dobili vse, 617 00:26:38,290 --> 00:26:41,020 ki je nekako nesmiselno zdaj, ker tam je samo dva stolpca. 618 00:26:41,020 --> 00:26:43,103 To ni, kot sem izbiro ogromne količine podatkov. 619 00:26:43,103 --> 00:26:46,720 Recimo, da sem šel naprej in ne SELECT ime FROM 620 00:26:46,720 --> 00:26:51,990 Uporabniki, kjer username je enak Malan, kaj je lepo o SQL pošteno, 621 00:26:51,990 --> 00:26:54,290 je, da je res samo ne kaj vam je povedal, da storiti. 622 00:26:54,290 --> 00:26:57,550 To je precej kratka, vendar se dobesedno samo povejte, kaj želite storiti. 623 00:26:57,550 --> 00:27:01,130 Izberite ime od uporabnikov, kjer je uporabniško ime je enako Malan. 624 00:27:01,130 --> 00:27:03,440 In res je, da je jasna. 625 00:27:03,440 --> 00:27:08,410 Torej, zdaj, če sem udaril Go, koliko vrstic bom dobil nazaj? 626 00:27:08,410 --> 00:27:10,770 Ena, ker je to samo Malan, upajmo. 627 00:27:10,770 --> 00:27:13,100 Ali nič, če ga ni obstaja, vendar maksimalno. 628 00:27:13,100 --> 00:27:17,610 >> In koliko stolpcev bom dobil nazaj? 629 00:27:17,610 --> 00:27:18,450 Koliko stolpci? 630 00:27:18,450 --> 00:27:20,658 Tokrat sem le, da bo da bi dobili eno, ker nisem 631 00:27:20,658 --> 00:27:22,380 izberite zvezdo, ki je vse. 632 00:27:22,380 --> 00:27:27,900 Zdaj sem izberete le ime, tako da sem pravkar dobil nazaj en stolpec in eno vrstico. 633 00:27:27,900 --> 00:27:31,730 In izgleda nekako ustrezno smešno, samo videti super 634 00:27:31,730 --> 00:27:33,060 majhna, kot je ta. 635 00:27:33,060 --> 00:27:34,290 Torej, kaj se v resnici dogaja? 636 00:27:34,290 --> 00:27:36,890 Ko ste izvršiti SQL poizvedbo z uporabo izberite, 637 00:27:36,890 --> 00:27:38,700 kaj ste dobili nazaj iz baze 638 00:27:38,700 --> 00:27:42,970 je kot začasno tabelo z vrsticami in stolpci, morda, 639 00:27:42,970 --> 00:27:46,260 ampak da izpustite ničesar, ga je tebi dejansko ni izbrana. 640 00:27:46,260 --> 00:27:49,010 Torej, to je kot, če nekdo imel velik preglednico vseh študentov 641 00:27:49,010 --> 00:27:51,610 registrirana za nekatere študentski skupini, in pravite, 642 00:27:51,610 --> 00:27:55,097 mi vse novinec, ki ste registrirana za naše študentske skupine, kar 643 00:27:55,097 --> 00:27:56,930 vaš kolega v študent skupina lahko storite 644 00:27:56,930 --> 00:27:58,430 se lahko oni samo roko si celotno preglednico. 645 00:27:58,430 --> 00:27:59,742 To je, kot pravijo, da izberete zvezdo. 646 00:27:59,742 --> 00:28:02,200 In to je malo nadležno, če si želel samo novinec. 647 00:28:02,200 --> 00:28:05,640 In tako, če boste namesto tega je rekel, izberite zvezda iz tabele zbirke podatkov 648 00:28:05,640 --> 00:28:08,470 kjer je leto je enako citiram, konec citata novinec, 649 00:28:08,470 --> 00:28:10,810 to je kot da bi vaš prijatelj v študentski skupini 650 00:28:10,810 --> 00:28:13,770 dobesedno poudaril in kopira le novinec vrstice, 651 00:28:13,770 --> 00:28:16,780 jih prilepijo v novo Google Preglednice ali Excel datoteka 652 00:28:16,780 --> 00:28:18,860 in vam vrnil izhajajo samo datoteko. 653 00:28:18,860 --> 00:28:21,710 To je vse, kar se dogaja na konceptualno tukaj. 654 00:28:21,710 --> 00:28:23,920 >> Torej, na koncu, ne moremo storiti nekaj zelo fancy stvari 655 00:28:23,920 --> 00:28:26,560 s shranjevanjem stvari, kot so uporabniška imena in gesla in podobno. 656 00:28:26,560 --> 00:28:30,310 Ampak, se je izkazalo, moramo storiti malo drugače, kot je ta. 657 00:28:30,310 --> 00:28:34,750 Saj ne, da pameten samo shranite uporabniško ime in geslo. 658 00:28:34,750 --> 00:28:37,790 Nekdo prej, mislim, dol, predlagal ID. 659 00:28:37,790 --> 00:28:40,787 Zdaj bi lahko ID biti kot Harvard ID ali Yale Net ID, 660 00:28:40,787 --> 00:28:42,870 vendar bi bilo še enostavnejša V naši podatkovni banki primeru. 661 00:28:42,870 --> 00:28:45,120 In res, skupna zadeva je še en stolpec. 662 00:28:45,120 --> 00:28:46,953 In bom šel naprej in uredim mizo. 663 00:28:46,953 --> 00:28:49,521 In če si igral s ta vmesnik za PSet7, 664 00:28:49,521 --> 00:28:51,770 boste videli, da si lahko ogledate ta gumb tukaj in dodajte 665 00:28:51,770 --> 00:28:53,750 polje na začetku tabele. 666 00:28:53,750 --> 00:28:56,720 In zdaj, če sem kliknite Go, gre da bi mi dal eno od teh oblik 667 00:28:56,720 --> 00:28:57,600 od prej. 668 00:28:57,600 --> 00:29:00,170 Bom dodati polje imenovano ID. 669 00:29:00,170 --> 00:29:03,070 In bom, da bo številčna vrsta. 670 00:29:03,070 --> 00:29:05,362 >> Imam cel kup vrednosti za številkami,. 671 00:29:05,362 --> 00:29:08,677 Jaz sem šele tekoč, da izberejo INT in Ne skrbite različnega velikosti. 672 00:29:08,677 --> 00:29:10,510 Nimam navesti dolžino ali vrednost, 673 00:29:10,510 --> 00:29:13,710 zato, ker se dogaja, da 32 bitov ni važno kaj. 674 00:29:13,710 --> 00:29:16,070 Atributi, nismo videli prej. 675 00:29:16,070 --> 00:29:18,410 Vse obresti, ki v katerem koli od teh Meni možnosti tokrat? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Za INT? 678 00:29:23,745 --> 00:29:24,620 Kaj predlagate? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 Ne? 681 00:29:28,445 --> 00:29:29,570 Ali kateri koli od teh smisla? 682 00:29:29,570 --> 00:29:30,536 Ja. 683 00:29:30,536 --> 00:29:31,900 Ja, nepodpisano, kajne? 684 00:29:31,900 --> 00:29:35,930 >> Na splošno, če bomo dal vsakdo edinstvena številka, ki 685 00:29:35,930 --> 00:29:38,200 je, če je ta zgodba dogaja, res samo želim 686 00:29:38,200 --> 00:29:41,919 oseba imeti toliko kot nič in ena in dva in tri in štiri. 687 00:29:41,919 --> 00:29:43,710 Mi ni treba ukvarjati z negativnimi številkami. 688 00:29:43,710 --> 00:29:45,210 Samo zdi kot nepotrebne kompleksnosti. 689 00:29:45,210 --> 00:29:48,470 Hočem štiri milijarde možne vrednosti, ne štiri milijarde možne vrednosti, 690 00:29:48,470 --> 00:29:50,699 tako da sem samo podvojila kapaciteta mojega INT. 691 00:29:50,699 --> 00:29:53,490 Kot prahi, če želite, da se nanašajo da je to nekaj takega kot so Facebook, 692 00:29:53,490 --> 00:29:56,190 nazaj v neke vrste moj dan, ko Facebook prvič prišel ven, 693 00:29:56,190 --> 00:29:59,510 Mislim, da tisto, kar so bili uporabljajo v njihovi bazi podatkov MySQL 694 00:29:59,510 --> 00:30:02,856 Če želite shraniti uporabnikov identifikator, je bil samo INT. 695 00:30:02,856 --> 00:30:05,230 Seveda, tam je veliko realnih ljudi na svetu. 696 00:30:05,230 --> 00:30:07,438 Tam je veliko lažnih Facebook predstavlja v svetu. 697 00:30:07,438 --> 00:30:11,701 In tako na koncu, Facebook preplavila velikost notr, A štiri milijarde 698 00:30:11,701 --> 00:30:12,200 vrednost. 699 00:30:12,200 --> 00:30:15,032 Kateri je razlog, zakaj, če pogledaš okrog in tam je spletne strani 700 00:30:15,032 --> 00:30:16,740 da vam lahko povem, kaj svoj edinstven ID. 701 00:30:16,740 --> 00:30:19,781 In če ne boste nikoli izbral ime v Facebook, boste videli svoj edinstven ID. 702 00:30:19,781 --> 00:30:23,080 Mislim, da je profil dot PHP Vprašanje znamka ID znaša nekaj. 703 00:30:23,080 --> 00:30:27,210 To je zdaj nekaj podobnega velik INT, ali dolgo dolgo, če hočete, 704 00:30:27,210 --> 00:30:29,700 ki je 64-bitna vrednost ali kaj primerljivi. 705 00:30:29,700 --> 00:30:33,620 >> Torej, tudi v resničnem svetu, se ti vprašanja, na koncu včasih važno. 706 00:30:33,620 --> 00:30:37,600 In se izkaže, tu, če sem daje vse moje uporabnikov edinstven ID, 707 00:30:37,600 --> 00:30:41,750 Želim biti super eksplicitno in minimalno narediti na tem področju edinstven. 708 00:30:41,750 --> 00:30:44,750 Vendar se izkaže, da je ena kos nomenklature danes preveč 709 00:30:44,750 --> 00:30:46,470 da je primarni ključ. 710 00:30:46,470 --> 00:30:49,800 Če ste načrtovanju baze podatkov miza in veš vnaprej 711 00:30:49,800 --> 00:30:55,580 da je eden izmed stolpcev v tej preglednici morajo biti in bodo enolično identifikacijo vrstice 712 00:30:55,580 --> 00:30:58,500 v tabeli, ki jih želite ga določi in povej baze podatkov, 713 00:30:58,500 --> 00:31:00,250 to je moj primarni ključ. 714 00:31:00,250 --> 00:31:02,110 Morda obstaja dvojnikov na drugih področjih, 715 00:31:02,110 --> 00:31:06,330 vendar sem povedal, baze podatkov, da je to je moj primarni, moje najpomembnejše področje, 716 00:31:06,330 --> 00:31:08,420 da je zagotovljeno, da je edinstven. 717 00:31:08,420 --> 00:31:09,660 >> Zdaj, to se zdi odveč. 718 00:31:09,660 --> 00:31:13,830 Jaz sem zdaj predlaga, da smo dodati, s klikom na Shrani tukaj, 719 00:31:13,830 --> 00:31:17,210 polje called-- in grem da gredo naprej in kliknite AI, 720 00:31:17,210 --> 00:31:19,720 se bomo vrnili k da je v trenutku, Save. 721 00:31:19,720 --> 00:31:22,540 Sem predlagala zdaj, moja miza videti takole. 722 00:31:22,540 --> 00:31:26,305 Imam INT polje z imenom ID, char polje imenovano ime, 723 00:31:26,305 --> 00:31:31,100 VARCHAR polje imenovano Ime, ampak ID, če je primarna in zato edinstven, 724 00:31:31,100 --> 00:31:33,760 Zakaj sem samo zapravljajo Čas uvajanja kaj 725 00:31:33,760 --> 00:31:39,140 dejansko je druga edinstvena Polje se imenuje ID, ki je notr? 726 00:31:39,140 --> 00:31:41,980 >> Ime, odpoklic, je bil že edinstvena, smo rekli. 727 00:31:41,980 --> 00:31:45,350 Torej samo logično, vam ni treba vsaka izkušnja baze podatkov razloga 728 00:31:45,350 --> 00:31:47,570 s tem, zakaj Morda sem predstavil 729 00:31:47,570 --> 00:31:50,065 notr kot moj enolično identifikacijsko oznako, kot tudi? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Kaj je this-- ponovi? 732 00:31:53,930 --> 00:31:55,580 >> OBČINSTVO: [neslišno] 733 00:31:55,580 --> 00:31:59,534 >> DAVID Malan: Random dostop je lažji, zakaj? 734 00:31:59,534 --> 00:32:00,410 >> OBČINSTVO: [neslišno] 735 00:32:00,410 --> 00:32:02,367 DAVID Malan: Ja, to je Samo dostop številke. 736 00:32:02,367 --> 00:32:04,750 Torej, če misliš, da je to resnično je tabela, kot matrike, 737 00:32:04,750 --> 00:32:07,690 zdaj imam edinstvene identifikatorje da sem lahko skakati okoli. 738 00:32:07,690 --> 00:32:11,520 In bolje, kot da je še vedno, da je kako velik se INT bo spet? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 bitov ali štiri bajte. 741 00:32:15,800 --> 00:32:17,750 >> Kako velika je moje uporabniško ime bo? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Maksimalno? 744 00:32:21,990 --> 00:32:22,880 16 bajtov. 745 00:32:22,880 --> 00:32:26,080 >> Torej, če ste res skrbeti izvajanje kode, 746 00:32:26,080 --> 00:32:31,390 pomislite na PSet5, bi raje iskati štiri byte vrednosti ali 16 747 00:32:31,390 --> 00:32:32,240 bitna vrednost, kajne? 748 00:32:32,240 --> 00:32:33,810 Res je tako enostavno, kot da. 749 00:32:33,810 --> 00:32:38,060 Moraš delati štirikrat toliko dela za iskanje imen, ker tisti, 750 00:32:38,060 --> 00:32:38,830 16 bajtov. 751 00:32:38,830 --> 00:32:41,320 Torej, moraš dobesedno primerjavo vseh 16 bajtov biti 752 00:32:41,320 --> 00:32:43,140 prepričan, da je to uporabniško ime hočem. 753 00:32:43,140 --> 00:32:46,610 Ker je za INT, lahko to samo s štirimi bajti. 754 00:32:46,610 --> 00:32:49,212 >> In kot rezerviran za tiste, zanima računalniške strojne opreme, 755 00:32:49,212 --> 00:32:52,420 se izkaže, da lahko fit nekaj podobnega notr ali 32-bitna vrednost v nekaj 756 00:32:52,420 --> 00:32:55,330 imenovano register v računalniku CPU, kar pomeni, da je super, 757 00:32:55,330 --> 00:32:58,400 zelo hitro, tudi pri najnižji raven strojne opreme računalnika. 758 00:32:58,400 --> 00:33:00,530 Torej, tam je samo prednosti vsem. 759 00:33:00,530 --> 00:33:01,530 Torej, kaj to pomeni? 760 00:33:01,530 --> 00:33:04,850 V bistvu, ko ste načrtovanju tabela zbirke, skoraj ves čas 761 00:33:04,850 --> 00:33:07,170 se vam dogaja, da imajo ne le podatki, ki jih skrbi, 762 00:33:07,170 --> 00:33:09,280 ampak tudi nekaj podobnega edinstven identifikator 763 00:33:09,280 --> 00:33:11,280 ker to se dogaja, da Storimo druge stvari. 764 00:33:11,280 --> 00:33:13,160 In kaj je spotakniti en problem tukaj. 765 00:33:13,160 --> 00:33:15,990 >> Denimo, da imajo uporabniki ne samo imena in imena, 766 00:33:15,990 --> 00:33:19,540 imajo pa tudi stvari, kot je mest in države in poštne številke, vsaj 767 00:33:19,540 --> 00:33:20,432 tukaj v ZDA. 768 00:33:20,432 --> 00:33:22,390 Torej, bom šel naprej in samo hitro reči, 769 00:33:22,390 --> 00:33:26,180 dajte mi tri več stolpcev Na koncu tabele. 770 00:33:26,180 --> 00:33:28,900 In to se bo City, To se dogaja, da je država, 771 00:33:28,900 --> 00:33:30,400 in to se bo Zip. 772 00:33:30,400 --> 00:33:32,710 >> Zdaj City, kaj tipi podatkov bi to moralo biti, morda? 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 Ne vem, kaj je Najdaljša ime mesta je. 776 00:33:37,780 --> 00:33:40,571 Nekje v Ameriki, tam je verjetno nekaj smešno dolgo besedo, 777 00:33:40,571 --> 00:33:43,605 tako da je šele iti z 255, kar je nekoliko zgodovinsko ali samovoljno. 778 00:33:43,605 --> 00:33:44,730 Država, kaj želite, da naredim? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Sodba klic, kajne? 781 00:33:50,367 --> 00:33:51,700 Kaj je morda najbolj učinkovit? 782 00:33:51,700 --> 00:33:53,500 Koliko znakov? 783 00:33:53,500 --> 00:33:55,950 Mogoče samo dva, če bomo lahko izmaže delaš samo, 784 00:33:55,950 --> 00:33:58,250 podobno, MA za Massachusetts in tako naprej. 785 00:33:58,250 --> 00:34:00,520 Torej, bom šel vrednost CHAR dveh. 786 00:34:00,520 --> 00:34:03,080 >> Poštna številka je zanimiva. 787 00:34:03,080 --> 00:34:06,679 Mi smo tukaj v 02138, tako da predlaga, da bi morali uporabiti, kaj? 788 00:34:06,679 --> 00:34:07,470 To je INT, kajne? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, kratko? 791 00:34:12,800 --> 00:34:14,521 Kratek bi delovalo. 792 00:34:14,521 --> 00:34:15,020 Ne? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR ali pet, ampak hočem INT. 795 00:34:20,870 --> 00:34:23,710 Zakaj potisnite nazaj na INT? 796 00:34:23,710 --> 00:34:26,820 Prepričati me iz tega. 797 00:34:26,820 --> 00:34:29,210 Kaj je neumno približno INT, mojo idejo? 798 00:34:29,210 --> 00:34:29,871 Ja. 799 00:34:29,871 --> 00:34:31,199 >> OBČINSTVO: Vpiti več pomnilnika. 800 00:34:31,199 --> 00:34:32,909 >> DAVID Malan: Vpiti več pomnilnika. 801 00:34:32,909 --> 00:34:35,310 Štiri bajte, ampak si predlaga poštno številko 802 00:34:35,310 --> 00:34:39,000 kot pet bajtov ali je bil nekdo kot CHAR, ki se počuti kot eh, da to ni res 803 00:34:39,000 --> 00:34:39,620 Primer. 804 00:34:39,620 --> 00:34:40,489 >> No, zabavna zgodba. 805 00:34:40,489 --> 00:34:43,179 Pred leti, ko sem se uporabljajo za uporabo Microsoft Outlook za svoj email, 806 00:34:43,179 --> 00:34:45,150 Sčasoma sem želel, da preklopite na Gmail. 807 00:34:45,150 --> 00:34:48,949 In tako sem se izvažajo vse moje stike iz Outlooka kot datoteko CSV. 808 00:34:48,949 --> 00:34:50,699 Vejico ločene vrednosti, ki samo pomenilo I 809 00:34:50,699 --> 00:34:54,060 imeli vsi moji prijatelji imena in priimek Imena in telefonske številke in poštne številke 810 00:34:54,060 --> 00:34:54,747 in vse to. 811 00:34:54,747 --> 00:34:56,580 In potem sem se postavil na napaka, da odpira 812 00:34:56,580 --> 00:34:58,640 v Excelu, ki je preglednice program, ki 813 00:34:58,640 --> 00:35:00,289 razume CSV datotek, kot smo videli. 814 00:35:00,289 --> 00:35:03,080 Ampak potem, moram se udaril, kot so, Ukaz ali Control S v eni točki. 815 00:35:03,080 --> 00:35:06,250 In Excel očitno v času je imel funkcijo pri katerem koli času, ko je 816 00:35:06,250 --> 00:35:08,100 Videl številko, je poskušal biti koristen. 817 00:35:08,100 --> 00:35:11,610 In če je to število začelo z ničle, bi bilo samo se znebite njih. 818 00:35:11,610 --> 00:35:13,420 Zakaj potrebujete vodilni ničlami ​​na cela? 819 00:35:13,420 --> 00:35:15,140 Oni so brez pomena, matematično. 820 00:35:15,140 --> 00:35:17,530 Oni niso nesmiselna v US Postal sistema. 821 00:35:17,530 --> 00:35:19,954 Torej, sem imel več let, na ta dan, sem še vedno 822 00:35:19,954 --> 00:35:22,370 imeti prijatelje, da je, ko je redek primer, da moram nekdo 823 00:35:22,370 --> 00:35:24,078 reševanje teh dneh, Jaz bom še vedno vidim, da sem 824 00:35:24,078 --> 00:35:26,767 imeti prijatelja v Cambridgeu, Massachusetts, 2138. 825 00:35:26,767 --> 00:35:29,350 In to je nadležno, če ste poskušajo rešiti s programsko 826 00:35:29,350 --> 00:35:30,975 ustvarjajo ovojnice ali pa ga zapišete. 827 00:35:30,975 --> 00:35:33,599 In da je zaradi tega razloga, Sem izbral napačno vrsto podatkov. 828 00:35:33,599 --> 00:35:34,490 Torej, jaz ljubim svojo idejo. 829 00:35:34,490 --> 00:35:35,650 Oglejmo uporabite polje CHAR. 830 00:35:35,650 --> 00:35:38,340 Pet znakov, razen je primer kotiček. 831 00:35:38,340 --> 00:35:42,220 Če ste še vedno pošiljate pošto, včasih zip kode v teh dneh, 832 00:35:42,220 --> 00:35:45,360 oni, kot so, plus štiri. 833 00:35:45,360 --> 00:35:48,200 Torej, potrebujemo vezaj in nato moramo še štiri številke. 834 00:35:48,200 --> 00:35:50,330 Torej, če sem iskren, bi ga iti mnogo različnih načinov. 835 00:35:50,330 --> 00:35:52,371 >> Za zdaj, grem naprej je preprosta in sem samo 836 00:35:52,371 --> 00:35:54,780 reči, da je to pet CHAR vrednost in smo 837 00:35:54,780 --> 00:35:56,739 bo preskočiti celotno pomišljaj plus štiri. 838 00:35:56,739 --> 00:35:58,280 Ampak to so vrste kompromisi. 839 00:35:58,280 --> 00:36:00,196 In si lahko zamislite od Enake težave, ki izhajajo 840 00:36:00,196 --> 00:36:01,860 s telefonskimi številkami ali drugih področjih. 841 00:36:01,860 --> 00:36:04,350 >> In zdaj, to je dejansko nespameten cesta iti dol. 842 00:36:04,350 --> 00:36:08,000 Denimo tako Rob jaz in Hannah in Maria in [? Davon?] In Andy 843 00:36:08,000 --> 00:36:12,820 in drugi na osebje vse živo v Cambridgeu, Massachusetts, 02138. 844 00:36:12,820 --> 00:36:17,970 To dejansko počutijo neumno, da sem tako, da moji uporabniki mizo, mesto, državo, 845 00:36:17,970 --> 00:36:18,630 in zip. 846 00:36:18,630 --> 00:36:20,980 Zakaj? 847 00:36:20,980 --> 00:36:21,960 >> OBČINSTVO: [neslišno] 848 00:36:21,960 --> 00:36:22,918 >> DAVID Malan: Ponovi? 849 00:36:22,918 --> 00:36:24,310 OBČINSTVO: [neslišno] 850 00:36:24,310 --> 00:36:25,850 >> DAVID Malan: Oni so vedno šli skupaj, kajne? 851 00:36:25,850 --> 00:36:28,660 Ko se izkaže, smo vajeni razmišljati To se je zgodilo, dokler ne bomo izčrpno 852 00:36:28,660 --> 00:36:30,570 iskali celo ZDA, in se izkaže, da obstaja 853 00:36:30,570 --> 00:36:32,653 so nekatere nedoslednosti kjer več mesta imajo 854 00:36:32,653 --> 00:36:35,060 enako zip, kar je čudno. 855 00:36:35,060 --> 00:36:40,580 Ampak, če bomo določajo, za zdaj, 02138 Vedno je Cambridge, Massachusetts, 856 00:36:40,580 --> 00:36:44,910 Zakaj na svetu bi si shranite v Vaša podatkovna baza Cambridge in MA in 02.138 857 00:36:44,910 --> 00:36:49,357 zame in za Hannah in Robu in za [? Davon?], In za druge, ki živijo 858 00:36:49,357 --> 00:36:51,190 tukaj v Cambridgeu, je popolnoma odveč. 859 00:36:51,190 --> 00:36:54,480 >> Mi bi morali pobegniti s samo shranjevanje kaj? 860 00:36:54,480 --> 00:36:55,610 Samo poštna številka. 861 00:36:55,610 --> 00:36:58,660 Ampak potem, če hranimo samo poštna številka, jaz želim, je verjetno, 862 00:36:58,660 --> 00:37:02,160 za mojo spletno stran, da vem, kje je 02.138. 863 00:37:02,160 --> 00:37:03,910 Torej, rabim še eno mizo. 864 00:37:03,910 --> 00:37:04,697 In to je v redu. 865 00:37:04,697 --> 00:37:07,530 In v bistvu je to ena oblikovanje procesov oblikovanja tabel 866 00:37:07,530 --> 00:37:11,472 da boste storili v PSet7 kot dobro, pri čemer želite dejavnik skupne podatke. 867 00:37:11,472 --> 00:37:14,430 Tako kot smo bili faktoring ven skupna številka in faktoring iz skupne 868 00:37:14,430 --> 00:37:17,380 stili iz CSS, tukaj Tudi v podatkovni bazi, 869 00:37:17,380 --> 00:37:21,180 če potrebujete le 02138 enolično identificirati nekdo rojstni kraj, 870 00:37:21,180 --> 00:37:25,020 Ne shranjujte Cambridge, Mass za vsak darn uporabnik v tabeli. 871 00:37:25,020 --> 00:37:29,770 >> Namesto tega imajo posebno tabelo imenovano Zadrge, da bi morali kaj stolpci? 872 00:37:29,770 --> 00:37:33,490 Verjetno polje ID, samo zato, ker za načel govorimo o sedaj. 873 00:37:33,490 --> 00:37:35,720 Verjetno zip polje za 02138. 874 00:37:35,720 --> 00:37:38,400 In potem je verjetno tisto, kar drugi stolpci? 875 00:37:38,400 --> 00:37:42,950 Mesto in država, vendar imajo le eno vrstica za 02138, ena vrstica za 02139, 876 00:37:42,950 --> 00:37:44,772 ena vrstica za 90210. 877 00:37:44,772 --> 00:37:46,730 In to je dobesedno vsi zip kode vem. 878 00:37:46,730 --> 00:37:49,012 >> Torej sedaj, kaj lahko storim? 879 00:37:49,012 --> 00:37:51,220 To je problematična, ker Zdaj imam dve tabeli. 880 00:37:51,220 --> 00:37:54,660 Torej, moji uporabniki so večinoma tukaj, vendar je njihova informacije mestna država je 881 00:37:54,660 --> 00:37:55,390 tukaj. 882 00:37:55,390 --> 00:37:58,635 Torej, se izkaže z SQL, tam je pravzaprav način, da se pridružijo informacije, 883 00:37:58,635 --> 00:38:00,470 in boste videli v PSet. 884 00:38:00,470 --> 00:38:03,000 >> Vendar se izkaže, da lahko narediti kaj takega. 885 00:38:03,000 --> 00:38:10,501 SELECT zvezda od uporabnikov, JOIN zadrge ON Uporabniki dot zip enaka zadrge dot zip. 886 00:38:10,501 --> 00:38:13,360 Ki je malo Razvučen, Res je, vendar je to le 887 00:38:13,360 --> 00:38:17,590 pomeni, da izberete vse od Proces ob moji uporabniki mizo 888 00:38:17,590 --> 00:38:19,580 in moja zadrge miza. 889 00:38:19,580 --> 00:38:22,120 Pridružite se jim na enem Polje imajo v koloni. 890 00:38:22,120 --> 00:38:24,780 Torej, dobesedno delaš nekaj kot je ta, in mi dala nazaj 891 00:38:24,780 --> 00:38:27,360 nova začasna tabela da je širša, da je večji, 892 00:38:27,360 --> 00:38:29,450 da ima vse stebri iz oba. 893 00:38:29,450 --> 00:38:33,510 In da, preprosto, bi sintaksa za kaj takega počneš. 894 00:38:33,510 --> 00:38:35,540 >> Torej, da je to prednost, vendar pa se dogaja 895 00:38:35,540 --> 00:38:38,950 da bo druge odločitve o oblikovanju boste morali narediti, ne le z indeksi 896 00:38:38,950 --> 00:38:40,550 pa tudi teče v izzive. 897 00:38:40,550 --> 00:38:43,360 Dejstvo je, da je izziv v vsakem načrtovanje podatkovnih baz 898 00:38:43,360 --> 00:38:47,930 pri čemer včasih morda dve ljudje želijo dostop do enake vrste v podatkovni bazi 899 00:38:47,930 --> 00:38:48,530 miza. 900 00:38:48,530 --> 00:38:51,450 Torej, to je nekaj, kar bomo naletijo na PSet7 kot dobro. 901 00:38:51,450 --> 00:38:54,686 >> Ampak sem mislil, da sem videti na enem napad, ki je mogoča v SQL. 902 00:38:54,686 --> 00:38:56,560 Katere so nekatere od težave, ki lahko nastanejo? 903 00:38:56,560 --> 00:38:58,170 Torej, boste to srečati v PSet7. 904 00:38:58,170 --> 00:39:01,874 In vam povem odkrito, kaj je kodiranja rešitev za ta problem je. 905 00:39:01,874 --> 00:39:04,790 Ampak, če ste vzeli višji razred ravni, še posebej v operacijskih sistemih, 906 00:39:04,790 --> 00:39:06,950 boste naleteli vprašanje Valentnost, 907 00:39:06,950 --> 00:39:10,080 problem poskuša narediti več stvari naenkrat 908 00:39:10,080 --> 00:39:11,000 brez prekinitve. 909 00:39:11,000 --> 00:39:14,560 >> In pomislil sem, da bi to uvesti Ideja za PSet7 z metaforo 910 00:39:14,560 --> 00:39:18,160 da sem se naučila v Margo Operacijski sistemi CS164 Soda je 911 00:39:18,160 --> 00:39:18,990 razred pred leti. 912 00:39:18,990 --> 00:39:22,230 Recimo, da imate eno od teh domu hladilnikov v vaši študentski sobi ali hiši, 913 00:39:22,230 --> 00:39:24,474 in imate resnično nagnjenj za mleko. 914 00:39:24,474 --> 00:39:27,140 In tako, prideš domov iz razredov Nekega dne, ko odprete hladilnik. 915 00:39:27,140 --> 00:39:27,620 Oh, prekleto. 916 00:39:27,620 --> 00:39:28,870 Ni mleko v hladilniku. 917 00:39:28,870 --> 00:39:32,470 Torej, zaprete hladilnik, zakleniti vrata, zaklenite domu, 918 00:39:32,470 --> 00:39:34,770 sprehod okoli vogala za CVS, postavi se v vrsto, 919 00:39:34,770 --> 00:39:36,312 in začeti preverjanje ven za nekaj mleka. 920 00:39:36,312 --> 00:39:38,978 In to bo trajalo nekaj časa, ker tisti prekleti samostojno blagajno 921 00:39:38,978 --> 00:39:40,570 števci trajalo celo večnost, da nekako uporabiti. 922 00:39:40,570 --> 00:39:41,950 Torej medtem, tvoja cimra pride domov. 923 00:39:41,950 --> 00:39:43,470 On ali ona res všeč mleko, kot dobro. 924 00:39:43,470 --> 00:39:45,520 Pridejo v študentski sobi, odpreti hladilnik, oh, tako darn. 925 00:39:45,520 --> 00:39:46,490 Ni več mleka. 926 00:39:46,490 --> 00:39:49,040 >> Torej, on ali ona tudi gre za vogalom. 927 00:39:49,040 --> 00:39:51,670 Toda zdaj, saj je kot dva ali tri ali štiri CVSes bližini, 928 00:39:51,670 --> 00:39:53,800 se zgodi, da bi v eni izmed Različne tisti na trgu. 929 00:39:53,800 --> 00:39:55,830 In zdaj, nekaj minut kasneje, oba 930 00:39:55,830 --> 00:39:58,060 prišel domov in mo, najhujši problem kdaj. 931 00:39:58,060 --> 00:40:00,967 Zdaj imate preveč mleka zato, ker se dogaja, da gredo kislo. 932 00:40:00,967 --> 00:40:03,050 In radi mleko, vendar pa Ne res rad mleko. 933 00:40:03,050 --> 00:40:06,730 >> Torej sedaj, to je drago napaka, ker oba 934 00:40:06,730 --> 00:40:09,870 sprejeli odločitev, ki temelji na stanje neke spremenljivke, ki 935 00:40:09,870 --> 00:40:12,660 je v procesu spremenjena s tabo, 936 00:40:12,660 --> 00:40:14,560 pobudnik bo dobil mleko. 937 00:40:14,560 --> 00:40:17,785 Torej, kaj je morda človek rešitev za ta problem? 938 00:40:17,785 --> 00:40:18,660 OBČINSTVO: [neslišno] 939 00:40:18,660 --> 00:40:19,430 DAVID Malan: Pustite noto, kajne? 940 00:40:19,430 --> 00:40:21,850 Vedno pustite opombo, če ste seznanjeni s to predstavo. 941 00:40:21,850 --> 00:40:23,100 Da, obstaja midva. 942 00:40:23,100 --> 00:40:25,940 Torej, vedno pustite opombo, ali dobesedno zaklene hladilnik 943 00:40:25,940 --> 00:40:28,602 z nekakšno ključavnico ali Nekaj ​​čez vrh takega. 944 00:40:28,602 --> 00:40:31,310 Ampak to je dejansko dogaja, da se Ključni problem pri oblikovanju podatkovne baze, 945 00:40:31,310 --> 00:40:34,710 še posebej, če imate morda več brskalnikov, več prenosnih računalnikov, 946 00:40:34,710 --> 00:40:37,450 več uporabnikov vseh poskuša posodabljanje informacij naenkrat. 947 00:40:37,450 --> 00:40:40,590 Posebej občutljive informacije kot so finančne informacije, 948 00:40:40,590 --> 00:40:43,350 pri čemer z trgovanje parka spletna stran, kot si ti bomo gradnjo, 949 00:40:43,350 --> 00:40:47,270 Kaj pa, če želite preveriti, koliko denarja imate, in potem, če imate dovolj, 950 00:40:47,270 --> 00:40:48,490 kupiti nekaj zaloge? 951 00:40:48,490 --> 00:40:50,899 >> Toda kaj, če nekdo drug, ki ima skupni račun z vami 952 00:40:50,899 --> 00:40:52,690 je hkrati poskuša kupiti nekaj zaloge? 953 00:40:52,690 --> 00:40:55,190 Torej, on ali ona je preverjanju podatkov stanje na računu, tako vas 954 00:40:55,190 --> 00:40:57,540 dobili nazaj isto Odgovor, ni mleka. 955 00:40:57,540 --> 00:41:00,580 Ali oboje od vas dobil nazaj odgovor, imate 100 $ na računu. 956 00:41:00,580 --> 00:41:04,680 Oba poskusil, da bi odločitev kupiti eno delnico nekega podjetja zalogi. 957 00:41:04,680 --> 00:41:06,130 >> In zdaj, kaj se zgodi? 958 00:41:06,130 --> 00:41:07,140 Imate dve delnice? 959 00:41:07,140 --> 00:41:08,420 Nimate delnice? 960 00:41:08,420 --> 00:41:10,320 Lahko se pojavijo težave, kot je ta. 961 00:41:10,320 --> 00:41:11,755 Torej, bomo naleteli na to. 962 00:41:11,755 --> 00:41:14,630 Injection napadi SQL, na srečo, so nekaj, kar vam bomo pomagali pri, 963 00:41:14,630 --> 00:41:17,430 vendar so ti atrociously pogosti v teh dneh še vedno. 964 00:41:17,430 --> 00:41:18,680 Torej, to je samo primer. 965 00:41:18,680 --> 00:41:21,290 Naredim nobenih zahtevkov, ki Harvard PIN sistem 966 00:41:21,290 --> 00:41:23,130 dovzetni za tem napadom. 967 00:41:23,130 --> 00:41:24,160 Poskušali smo. 968 00:41:24,160 --> 00:41:26,120 Ampak, veste, da mi imeti pogoje, kot je ta. 969 00:41:26,120 --> 00:41:29,620 In Yale Net ID je podoben išče zaslon v teh dneh. 970 00:41:29,620 --> 00:41:33,190 In se je izkazalo, da morda PIN številka sistema se izvaja v PHP. 971 00:41:33,190 --> 00:41:37,050 >> In če je were-- je not-- so Morda imajo kodo, ki izgleda takole. 972 00:41:37,050 --> 00:41:38,210 Imajo dve spremenljivki. 973 00:41:38,210 --> 00:41:42,495 Daj mi uporabniško ime in geslo od po super globalne spremenljivke 974 00:41:42,495 --> 00:41:43,970 da smo se pogovarjali o prej. 975 00:41:43,970 --> 00:41:47,310 Mogoče Harvard ima poizvedbo kot SELECT zvezda iz uporabnike 976 00:41:47,310 --> 00:41:50,005 kjer username da je enak in geslo, da je enak. 977 00:41:50,005 --> 00:41:51,880 In opazil, da sem samo priklopom v uporabo 978 00:41:51,880 --> 00:41:55,050 kodrasti brace zapis od drugega dan, kar pomeni, da samo priključite v vrednosti 979 00:41:55,050 --> 00:41:55,550 tukaj. 980 00:41:55,550 --> 00:41:57,449 Jaz ne uporabljate Vprašanje tehnika znamka. 981 00:41:57,449 --> 00:41:59,240 Nimam nobenega drugega ali tretje argumenti. 982 00:41:59,240 --> 00:42:02,350 Jaz sem samo dobesedno gradnji niz sebi. 983 00:42:02,350 --> 00:42:04,930 >> Problem pa je, da če je nekdo všeč scroob, 984 00:42:04,930 --> 00:42:09,020 ki je sklicevanje na filmu, dnevniki z nekaj takega, 985 00:42:09,020 --> 00:42:11,250 in sem odstranjen pike ki ponavadi prikriti 986 00:42:11,250 --> 00:42:14,370 Gesla, kaj če je zlasti zlonamerno 987 00:42:14,370 --> 00:42:18,860 in njegovo geslo je morda 12345, na filmu z naslovom "Spaceballs" 988 00:42:18,860 --> 00:42:21,970 vendar je kritično Vrste A enojni narekovaj po pet, 989 00:42:21,970 --> 00:42:24,790 potem dobesedno beseda ali v prostoru, nato pa citiram, 990 00:42:24,790 --> 00:42:29,160 konec citata ena enaka citiram enega, ampak obvestilo, on je kar izpuščen? 991 00:42:29,160 --> 00:42:32,700 On je izpuščen citat na desni in on je izpuščena citat na levi strani. 992 00:42:32,700 --> 00:42:35,170 >> Ker če je to napadalec scroob je domneva 993 00:42:35,170 --> 00:42:38,160 je, da so ljudje, ki so pisali to PHP koda ni bila tako svetla, 994 00:42:38,160 --> 00:42:42,990 Mogoče pa samo še nekaj single navednice interpolacijo 995 00:42:42,990 --> 00:42:45,210 spremenljivke v zavitih oklepajih? 996 00:42:45,210 --> 00:42:48,620 In tako morda, bi ga lahko nekako za dokončanje svojo misel 997 00:42:48,620 --> 00:42:53,290 za njih, vendar na način, ki se dogaja da naj mu vdrl v sistem PIN. 998 00:42:53,290 --> 00:42:55,310 Z drugimi besedami, recimo da je ta oznaka 999 00:42:55,310 --> 00:42:57,140 in zdaj priključite kaj scroob tipkal. 1000 00:42:57,140 --> 00:42:58,770 In to je rdeča, ker je to slabo. 1001 00:42:58,770 --> 00:43:01,310 >> In temeljno besedilo je tisto, kar je vneseno, 1002 00:43:01,310 --> 00:43:05,510 scroob lahko trik Harvard je strežnik v gradnji SQL poizvedbo 1003 00:43:05,510 --> 00:43:07,440 niz, ki izgleda takole. 1004 00:43:07,440 --> 00:43:11,760 Geslo enaka 12.345 ali eno enaka ena. 1005 00:43:11,760 --> 00:43:14,820 Rezultat, ki je logično, je, da bo to prijavite scroob 1006 00:43:14,820 --> 00:43:18,360 se, če je njegov geslo 12345 ali če ena Ene 1007 00:43:18,360 --> 00:43:22,660 ena, ki je seveda vedno velja, kar pomeni scroob vedno pride v. 1008 00:43:22,660 --> 00:43:26,060 >> In tako, tako, da se določi To, kot je v veliko primerih 1009 00:43:26,060 --> 00:43:28,140 bi bilo bolj osredotočila pisati. 1010 00:43:28,140 --> 00:43:30,390 Če želite uporabiti nekaj podobnega naši Dejanska funkcija poizvedbe, ki 1011 00:43:30,390 --> 00:43:33,980 boste videli v PSet7, kjer smo priklopili nekaj podobnega vprašanje zaznamuje tukaj. 1012 00:43:33,980 --> 00:43:35,980 In lepota Funkcija izraz, da smo 1013 00:43:35,980 --> 00:43:40,010 vam je brani pred njimi tako imenovani injection napadi SQL, kjer 1014 00:43:40,010 --> 00:43:44,260 nekdo tricking kodo v vbrizgavanjem svojo lastno kodo SQL. 1015 00:43:44,260 --> 00:43:47,380 Ker kakšni funkciji poizvedbe smo vam bo dejansko naredil, 1016 00:43:47,380 --> 00:43:51,270 če uporabite sintakso vprašanje mark in drugi in tretji argument tod 1017 00:43:51,270 --> 00:43:54,590 je tisto, kar se je to dodati k input, da uporabniku na voljo? 1018 00:43:54,590 --> 00:43:56,060 Tisti, poševnica nazaj citira. 1019 00:43:56,060 --> 00:43:58,590 >> Torej, da pobegne koli potencialno nevarne znake. 1020 00:43:58,590 --> 00:44:01,000 To izgleda čudno zdaj, vendar to ni ranljiva 1021 00:44:01,000 --> 00:44:03,260 ker ne spremeniti logiko več 1022 00:44:03,260 --> 00:44:06,470 ker je cela geslo zdaj enojni narekovaj, da to ni, 1023 00:44:06,470 --> 00:44:07,596 v resnici, geslo scroob je. 1024 00:44:07,596 --> 00:44:09,845 Torej, to je bilo nekaj šale o tem v zadnjih letih. 1025 00:44:09,845 --> 00:44:12,570 Torej, to je fotografija sprejeti nekaterih geek na parkirišču 1026 00:44:12,570 --> 00:44:16,620 pri čemer morda veste, da se nekaj mest in države poskušajo skeniranje vašega dovoljenja 1027 00:44:16,620 --> 00:44:19,460 plošča vam ali vstopnice zaračunavati vas če greš skozi brez, kot so, 1028 00:44:19,460 --> 00:44:20,660 E-Z Pass stvar. 1029 00:44:20,660 --> 00:44:24,490 Torej, ta oseba domneva, da je morda ljudje pišejo sistem E-Z Pass 1030 00:44:24,490 --> 00:44:28,240 ni bila tako svetla, in morda so samo združena z verigo skupaj niz, 1031 00:44:28,240 --> 00:44:32,190 tako da je on ali ona ni mogla zlonamerno ne samo izpolniti svojo misel, 1032 00:44:32,190 --> 00:44:35,150 ampak dejansko izvršiti slab ukaz, ki jih še nismo omenili, 1033 00:44:35,150 --> 00:44:36,380 vendar pa boste verjetno lahko uganiti. 1034 00:44:36,380 --> 00:44:39,820 Da poleg izbrisati, in Vstavljanje in posodobitev in izberite 1035 00:44:39,820 --> 00:44:43,370 tam je tudi ključna beseda se imenuje padec, ki dobesedno izbriše vse 1036 00:44:43,370 --> 00:44:45,300 v bazi podatkov, ki je Zlasti je slab. 1037 00:44:45,300 --> 00:44:48,760 >> Mi lahko povečate na to, če to je malo težko videti. 1038 00:44:48,760 --> 00:44:52,300 To je sedaj, je slavni cartoon da je zdaj nadvse pameten 1039 00:44:52,300 --> 00:44:53,145 in razumljivo. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [Smeh] 1042 00:45:04,750 --> 00:45:05,910 >> Ja, kul. 1043 00:45:05,910 --> 00:45:06,800 Vrsta geeking ven. 1044 00:45:06,800 --> 00:45:08,800 Torej to so torej Injection napadi SQL. 1045 00:45:08,800 --> 00:45:13,050 In oni so tako enostavno, da bi se izognili z uporabo pravica kodo ali prave knjižnice. 1046 00:45:13,050 --> 00:45:15,947 In boste videli v PSet7, da je Zato smo vam funkcijo poizvedbo. 1047 00:45:15,947 --> 00:45:17,780 Torej, nekaj Dražljivke da smo menili, da bi 1048 00:45:17,780 --> 00:45:19,930 daš tukaj v naši Preostali minut skupaj. 1049 00:45:19,930 --> 00:45:24,030 Torej, ko se spomnite, od ničelne teden smo uvedla teh dveh žarnic, ki 1050 00:45:24,030 --> 00:45:26,610 so lepe, ne samo zato, ker oni so precej in so pisane, 1051 00:45:26,610 --> 00:45:29,450 ampak zato, ker jih podpirajo nekaj imenovano API, Application 1052 00:45:29,450 --> 00:45:31,980 Programski vmesnik In v CS50 doslej, ki smo jih 1053 00:45:31,980 --> 00:45:34,440 večinoma osredotočena na GET in POST, vendar se izkaže, 1054 00:45:34,440 --> 00:45:37,390 tam je druga HTTP glagoli kot DEL. 1055 00:45:37,390 --> 00:45:39,430 >> In v resnici je bilo to slide od ničelne tedna 1056 00:45:39,430 --> 00:45:44,930 pri čemer če pišete kodo, ki pošilja a la PSet6 zahtevo HTTP, ki 1057 00:45:44,930 --> 00:45:49,647 Izgleda da je ta s tem kos besedila na dnu, ki se imenuje JSON, 1058 00:45:49,647 --> 00:45:52,230 ali JavaScript Object Notation da bomo govorili o prihodnji teden, 1059 00:45:52,230 --> 00:45:57,030 lahko vklopite ali izklopite ali sprememba barva svetlobe, kot so tiste. 1060 00:45:57,030 --> 00:46:00,480 Torej, če ima CS50 tudi poleg nekaterih od teh žarnic v New Haven 1061 00:46:00,480 --> 00:46:02,480 Če želite izposoditi jih za končne projekte, 1062 00:46:02,480 --> 00:46:04,370 tudi nekateri Microsoft Trakovi, ki so kot 1063 00:46:04,370 --> 00:46:07,619 ure, ki jo nosite okoli zapestja ki imajo podobno API, tako da boste 1064 00:46:07,619 --> 00:46:10,040 Lahko napišete svoje lastne programske opreme za njih. 1065 00:46:10,040 --> 00:46:12,490 >> Imamo račun pri Tako koda Apple iOS 1066 00:46:12,490 --> 00:46:15,510 da če imate Apple Obiskujte ali iPhone ali iPad ali iPod, 1067 00:46:15,510 --> 00:46:17,707 lahko pišete kodo, ki dejansko deluje na tiste. 1068 00:46:17,707 --> 00:46:19,540 Imamo cel kup iz Arduinos, ki so 1069 00:46:19,540 --> 00:46:22,010 mali računalniki brez primere v bistvu 1070 00:46:22,010 --> 00:46:25,240 da se lahko povežete preko USB, običajno na svoj Mac ali PC, 1071 00:46:25,240 --> 00:46:28,810 napisati kodo, ki teče na teh fizični Naprave, ki imajo pogosto senzorjev na njih 1072 00:46:28,810 --> 00:46:30,790 tako da lahko interakcijo z resničnim svetom. 1073 00:46:30,790 --> 00:46:32,860 Imamo cel kup od Leap Motion naprav, 1074 00:46:32,860 --> 00:46:36,500 ki so USB naprave za Mac in Računalniki, tu in spet v New Haven. 1075 00:46:36,500 --> 00:46:40,080 In če ga priključite na vaš Mac, lahko dejansko nadzor računalnika 1076 00:46:40,080 --> 00:46:42,550 s pisanjem programske opreme da s pomočjo infrardečih žarkov, 1077 00:46:42,550 --> 00:46:46,360 številke, kje so vaše človeške roke, celo brez dotikanja tipkovnice. 1078 00:46:46,360 --> 00:46:49,135 Mislili smo, da bi delili hitro pogled na to, na primer. 1079 00:46:49,135 --> 00:46:51,428 >> [Predvaja glasba] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Torej, imamo celoto kup teh stvari, 1082 00:47:57,590 --> 00:48:01,040 Tudi imenuje Myo roko pasove ki si dal čez podlaket 1083 00:48:01,040 --> 00:48:04,595 in potem si lahko nadzorujete pravi svet ali virtualni svet, kot je ta. 1084 00:48:04,595 --> 00:48:06,471 >> [Predvaja glasba] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Ali pa imamo tudi nekaj Google Lepenka, ki je dobesedno, kot so, 1087 00:49:20,920 --> 00:49:24,841 kartonska škatla, da bi lahko dal na svoj obraz, ampak slide v telefonu vanjo 1088 00:49:24,841 --> 00:49:27,590 tako da si dal kozarec vaš telefon zelo blizu tvojih očeh. 1089 00:49:27,590 --> 00:49:30,190 In Google lepenka je precej poceni na 10 $ ali 20 $. 1090 00:49:30,190 --> 00:49:32,230 In to je malo leče da je nekoliko off premik 1091 00:49:32,230 --> 00:49:35,900 slika na zaslonu vašega človeka Oči, da vam občutek globine 1092 00:49:35,900 --> 00:49:39,550 tako da ste dejansko imajo 3D okolje, ki je pred vami. 1093 00:49:39,550 --> 00:49:42,927 Imamo tudi nekaj Samsung Gear, ki je dražja različica te, 1094 00:49:42,927 --> 00:49:46,010 da pa se lahko podobno potisnite v Android telefon in vam iluzijo 1095 00:49:46,010 --> 00:49:48,309 of-- ali pa izkušnje navidezne resničnosti. 1096 00:49:48,309 --> 00:49:50,850 In v naših zadnjih dveh minutah, smo menili, da bi poskušali to storiti. 1097 00:49:50,850 --> 00:49:55,250 Če sem lahko projekt, kar je Colton tukaj samo za Brušenje vaš apetit, 1098 00:49:55,250 --> 00:49:58,442 Naj gredo naprej in vrgel up na velikem zaslonu tukaj. 1099 00:49:58,442 --> 00:49:59,400 Naj ubiti luči. 1100 00:49:59,400 --> 00:50:02,290 Colton, hočeš iti naprej in dal na vašo celico za trenutek 1101 00:50:02,290 --> 00:50:05,171 in pridi do sredina fazi? 1102 00:50:05,171 --> 00:50:07,420 In hočeš, da project-- To je tisto, kar Colton vidi. 1103 00:50:07,420 --> 00:50:10,560 >> Zdaj, Wi-Fi na tu ni tako močan, za to napravo 1104 00:50:10,560 --> 00:50:13,870 da je to super prepričljiv, vendar Colton je dobesedno 1105 00:50:13,870 --> 00:50:15,710 v tem čarobnem futurističnem mestu. 1106 00:50:15,710 --> 00:50:16,796 On vidi le eno sliko. 1107 00:50:16,796 --> 00:50:19,920 Vidite svojo levo in desno oko da njegovi možgani so šivi skupaj 1108 00:50:19,920 --> 00:50:22,260 v tridimenzionalnim okolje, na njegovem obrazu. 1109 00:50:22,260 --> 00:50:24,319 Pravkar je izbrana možnost menija tukaj. 1110 00:50:24,319 --> 00:50:27,360 In zato še enkrat, on je nosil te slušalke z Samsung telefon na to, da je 1111 00:50:27,360 --> 00:50:29,080 brezžično projiciranje na našo režijske stroške. 1112 00:50:29,080 --> 00:50:30,349 Zdaj ste na Marsu, mislim? 1113 00:50:30,349 --> 00:50:31,140 COLTON: Mislim, da. 1114 00:50:31,140 --> 00:50:32,181 Nisem prepričan, da [neslišno]. 1115 00:50:32,181 --> 00:50:34,250 [Smeh] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID Malan: Izkazalo se je, Mars ima te menije. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [neslišno] nekateri kul mesta, če želimo iti to-- 1118 00:50:41,590 --> 00:50:43,330 >> DAVID Malan: Kam hočemo iti? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [neslišno] 1120 00:50:45,837 --> 00:50:48,170 DAVID Malan: In poglejmo kjer Colton nas je ob zdaj. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [neslišno] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID Malan: Torej, tam je toliko različnih krajev, ki jih lahko sami. 1124 00:50:56,380 --> 00:51:00,590 Tam je FAPIs prek katerega lahko pisanje iger ali interakcije, ki 1125 00:51:00,590 --> 00:51:01,950 teči, navsezadnje, na telefonu. 1126 00:51:01,950 --> 00:51:03,908 Torej, res samo pisanje mobilni telefon app. 1127 00:51:03,908 --> 00:51:06,380 Ampak hvala za programsko opremo in grafične zmogljivosti, 1128 00:51:06,380 --> 00:51:08,765 Sedaj Colton je v tem mali koči. 1129 00:51:08,765 --> 00:51:10,515 In ob tveganju prepričljivo sebe, 1130 00:51:10,515 --> 00:51:13,330 Colton in bom ostal za medtem ko na koncu razreda danes 1131 00:51:13,330 --> 00:51:14,300 če bi rad prišel gor in igral. 1132 00:51:14,300 --> 00:51:16,350 In jih bomo prinese nazaj naslednji teden, kot tudi. 1133 00:51:16,350 --> 00:51:18,420 Brez nadaljnje, ado to je vse za danes. 1134 00:51:18,420 --> 00:51:21,990 Se vidimo naslednji teden. 1135 00:51:21,990 --> 00:51:24,140 >> [MUSIC - ragga TWINS, "BAD MAN"] 1136 00:51:24,140 --> 00:55:23,146