1 00:00:00,000 --> 00:00:02,405 >> [Muzika] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVID Malan: Të gjithë të drejtë, kjo është CS50. 4 00:00:11,980 --> 00:00:13,740 Ky është fundi i javës së tetë. 5 00:00:13,740 --> 00:00:15,887 Dhe sot, ne fillim për të mbushur në disa pjesë 6 00:00:15,887 --> 00:00:17,720 kur është fjala për ndërtimin e gjëra në web. 7 00:00:17,720 --> 00:00:20,020 Pra, kujtojmë se të hënën ne kemi shpenzuar një kohë shumë më tepër 8 00:00:20,020 --> 00:00:22,530 në PHP, cila është kjo dinamikë gjuhë programimi që 9 00:00:22,530 --> 00:00:26,872 na lejon të prodhimit, ndër të tjera gjëra, HTML dhe përmbajtje të tjera të tilla 10 00:00:26,872 --> 00:00:27,830 që ne do të duan të shohin. 11 00:00:27,830 --> 00:00:30,871 Por ne nuk kemi dukej me të vërtetë se si ne jemi duke shkuar për të ruajtur çdo informacion. 12 00:00:30,871 --> 00:00:34,477 Në të vërtetë, pothuajse asnjë nga se super faqet e internetit interesante që ju vizitoni sot 13 00:00:34,477 --> 00:00:36,560 kanë disa lloj të dhënave në anën e pasme, e drejtë? 14 00:00:36,560 --> 00:00:39,540 Facebook me siguri ruan shumë të dhëna për të gjithë ne dhe dyqane Gmail gjithë 15 00:00:39,540 --> 00:00:40,210 e-mail tuaj. 16 00:00:40,210 --> 00:00:44,150 >> Dhe kështu, shumë vende të tjera nuk janë vetëm Static Content kjo është informative. 17 00:00:44,150 --> 00:00:45,640 Është në fakt dinamik në një farë mënyre. 18 00:00:45,640 --> 00:00:48,480 Ju japin të dhëna, ajo përditësime Faqet e njerëzve të tjerë. 19 00:00:48,480 --> 00:00:50,620 Ju merrni mesazhe, ju dërgoni mesazhe, dhe kështu me radhë. 20 00:00:50,620 --> 00:00:54,250 Pra sot, ne shikojmë më nga afër mbështetjet e një projekti 21 00:00:54,250 --> 00:00:57,330 që ju do të zhyten në tjetër javë, CS50 Financave, e cila 22 00:00:57,330 --> 00:01:00,509 është në të vërtetë do të keni ndërtuar diçka jo në C, por në PHP. 23 00:01:00,509 --> 00:01:02,550 Një faqe interneti që duket një pak diçka si kjo 24 00:01:02,550 --> 00:01:05,810 që lejon për të blerë dhe shitur rezervat që janë në fakt 25 00:01:05,810 --> 00:01:09,044 do të nxjerrë në kohë reale të dhënat e aksioneve nga Yahoo Finance. 26 00:01:09,044 --> 00:01:11,960 Dhe kështu në fund të fundit, ju do të keni iluzion për veten tuaj dhe për përdoruesit 27 00:01:11,960 --> 00:01:14,550 se ju jeni në të vërtetë blerjen dhe shitjen e rezervat dhe duke marrë kohë gati reale 28 00:01:14,550 --> 00:01:16,800 përditësime, menaxhimin e një portofol, të cilat 29 00:01:16,800 --> 00:01:20,310 do të kërkojë të pasur, në fund të fundit, një bazë të dhënash të përdoruesve. 30 00:01:20,310 --> 00:01:23,330 >> Pra, me fjalët tuaja, veçanërisht në qoftë se ju nuk jeni 31 00:01:23,330 --> 00:01:25,670 super njohur me kompjuter shkencë ose bazat e të dhënave, çfarë 32 00:01:25,670 --> 00:01:30,790 ju e dini një bazë të dhënash të tani, në terma jo-teknike? 33 00:01:30,790 --> 00:01:32,300 Çfarë është ajo? 34 00:01:32,300 --> 00:01:36,882 Si do ta përshkruanit atë me një shok dhome apo një mik? 35 00:01:36,882 --> 00:01:40,100 >> Audienca: [padëgjueshme] informacion [e padëgjueshme] 36 00:01:40,100 --> 00:01:44,430 >> DAVID Malan: Pra, një listë e informacionit, ose një store-- një listë të informacionit 37 00:01:44,430 --> 00:01:47,160 që ju mund të dëshironi për të ruajtur për diçka, si një përdorues. 38 00:01:47,160 --> 00:01:50,190 Dhe çfarë bëjnë përdoruesit kanë lidhur me ta? 39 00:01:50,190 --> 00:01:53,160 Nëse ju jeni një përdorues në Facebook ose Gmail, cilat janë karakteristikat 40 00:01:53,160 --> 00:01:54,940 se të gjithë ne përdoruesve kanë? 41 00:01:54,940 --> 00:01:58,530 Si, çfarë mund të jetë disa nga kolona në spreadsheet për të cilat ne 42 00:01:58,530 --> 00:01:59,390 aludoi herën e fundit? 43 00:01:59,390 --> 00:02:01,140 Sepse përsëri, ju mund të të mendojnë për një bazë të dhënash 44 00:02:01,140 --> 00:02:05,810 me të vërtetë si një dashuroj Excel file apo Google Spreadsheet ose Apple Numrat skedar. 45 00:02:05,810 --> 00:02:08,280 >> Pra, çfarë mendoni kur ju mendoni për një përdorues? 46 00:02:08,280 --> 00:02:11,290 Çfarë ata kanë? 47 00:02:11,290 --> 00:02:11,790 Cfare eshte kjo? 48 00:02:11,790 --> 00:02:12,470 >> Audienca: Një emër. 49 00:02:12,470 --> 00:02:13,303 >> DAVID Malan: Një emër. 50 00:02:13,303 --> 00:02:16,840 Pra, nëse emri, si, DAVID Malan do të jetë emri i një përdoruesi. 51 00:02:16,840 --> 00:02:17,980 Çfarë tjetër bën një përdorues të ketë? 52 00:02:17,980 --> 00:02:18,770 >> Audienca: Një ID. 53 00:02:18,770 --> 00:02:19,561 >> DAVID Malan: Një ID. 54 00:02:19,561 --> 00:02:23,320 Pra, si një numër identifikimi, si Harvard tuaj ID ose Yale ID tuaj neto ose të ngjashme. 55 00:02:23,320 --> 00:02:24,923 Çfarë tjetër mund të ketë një përdorues? 56 00:02:24,923 --> 00:02:25,890 >> Audienca: Fjalëkalimi. 57 00:02:25,890 --> 00:02:29,240 >> DAVID Malan: Një fjalëkalim, ndoshta një adresa, ndoshta një numër telefoni, ndoshta 58 00:02:29,240 --> 00:02:30,050 një adresë e-mail. 59 00:02:30,050 --> 00:02:32,640 Pra, nuk ka bunches e fusha dhe kjo mund të lloj të dalë jashtë kontrollit 60 00:02:32,640 --> 00:02:34,760 shpejt sa më shpejt që ju të filloni kuptuar, oh, le të ruajë këtë 61 00:02:34,760 --> 00:02:36,190 dhe le të ruajë këtë dhe atë. 62 00:02:36,190 --> 00:02:37,657 >> Por si do të vërtetë të bëjë atë? 63 00:02:37,657 --> 00:02:39,740 Pra, përsëri, modeli mendor të ketë për sot si ne 64 00:02:39,740 --> 00:02:42,320 zhyten në SQL aktuale, Structured Query Language, 65 00:02:42,320 --> 00:02:44,186 është një bazë të dhënash që duket si kjo. 66 00:02:44,186 --> 00:02:45,310 Është vetëm rreshtave dhe kolonave. 67 00:02:45,310 --> 00:02:48,309 Dhe ju mund të imagjinoni Google Spreadsheets ose ndonjë numër të programeve të tjera. 68 00:02:48,309 --> 00:02:52,130 Por ajo që është çelësi për të MySQL, e cila është software database ne jemi duke shkuar për të përdorur, 69 00:02:52,130 --> 00:02:54,920 lirisht hapur available-- përdor Facebook 70 00:02:54,920 --> 00:02:59,200 ajo dhe çdo numër të websites-- tjera bazës së të dhënave ruan gjërat relationally. 71 00:02:59,200 --> 00:03:01,770 Dhe bazës së të dhënave relacionale një thjesht do të thotë atë që fjalë për fjalë 72 00:03:01,770 --> 00:03:03,672 ruan të dhënat e saj në rreshta dhe kolona. 73 00:03:03,672 --> 00:03:04,630 Është aq e thjeshtë sa se. 74 00:03:04,630 --> 00:03:07,230 >> Pra, edhe diçka si Oracle që ju mund të keni dëgjuar përgjithësisht i 75 00:03:07,230 --> 00:03:08,271 është një bazë të dhënash relacionale. 76 00:03:08,271 --> 00:03:10,929 Dhe nën kapuç, atë dyqane të dhënave në rreshta dhe kolona. 77 00:03:10,929 --> 00:03:12,970 Dhe Oracle ju një akuza shumë e parave për të bërë këtë, 78 00:03:12,970 --> 00:03:15,550 ndërsa akuza MySQL ju asgjë për të njëjtën gjë. 79 00:03:15,550 --> 00:03:18,790 Pra, SQL do të na japë të paktën katër operacionet. 80 00:03:18,790 --> 00:03:23,190 Aftësia për të zgjedhur e të dhënave, si lexoni të dhënave, insert, fshini, dhe të dhënat përditësimin. 81 00:03:23,190 --> 00:03:25,525 Me fjalë të tjera, ato janë të vërtetë të katër operacionet kryesore 82 00:03:25,525 --> 00:03:28,950 që do të na lejojë të ndryshojë gjëra në ato rreshta dhe kolona. 83 00:03:28,950 --> 00:03:33,250 >> Mjet që ne do të përdorim sot veçanërisht për të mësuar SQL dhe për të luajtur me të 84 00:03:33,250 --> 00:03:34,627 është quajtur përsëri PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 Është mjet i bazuar web. 86 00:03:35,460 --> 00:03:38,200 Rastësi totale që është e shkruar në PHP. 87 00:03:38,200 --> 00:03:42,400 Por kjo do të na japë një grafik user interface në mënyrë që ne mund të vërtetë 88 00:03:42,400 --> 00:03:46,054 krijuar këto rreshtave dhe kolonave dhe pastaj flisni me ta nëpërmjet kodit. 89 00:03:46,054 --> 00:03:47,970 Pra, tani le të fillojnë të ajo që unë mendoj se është sinqerisht 90 00:03:47,970 --> 00:03:51,000 lloj i procesit të fun ndërtimin fundin e pasme të faqeve, 91 00:03:51,000 --> 00:03:54,580 pjesët që përdoruesit nuk shohin, por me siguri të bëjë kujdes në lidhje me, 92 00:03:54,580 --> 00:03:56,170 sepse kjo është më tepër të dhëna po ndodh. 93 00:03:56,170 --> 00:03:59,570 Pra, të ngjashme me C dhe A pak si PHP, 94 00:03:59,570 --> 00:04:04,954 SQL, apo një bazë të dhënash që mbështet SQL, ka lloje të paktën këto të dhëna 95 00:04:04,954 --> 00:04:05,870 dhe bunches e të tjerëve. 96 00:04:05,870 --> 00:04:08,107 CHAR, VARCHAR, INT, BIGINT, Decimal, dhe datetime. 97 00:04:08,107 --> 00:04:09,940 Dhe ka një të tërë bandë e karakteristika të tjera, 98 00:04:09,940 --> 00:04:11,940 por le ta bëjmë këtë duke për shembull aktual. 99 00:04:11,940 --> 00:04:16,450 >> Unë jam duke shkuar për të shkuar në CS50 IDE ku, paraprakisht, unë kam hyrë në 100 00:04:16,450 --> 00:04:19,372 dhe unë e kam vizituar edhe një URL për Ky mjet i quajtur PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 Dhe në problem i vuri mënjanë shtatë, ne do të tregoj ju saktësisht se si për të marrë në këtë ndërfaqe 102 00:04:22,580 --> 00:04:23,200 gjithashtu. 103 00:04:23,200 --> 00:04:25,640 Në këndin e sipërm të majtë, vini re ajo thotë leksion. 104 00:04:25,640 --> 00:04:27,610 Dhe kjo vetëm do të thotë se paraprakisht, kam krijuar 105 00:04:27,610 --> 00:04:31,360 një bazë të dhënash të quajtur leksion bosh që ka spreadsheets në atë ende. 106 00:04:31,360 --> 00:04:32,600 Nuk ka rreshta dhe kolona. 107 00:04:32,600 --> 00:04:34,308 Sepse i pari gjë që ne jemi duke shkuar për të bërë 108 00:04:34,308 --> 00:04:37,100 është të fillojë për të krijuar një tabelë që do të ruajtur përdoruesit tanë. 109 00:04:37,100 --> 00:04:39,100 >> Pra, fjalë për fjalë mbi këtu në të djathtë, unë jam 110 00:04:39,100 --> 00:04:42,070 do të tregojë bazën e të dhënave Unë dua një tabelë të quajtur Përdoruesit. 111 00:04:42,070 --> 00:04:44,845 Pra, kjo është si dosje që unë dëshironi të ruani të gjitha të dhënat e mia në. 112 00:04:44,845 --> 00:04:45,720 Dhe sa kolona? 113 00:04:45,720 --> 00:04:47,740 E pra, le të mbajtur atë të thjeshtë për tani. 114 00:04:47,740 --> 00:04:51,855 Unë vetëm dua të ruajtur si një emrin e përdoruesit dhe një emër për një përdorues. 115 00:04:51,855 --> 00:04:53,020 Ne do të fillojë të vogla. 116 00:04:53,020 --> 00:04:55,370 Pra, unë dua dy kolona gjithsej. 117 00:04:55,370 --> 00:04:57,360 Dhe unë jam duke shkuar për të shkuar përpara dhe klikoni Go. 118 00:04:57,360 --> 00:04:59,210 Dhe pastaj, për këto kolona, ​​çfarë unë jam duke shkuar 119 00:04:59,210 --> 00:05:04,576 për do-- nëse këtë internetit cooperates-- gjithë të drejtë, 120 00:05:04,576 --> 00:05:05,950 kështu që ne jemi duke shkuar për të provoni atë përsëri. 121 00:05:05,950 --> 00:05:09,180 Unë jam duke shkuar për të krijuar një tabelë të quajtur Përdoruesit me dy kolona, ​​kliko të shkojnë, OK. 122 00:05:09,180 --> 00:05:10,520 Tani ne kemi marrë atë të vërtetë të shpejtë. 123 00:05:10,520 --> 00:05:12,065 Faleminderit, shumë mirë bërë. 124 00:05:12,065 --> 00:05:14,440 Të gjithë të drejtë, kështu që ajo që duam këto kolona që do të quhet? 125 00:05:14,440 --> 00:05:16,080 >> Pra, një do të quhet Identifikimi. 126 00:05:16,080 --> 00:05:19,480 Pra, të gjitha unë shoh here-- dhe interface sinqerisht merr pak shëmtuar përfundimisht, 127 00:05:19,480 --> 00:05:21,270 Pasi ju filloni të shtypni në të gjitha këto të dhëna. 128 00:05:21,270 --> 00:05:27,450 Por ajo që është e bukur është se lloj i Paradoksalisht, unë jam duke krijuar kolona, 129 00:05:27,450 --> 00:05:29,977 por mjet ka pa mend e vendosën në radhë 130 00:05:29,977 --> 00:05:31,560 kështu që unë mund të konfigurosh këto kolona. 131 00:05:31,560 --> 00:05:33,550 Pra, ka dy boshllëqet aty nën emrin. 132 00:05:33,550 --> 00:05:36,180 Dhe një nga këto fusha unë duan të quajtur Emri, 133 00:05:36,180 --> 00:05:38,000 dhe fusha të tjera që unë dua të vesh emrin. 134 00:05:38,000 --> 00:05:40,340 >> Dhe tani unë kam për të zgjedhur Llojet e të dhënave për këto gjëra. 135 00:05:40,340 --> 00:05:42,330 Pra, ndërsa në Excel dhe Google Spreadsheets, 136 00:05:42,330 --> 00:05:45,531 në qoftë se ju doni një kolonë, ju fjalë për fjalë vetëm lloji Emri përdorues ose, hit Enter. 137 00:05:45,531 --> 00:05:48,030 Ndoshta ju bëni atë fytyrë të guximshme vetëm për qartësi, por kjo është ajo. 138 00:05:48,030 --> 00:05:50,140 Ju nuk specifikojë Llojet e shtyllave. 139 00:05:50,140 --> 00:05:53,790 Tani në Google Spreadsheets apo Excel, ju mund të specifikojnë se si të dhënave është dhënë. 140 00:05:53,790 --> 00:05:58,120 Ju mund të shkoni në menynë Format, dhe ju mund të specifikoni tregojnë këtë shenjë si dollarësh, 141 00:05:58,120 --> 00:05:59,900 tregojnë këtë si një vlerë lundrues pikë. 142 00:05:59,900 --> 00:06:01,990 >> Pra, kjo është e ngjashme në frymë të se ajo që ne jemi gati për të bërë, 143 00:06:01,990 --> 00:06:04,740 por kjo është në të vërtetë do të detyrojë të dhënat të jetë një lloj të caktuar. 144 00:06:04,740 --> 00:06:07,750 Tani, edhe pse një moment më parë unë tha se ka vetëm disa lloje të të dhënave, 145 00:06:07,750 --> 00:06:11,120 ka në fakt një shumë e tërë, dhe ata janë 146 00:06:11,120 --> 00:06:12,910 në shkallë të specifikat ndryshme. 147 00:06:12,910 --> 00:06:14,970 Dhe si një mënjanë, ju mund të bëjë edhe gjëra të dashuroj 148 00:06:14,970 --> 00:06:17,520 si geometries magazinimit brenda një bazë të dhënash. 149 00:06:17,520 --> 00:06:19,250 Ju mund të ruajë gjëra si Koordinatat GPS 150 00:06:19,250 --> 00:06:22,420 dhe në fakt të gjeni, matematikisht, pika që janë të afërt me të tjerët. 151 00:06:22,420 --> 00:06:24,128 Por ne jemi duke shkuar për mbajmë këtë super të thjeshtë 152 00:06:24,128 --> 00:06:26,800 dhe të shkojnë deri këtu, të gjithë të ashtuquajturat tipet string. 153 00:06:26,800 --> 00:06:29,240 >> Pra, këtu është një listë e një tërë bandë e opsioneve. 154 00:06:29,240 --> 00:06:32,740 CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 Dhe kjo është lloj i madhe. 156 00:06:34,110 --> 00:06:37,610 Dhe për fat të keq, disi në mënyrë paradoksale në C, 157 00:06:37,610 --> 00:06:40,120 një CHAR nuk është me të vërtetë një CHAR. 158 00:06:40,120 --> 00:06:44,170 Nëse ju specifikoni në një bazë të dhënash se lloj të dhënat tuaja është CHAR, 159 00:06:44,170 --> 00:06:47,390 kjo do të thotë se po, kjo është një CHAR, por kjo është një ose më shumë karaktere. 160 00:06:47,390 --> 00:06:49,630 Dhe ju duhet të specifikoni Sa gërma ju dëshironi. 161 00:06:49,630 --> 00:06:51,636 Pra, çfarë është një tipik Gjatësia për një username? 162 00:06:51,636 --> 00:06:52,760 A ka një limit tipike? 163 00:06:52,760 --> 00:06:53,920 >> Audienca: [padëgjueshme] 164 00:06:53,920 --> 00:06:55,050 >> DAVID Malan: 16 ndoshta? 165 00:06:55,050 --> 00:06:55,990 Diçka e tillë. 166 00:06:55,990 --> 00:06:57,948 Ju e dini, përsëri në ditë, ajo përdoret për të tetë. 167 00:06:57,948 --> 00:07:00,289 Ndonjëherë kjo është 16, nganjëherë kjo është edhe më shumë se kaq. 168 00:07:00,289 --> 00:07:02,080 Dhe kështu, kjo nuk ka do të thotë më jepni një CHAR. 169 00:07:02,080 --> 00:07:04,730 Kjo do të thotë unë duhet të specifikojë gjatësia e fushës, 170 00:07:04,730 --> 00:07:07,402 dhe tani unë mund të them diçka si 16. 171 00:07:07,402 --> 00:07:08,610 Dhe ka një tregti off këtu. 172 00:07:08,610 --> 00:07:11,360 Pra, ne do të shohim në një moment se kjo do të thotë një, 173 00:07:11,360 --> 00:07:14,620 çdo emrin duhet të jetë 16 karaktere. 174 00:07:14,620 --> 00:07:18,720 Por prisni një minutë, M-A-L-A-N. Nëse kjo është emrin tim dhe unë jam vetëm duke përdorur pesë, 175 00:07:18,720 --> 00:07:23,070 çfarë do të propozojë që baza e të dhënave për të bërë për 11 karaktere të tjera që 176 00:07:23,070 --> 00:07:24,471 Unë e kam rezervuar hapësirë ​​për? 177 00:07:24,471 --> 00:07:25,220 Çfarë do të bëni? 178 00:07:25,220 --> 00:07:26,480 >> Audienca: [padëgjueshme] 179 00:07:26,480 --> 00:07:27,160 >> DAVID Malan: Yeah, vetëm t'i bëjë ata të gjithë null. 180 00:07:27,160 --> 00:07:28,290 Bëni ato hapësira. 181 00:07:28,290 --> 00:07:30,816 Por ndoshta null, kështu që një Shumë zero backslash. 182 00:07:30,816 --> 00:07:33,190 Pra, nga njëra anë, ne kemi tani e bëri të sigurt se emri im 183 00:07:33,190 --> 00:07:34,780 mund të jetë jo më shumë se 16 karaktere. 184 00:07:34,780 --> 00:07:37,590 Dhe në anën rrokullisje e kjo është se në qoftë se kam pasur një emër të vërtetë të gjatë 185 00:07:37,590 --> 00:07:39,940 ose kërkuar një të vërtetë të gjatë emri përdorues si disa prej jush 186 00:07:39,940 --> 00:07:44,840 djema mund të ketë në atë kolegj apo në Yale.edu, ju nuk mund të ketë një të tillë. 187 00:07:44,840 --> 00:07:47,177 Dhe kështu në fakt, në qoftë se ju keni i regjistruar ndonjëherë për një faqe interneti 188 00:07:47,177 --> 00:07:49,385 dhe ju merrni yelled at thënë Fjalëkalimi juaj është shumë e gjatë 189 00:07:49,385 --> 00:07:52,710 ose emrin e përdoruesit është shumë i gjatë, është e thjesht sepse një programues, kur 190 00:07:52,710 --> 00:07:55,500 konfigurimin e bazës së të dhënave të tij ose të saj, vendosi që kjo fushë do të 191 00:07:55,500 --> 00:07:57,150 të jetë jo më shumë se këtij gjatësi. 192 00:07:57,150 --> 00:08:00,580 >> Të gjithë të drejtë, kështu që çfarë nëse ne të vazhdojë për të përmendur? 193 00:08:00,580 --> 00:08:05,240 Sa kohë duhet një Emri tipike e njeriut të jetë? 194 00:08:05,240 --> 00:08:07,492 Sa karaktere, 16? 195 00:08:07,492 --> 00:08:09,450 Unë jam guessing ne mund gjeni dikë në këtë dhomë 196 00:08:09,450 --> 00:08:13,210 ku nga PLUS tij ose të saj të parë fundit Emri është më shumë se 16 karaktere. 197 00:08:13,210 --> 00:08:14,850 Pra, çfarë është më e mirë se ajo, 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 Bigger? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> Audienca: [padëgjueshme] 203 00:08:21,855 --> 00:08:23,700 DAVID Malan: 5.000, oh Perëndia im. 204 00:08:23,700 --> 00:08:26,309 Pra, kjo është ndoshta një të mirë sipërme të lidhur, të themi. 205 00:08:26,309 --> 00:08:28,350 Dhe këtu ne lloj i kemi për të bërë një telefonatë gjykim. 206 00:08:28,350 --> 00:08:30,400 Si, nuk ka përgjigje të drejtë këtu. 207 00:08:30,400 --> 00:08:32,740 Infinite nuk është mjaft e mundshme, sepse ne jemi përfundimisht 208 00:08:32,740 --> 00:08:34,781 do të have-- ne jemi duke shkuar për të dalë jashtë kujtesës. 209 00:08:34,781 --> 00:08:36,909 Pra, ne duhet të bëjmë një Gjykimi thirrje në disa pika. 210 00:08:36,909 --> 00:08:41,010 >> Shumë të zakonshme do të jetë, për shembull, për use-- dhe më lejoni të specifikojë CHAR këtu 211 00:08:41,010 --> 00:08:46,050 si më herët, 255 ishte fjalë për fjalë kufiri i sipërm në këtë softuer bazës së të dhënave 212 00:08:46,050 --> 00:08:46,700 vite më parë. 213 00:08:46,700 --> 00:08:48,575 Dhe kështu, një shumë e njerëzve do të them vetëm, gjobë. 214 00:08:48,575 --> 00:08:49,420 255 është kufiri. 215 00:08:49,420 --> 00:08:50,620 Le të përdorim vetëm maksimumin. 216 00:08:50,620 --> 00:08:51,870 Dhe kjo është shumë qesharake. 217 00:08:51,870 --> 00:08:55,060 Si, në qoftë se ju jeni të shtypni dikujt përmendur për 200 karaktere plus, 218 00:08:55,060 --> 00:08:56,140 se pak qesharake. 219 00:08:56,140 --> 00:08:59,624 >> Por, mos harroni se ASCII nuk është sistemi i vetëm për karaktere. 220 00:08:59,624 --> 00:09:01,540 Dhe kështu, sidomos në një shumë gjuhëve aziatike 221 00:09:01,540 --> 00:09:04,248 ku ka karaktere që ne nuk mund të shprehur në tastierë si SHBA e mia 222 00:09:04,248 --> 00:09:08,209 tastierë, disa karaktere në të vërtetë marrë 16 copa në vend të tetë bit. 223 00:09:08,209 --> 00:09:10,250 Dhe kështu, kjo në fakt nuk është e gjitha që paarsyeshme 224 00:09:10,250 --> 00:09:12,250 se ne kemi nevojë më shumë Hapësira në qoftë se ne duam të përshtaten 225 00:09:12,250 --> 00:09:16,252 Karakteret më të madhe se shumë SHBA ato centric ne kemi qenë të prirur për të diskutuar. 226 00:09:16,252 --> 00:09:17,460 Pra, ne kemi nevojë për disa kufi i sipërm. 227 00:09:17,460 --> 00:09:21,470 Unë nuk e di se çfarë ai është i mirë, por 255 është në përgjithësi një njeri i zakonshëm. 228 00:09:21,470 --> 00:09:22,700 25 ndihet i ulët. 229 00:09:22,700 --> 00:09:23,857 16, 32 të ndjehen të ulët. 230 00:09:23,857 --> 00:09:25,690 Unë do të gaboj në anën për diçka më të lartë. 231 00:09:25,690 --> 00:09:27,330 Por ka një tregti off, si gjithmonë. 232 00:09:27,330 --> 00:09:31,902 Çfarë është, ndoshta, i dukshëm tregtisë off i rezervohet 255 karaktere 233 00:09:31,902 --> 00:09:33,360 për emrin e të gjithëve në bazën e të dhënave e mia? 234 00:09:33,360 --> 00:09:34,230 >> Audienca: [padëgjueshme] 235 00:09:34,230 --> 00:09:34,510 >> DAVID Malan: Çfarë është ajo? 236 00:09:34,510 --> 00:09:35,430 >> Audienca: [padëgjueshme] 237 00:09:35,430 --> 00:09:37,138 >> DAVID Malan: Kjo është një shumë e kujtesës, e drejtë? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N. Kam shpenzuar vetëm 250 karaktere vetëm për të ruajtur emrin tim 239 00:09:42,280 --> 00:09:46,000 në mbrojtje, vetëm në rast se dikush në klasë ka një emër shumë të gjatë. 240 00:09:46,000 --> 00:09:47,940 Kjo duket si një tradeoff panevojshme. 241 00:09:47,940 --> 00:09:52,040 >> Pra, ajo rezulton se SQL, kjo gjuhë bazës së të dhënave, 242 00:09:52,040 --> 00:09:55,480 në fakt mbështet diçka quajtur VARCHAR, apo ndryshueshme CHAR. 243 00:09:55,480 --> 00:09:59,390 Dhe kjo është lloj i bukur në se kjo ju lejon të specifikoni jo një fikse 244 00:09:59,390 --> 00:10:01,900 gjerësi, por më tepër, një gjerësi variabël. 245 00:10:01,900 --> 00:10:05,060 Dhe më konkretisht, një Gjerësia maksimale e fushës. 246 00:10:05,060 --> 00:10:08,901 Pra, kjo do të thotë se një emër mund të të jetë jo më shumë se 250 karaktere, 247 00:10:08,901 --> 00:10:10,150 por ajo duhet të jetë më pak. 248 00:10:10,150 --> 00:10:11,733 Dhe baza e të dhënave do të jetë i zgjuar. 249 00:10:11,733 --> 00:10:14,860 Nëse ju do të vënë në M-A-L-A-N, ajo është vetëm do të përdorin pesë, 250 00:10:14,860 --> 00:10:18,120 ndoshta gjashtë bytes për si një karakter zvarritës null, 251 00:10:18,120 --> 00:10:23,330 dhe jo të shpenzojnë një shtesë 249 ose 250 bytes panevojshme. 252 00:10:23,330 --> 00:10:27,380 >> Pra, kjo duket si unë duhet kanë filluar me këtë histori. 253 00:10:27,380 --> 00:10:29,140 Por ka gjithmonë një kompromis. 254 00:10:29,140 --> 00:10:33,024 Pra, nga njëra anë, një emër përdoruesi unë kam specifikuar për t'u koduar fort në 16, 255 00:10:33,024 --> 00:10:34,940 dhe ndoshta kjo nuk ishte thirrja e drejtë, ndoshta atë 256 00:10:34,940 --> 00:10:40,040 është, por pse nuk e përdorin VARCHARs për çdo gjë? 257 00:10:40,040 --> 00:10:42,020 >> Ajo ekziston për një arsye. 258 00:10:42,020 --> 00:10:46,200 Pse të mos i përdorin VARCHARs për çdo fushë gjatësia e të cilit ju nuk e dini që më parë 259 00:10:46,200 --> 00:10:48,180 në qoftë se ajo duket të jetë një gjë e madhe, apo jo? 260 00:10:48,180 --> 00:10:50,482 Përdorni vetëm sa më shumë hapësirë ​​si ju duhet deri në këtë kufi? 261 00:10:50,482 --> 00:10:51,271 >> Audienca: ngadaltë. 262 00:10:51,271 --> 00:10:52,146 DAVID Malan: Speller? 263 00:10:52,146 --> 00:10:53,120 Audienca: e bën të ngadaltë? 264 00:10:53,120 --> 00:10:53,970 DAVID Malan: Oh, është e ngadalshme. 265 00:10:53,970 --> 00:10:55,720 Mirë, kjo është pothuajse gjithmonë përgjigja, sinqerisht. 266 00:10:55,720 --> 00:10:56,520 Si, çfarë është kompromis? 267 00:10:56,520 --> 00:10:58,570 Ajo ose kushton më shumë hapësirë ose ajo kushton më shumë kohë. 268 00:10:58,570 --> 00:11:00,111 Pra, në këtë rast, mund të jetë i ngadalshëm. 269 00:11:00,111 --> 00:11:00,920 Përse? 270 00:11:00,920 --> 00:11:05,830 >> Audienca: [padëgjueshme] përcaktimin [e padëgjueshme]. 271 00:11:05,830 --> 00:11:06,640 >> DAVID Malan: Mirë. 272 00:11:06,640 --> 00:11:09,670 Pra, ju mund të kujtojnë nga edhe PSED5, duke luajtur me qasjen tuaj 273 00:11:09,670 --> 00:11:12,750 në fjalor, në qoftë se ju keni për të kujtesës dinamike apo mbajtur 274 00:11:12,750 --> 00:11:14,630 rritet një tampon, që në fakt mund të jetë i ngadalshëm. 275 00:11:14,630 --> 00:11:16,963 Nëse keni për të thirrur malloc nën kapuç dhe ndoshta 276 00:11:16,963 --> 00:11:19,610 kjo është ajo që MySQL është duke bërë, kështu me siguri se mund të jetë rasti. 277 00:11:19,610 --> 00:11:22,430 Dhe në qoftë se ju mendoni se mënyra Mbrapsht në PSet-- apo edhe 278 00:11:22,430 --> 00:11:26,340 dy javë, kur ne e bëmë gjëra të tilla si Kërkimi binar apo edhe kërkimi lineare, 279 00:11:26,340 --> 00:11:30,690 një nga gjërat e bukur për çdo fjalë në një bazë të dhënash apo çdo fjalë në një kolonë 280 00:11:30,690 --> 00:11:33,690 duke qenë saktësisht të njëjtën gjatësi, madje në qoftë se një bandë e tërë e këtyre karaktereve 281 00:11:33,690 --> 00:11:37,390 janë bosh, është se ju mund të përdorni qasje të rastësishme në të dhënat tuaja, e drejtë? 282 00:11:37,390 --> 00:11:40,310 >> Nëse ju e dini se çdo Fjala është 16 karaktere larg, 283 00:11:40,310 --> 00:11:46,460 ju mund të përdorni akrep aritmetike, në mënyrë që të flasin, dhe të shkojnë në ne 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 dhe ju mund vetëm të kërcejnë në çast duke përdorur aritmetike 285 00:11:49,589 --> 00:11:51,130 me ndonjë nga fjalët në regjistrin tuaj. 286 00:11:51,130 --> 00:11:54,280 Ndërsa në qoftë se kjo është një VARCHAR, çfarë ju në vend të kësaj duhet të bëni? 287 00:11:54,280 --> 00:11:55,960 >> [Telefon telefononi] 288 00:11:55,960 --> 00:11:58,680 >> Në qoftë se kjo është një VARCHAR, ju nuk mund të përdorë qasje të rastit. 289 00:11:58,680 --> 00:12:01,341 Çfarë ju duhet të shikoni për ose të bëjë? 290 00:12:01,341 --> 00:12:01,840 Po? 291 00:12:01,840 --> 00:12:03,240 >> Audienca: [padëgjueshme] 292 00:12:03,240 --> 00:12:04,310 >> DAVID Malan: Shikoni përmes gjurmë whole-- 293 00:12:04,310 --> 00:12:06,518 nëpër tërë listën duke kërkuar për atë, ka shumë të ngjarë? 294 00:12:06,518 --> 00:12:08,356 Çfarë lloj me vlera të veçanta? 295 00:12:08,356 --> 00:12:09,230 Audienca: [padëgjueshme] 296 00:12:09,230 --> 00:12:11,105 DAVID Malan: Looking për terminators null 297 00:12:11,105 --> 00:12:13,637 që caktoj kufijtë ndarjen e fjalëve. 298 00:12:13,637 --> 00:12:15,720 Pra, përsëri, një kompromis, dhe nuk ka përgjigje të drejtë. 299 00:12:15,720 --> 00:12:18,380 Por, ky është vendi ku, veçanërisht kur përdoruesit tuaj të merrni të jetë shumë 300 00:12:18,380 --> 00:12:21,700 dhe ngarkesës tuaj në serverat tu, Numri i njerëzve që përdorin ajo merr të lartë, 301 00:12:21,700 --> 00:12:23,650 këto janë në fakt vendime nontrivial. 302 00:12:23,650 --> 00:12:26,640 Pra, ne mund të lënë këto si kjo, por le të lëvizni poshtë mbi të drejtën 303 00:12:26,640 --> 00:12:27,332 këtu. 304 00:12:27,332 --> 00:12:30,290 Tani, ka një çift i shtyllave ku ne kemi për të bërë një telefonatë gjykim. 305 00:12:30,290 --> 00:12:35,170 A ka kuptim për të lejuar një përdorues-së emrin, emrin e një përdorues ose një përdorues të 306 00:12:35,170 --> 00:12:36,370 emri, të jetë null? 307 00:12:36,370 --> 00:12:37,610 Kjo është, vetëm bosh. 308 00:12:37,610 --> 00:12:40,360 Ndihet pak absurd, kështu që unë jam mos shkuar për të kontrolluar ato kuti. 309 00:12:40,360 --> 00:12:42,670 Por kjo rezulton në një bazës së të dhënave, ju mund të thoni, 310 00:12:42,670 --> 00:12:44,620 dikush mund të opsionale të ketë këtë vlerë. 311 00:12:44,620 --> 00:12:47,180 Kjo kolonë nuk ka të vërtetë të jetë atje. 312 00:12:47,180 --> 00:12:48,570 >> Tani, nuk ka kjo drop down menu. 313 00:12:48,570 --> 00:12:50,810 Dhe vini re unë jam ende në rreshtin e parë atje, 314 00:12:50,810 --> 00:12:52,520 kështu që unë jam duke folur për emrin tani. 315 00:12:52,520 --> 00:12:56,290 Dhe kjo rezulton se një bazë të dhënash, ndryshe nga një spreadsheet të thjeshtë të thjeshtë, 316 00:12:56,290 --> 00:12:58,520 ka karakteristika të fuqishme quajtur indekseve. 317 00:12:58,520 --> 00:13:02,600 Dhe një indeks është një mënyrë për të thënë bazës së të dhënave përpara se unë, e njeriut 318 00:13:02,600 --> 00:13:03,900 jam zgjuar se ju. 319 00:13:03,900 --> 00:13:10,430 >> Unë e di se çfarë lloj pyetje, përzgjidhni ose futur apo fshij apo update, 320 00:13:10,430 --> 00:13:13,182 që kodi im do të marrë fund duke bërë në këtë bazë të dhënash. 321 00:13:13,182 --> 00:13:14,390 Unë dua të lexoj një shumë të të dhënave. 322 00:13:14,390 --> 00:13:15,681 Unë dua të futur një shumë të të dhënave. 323 00:13:15,681 --> 00:13:17,530 Unë dua të vazhdimisht fshij një shumë të të dhënave. 324 00:13:17,530 --> 00:13:21,520 Nëse unë e di se unë jam do të jetë hyrë në një fushë si Username shumë, 325 00:13:21,520 --> 00:13:24,770 Unë preemptively mund të them të bazës së të dhënave, unë di më shumë se ju, 326 00:13:24,770 --> 00:13:29,220 dhe unë dua të dekretit që ju duhet Indeksi këtë fushë. 327 00:13:29,220 --> 00:13:33,200 Ku indeksimin një arë ose një kolonë do të thotë se baza e të dhënave më parë 328 00:13:33,200 --> 00:13:37,040 duhet të marrë hua disa ide nga, si, Javën e katër dhe pesë dhe gjashtë nga CS50 329 00:13:37,040 --> 00:13:39,240 dhe në fakt të ndërtuar diçka si një kërkim binar 330 00:13:39,240 --> 00:13:41,560 pemë apo diçka përgjithësisht quhet një pemë B 331 00:13:41,560 --> 00:13:43,410 që ju do të mësojnë në një klasë si CS124 332 00:13:43,410 --> 00:13:46,710 në Harvard, një klasë algoritme, ose ndonjë numër të vendeve të tjera. 333 00:13:46,710 --> 00:13:49,570 >> Baza e të dhënave dhe i zgjuar njerëz të cilët zbatuar atë 334 00:13:49,570 --> 00:13:53,880 do të kuptoj se si për të ruajtur Tryeza e informacionit 335 00:13:53,880 --> 00:13:57,061 në kujtesën mënyrë që kërkimet dhe operacionet e tjera janë të super të shpejtë. 336 00:13:57,061 --> 00:13:58,060 Ju nuk keni për të bërë atë. 337 00:13:58,060 --> 00:14:00,640 Ju nuk keni për të zbatuar Kërkimi linear ose kërko binar 338 00:14:00,640 --> 00:14:03,300 ose bashkojë lloj ose përzgjedhje lloj, asnjë nga kjo. 339 00:14:03,300 --> 00:14:06,590 Baza e të dhënave e bën këtë për ju, nëse ju tregoni ajo preemptively të indeksit këtë fushë. 340 00:14:06,590 --> 00:14:09,100 >> Dhe ju mund të shihni shumë, ka disa karakteristika të tjera 341 00:14:09,100 --> 00:14:11,010 ne mund të them baza e të dhënave për të zbatuar. 342 00:14:11,010 --> 00:14:16,431 Çfarë mund të thotë në qoftë se unë zgjedh Unique nga kjo menu, vetëm intuitive? 343 00:14:16,431 --> 00:14:16,930 Po? 344 00:14:16,930 --> 00:14:17,889 >> Audienca: [padëgjueshme] 345 00:14:17,889 --> 00:14:19,930 DAVID Malan: Yeah, Emri i përdoruesit duhet të jetë unike. 346 00:14:19,930 --> 00:14:23,330 A është kjo një gjë e mirë apo një gjë e keqe për një bazë të dhënash, për një faqe interneti me përdoruesit? 347 00:14:23,330 --> 00:14:24,965 Duhet të përdoruesve të jetë unike? 348 00:14:24,965 --> 00:14:25,880 Po, ndoshta. 349 00:14:25,880 --> 00:14:27,800 Nëse kjo është ajo që fushë ne i përdorim për të hyni në, 350 00:14:27,800 --> 00:14:31,867 ju vërtetë nuk duan të njerëzve të pasur njëjtë ndjehen ose emrin e njëjtë. 351 00:14:31,867 --> 00:14:33,700 Pra, ne mund të kemi bazës së të dhënave të zbatuar se kaq 352 00:14:33,700 --> 00:14:37,880 që tani në kodin tim PHP ose çdo gjuhë, Unë nuk kam për të, për shembull, kontrolloni 353 00:14:37,880 --> 00:14:41,490 domosdoshmërisht e bën këtë emrin e përdoruesit ekzistojnë para se unë të lënë dikë të regjistrohem? 354 00:14:41,490 --> 00:14:46,690 Baza e të dhënave nuk do të lë dy njerëz me emrin David ose Malans regjistrohen në këtë rast. 355 00:14:46,690 --> 00:14:50,030 >> Dhe si një mënjanë, edhe pse kjo Menuja vetëm ju lejon të zgjidhni një, 356 00:14:50,030 --> 00:14:54,550 një indeks unik është ai që është indeksuar për performancën super të shpejtë, 357 00:14:54,550 --> 00:14:56,100 por ajo gjithashtu zbaton unike. 358 00:14:56,100 --> 00:14:58,850 Dhe ne do të kthehen në atë që dy të tjerët do të thotë në një moment të vetëm. 359 00:14:58,850 --> 00:15:00,930 Ndërkohë, në qoftë se unë shkoj në rresht ime e dytë, e cila 360 00:15:00,930 --> 00:15:06,230 është emri i përdoruesit, duhet të specifikojë se emri duhet të jetë unike? 361 00:15:06,230 --> 00:15:09,550 Jo, sepse ju mund të patjetër have-- nuk ka dy David 362 00:15:09,550 --> 00:15:11,050 Malans në këtë dhomë, më shumë gjasa. 363 00:15:11,050 --> 00:15:14,290 Por nëse ne zgjedhin një emër tjetër, ne me siguri mund të ketë goditjet. 364 00:15:14,290 --> 00:15:16,130 >> Mendoni përsëri për hash tavolina dhe si. 365 00:15:16,130 --> 00:15:18,604 Pra, ne me siguri nuk duan për të bërë fusha emrin unik. 366 00:15:18,604 --> 00:15:21,270 Pra, ne jemi vetëm duke shkuar për të lënë se si dash, dash, dash, asgjë. 367 00:15:21,270 --> 00:15:22,660 Dhe unë jam duke shkuar për të lënë çdo gjë tjetër vetëm. 368 00:15:22,660 --> 00:15:25,035 Në të vërtetë, shumica e këtyre fushave ne nuk do të duhet të kujdeset për. 369 00:15:25,035 --> 00:15:27,830 Dhe kur unë jam i gatshëm për të shpëtuar këtë, në qoftë se në internet bashkëpunon, 370 00:15:27,830 --> 00:15:35,032 Unë klikoni Ruaj dhe shumë, shumë, shumë ngadalë ka bazën e të dhënave të ruhen. 371 00:15:35,032 --> 00:15:37,240 Dhe tani unë jam përsëri në këtë interface, i cili pa dyshim, 372 00:15:37,240 --> 00:15:38,680 është e madhe në shikim të parë. 373 00:15:38,680 --> 00:15:42,450 Por të gjitha unë jam duke shkuar për të bëni është të klikoni në fjalën Përdoruesit në krye të majtë. 374 00:15:42,450 --> 00:15:47,630 Unë jam duke shkuar për të shkuar deri këtu, klikoni Përdoruesit, dhe by default, ajo 375 00:15:47,630 --> 00:15:50,180 ka ekzekutuar disa SQL, por më shumë se në një moment. 376 00:15:50,180 --> 00:15:52,654 Këtu është vetëm një përmbledhje e asaj që kam bërë. 377 00:15:52,654 --> 00:15:55,320 Dhe jo për t'u shqetësuar që ju shihni përmend e latine dhe suedeze këtu. 378 00:15:55,320 --> 00:16:00,490 Ata janë vetëm default settings, sepse MySQL fillimisht, 379 00:16:00,490 --> 00:16:04,000 ose PHP MyAdmin, një nga dy ndodhi të shkruar nga disa njerëz suedeze. 380 00:16:04,000 --> 00:16:06,100 Por kjo është e parëndësishme në rastin tonë këtu. 381 00:16:06,100 --> 00:16:08,280 >> Të gjithë të drejtë, kështu që pse është e këtë të gjithë interesant? 382 00:16:08,280 --> 00:16:13,050 Ajo rezulton, unë mund të futni të dhënat e në një bazë të dhënash duke shkruar kodin. 383 00:16:13,050 --> 00:16:15,940 Dhe unë jam duke shkuar përpara dhe në dosjen time këtu, unë jam 384 00:16:15,940 --> 00:16:19,000 do të shkojnë përpara dhe të pretendojë si kjo është Wired në atë bazë të dhënash, e cila 385 00:16:19,000 --> 00:16:23,040 kjo nuk është në këtë moment, por ajo do të të jetë kur ne të merrni për problemin e vuri mënjanë shtatë. 386 00:16:23,040 --> 00:16:25,640 Dhe unë jam duke shkuar për të shkuar përpara dhe ekzekutuar një funksion të quajtur pyetje, 387 00:16:25,640 --> 00:16:28,730 të cilat ne do të ju jap në problemin vendosur kodin SHTATË së shpërndarjes, që 388 00:16:28,730 --> 00:16:31,490 merr të paktën një parametër, e cila është vetëm një varg. 389 00:16:31,490 --> 00:16:33,460 Një varg i kodit SQL. 390 00:16:33,460 --> 00:16:36,700 Pra, ju jeni gati për të mësuar se si të shkruaj strukturuar Query Language. 391 00:16:36,700 --> 00:16:41,270 >> Nëse unë dua të futur një rresht të ri në tim bazës së të dhënave për shkak se dikush e ka paraqitur 392 00:16:41,270 --> 00:16:47,600 një formë për kodin tim, unë do të fjalë për fjalë shkruaj INSERT INTO përdoruesve në vijim 393 00:16:47,600 --> 00:16:52,800 fusha: emrin, presje, emri, vlerat, 394 00:16:52,800 --> 00:16:57,480 dhe tani kam nevojë për të futur diçka si Malan, dhe kuotë, 395 00:16:57,480 --> 00:17:01,490 mbyll thonjëzat 'DAVID Malan. " Dhe tani madje edhe për ata të panjohur me SQL, 396 00:17:01,490 --> 00:17:07,830 pse jam unë duke përdorur kuotat e vetme brenda këtij vargut të gjelbër? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Çfarë mund të jetë arsyeja këtu? 399 00:17:13,040 --> 00:17:14,609 >> Njoftim unë jam bashkë-duke sjellë bashkë dy gjuhë. 400 00:17:14,609 --> 00:17:18,099 Query është një funksion PHP, por ajo merr një argument. 401 00:17:18,099 --> 00:17:21,740 Dhe ky argument duhet të jetë vetë i shkruar në një gjuhë tjetër të quajtur 402 00:17:21,740 --> 00:17:23,500 SQL, strukturuar Query Language. 403 00:17:23,500 --> 00:17:27,940 Pra, çdo gjë që unë kanë nxjerrë në pah vetëm këtu 404 00:17:27,940 --> 00:17:30,380 është kjo gjuhë quhet SQL. 405 00:17:30,380 --> 00:17:36,290 Pra, çfarë është me kuotat e vetme, vetëm si një kontroll të shpejtë mendje e shëndoshë? 406 00:17:36,290 --> 00:17:37,324 Shkoni përpara. 407 00:17:37,324 --> 00:17:37,990 Ata janë strings. 408 00:17:37,990 --> 00:17:41,590 Pra, të japin kuotën, mbyll thonjëzat Malan dhe të japin kuotën, mbyll thonjëzat DAVID Malan janë vargjet. 409 00:17:41,590 --> 00:17:45,210 Dhe vetëm duke menduar intuitive tani, ditur atë që ju e dini në lidhje me C dhe PHP, 410 00:17:45,210 --> 00:17:50,220 pse nuk e kam bërë këtë, që unë zakonisht kuotat përdorur të dyfishtë për vargjet? 411 00:17:50,220 --> 00:17:52,310 Pse nuk dua të bëj atë? 412 00:17:52,310 --> 00:17:52,810 Po? 413 00:17:52,810 --> 00:17:53,685 >> Audienca: [padëgjueshme] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID Malan: Pikërisht. 416 00:17:57,570 --> 00:17:59,653 Sepse unë jam tashmë duke përdorur Kuotat e dyfishtë në rrugën 417 00:17:59,653 --> 00:18:01,929 jashtë të argumentit me funksionin PHP, 418 00:18:01,929 --> 00:18:03,470 Unë vetëm do të ngatërruar përkthyes. 419 00:18:03,470 --> 00:18:04,860 Kjo nuk do të dinë, e këta të shkojnë së bashku? 420 00:18:04,860 --> 00:18:05,735 A këta të shkojnë së bashku? 421 00:18:05,735 --> 00:18:06,810 A këta të shkojnë së bashku? 422 00:18:06,810 --> 00:18:08,070 Pra, unë alternativ në vend. 423 00:18:08,070 --> 00:18:11,784 >> Ose unë mund të bëjë diçka si kjo, quote backslash ose backslash citim. 424 00:18:11,784 --> 00:18:14,200 Sinqerisht, që vetëm fillon të merrni shumë të paqartë dhe të shëmtuar. 425 00:18:14,200 --> 00:18:16,790 Por kjo do të arrihet i njëjti rezultat si. 426 00:18:16,790 --> 00:18:19,760 >> Pra, nëse unë do të kryej këtë query tani, le të shohim se çfarë ndodh. 427 00:18:19,760 --> 00:18:22,740 Unë jam duke shkuar për të shkuar përpara dhe tani në vend sesa të ekzekutuar kodin PHP, e cila 428 00:18:22,740 --> 00:18:24,610 është ajo ku ju do të luajnë në problemin vendosur shtatë, 429 00:18:24,610 --> 00:18:27,200 Unë jam duke shkuar për të shkuar në vend për PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 Dhe unë jam duke shkuar dorë për të shkuar në SQL tab, 431 00:18:29,770 --> 00:18:31,580 dhe më lejoni të zoom në në interface. 432 00:18:31,580 --> 00:18:34,007 Dhe unë jam duke shkuar për të ngjitur në gjë unë vetëm shtypur. 433 00:18:34,007 --> 00:18:36,090 Dhe coding ngjyra ka ndryshuar pak tani, 434 00:18:36,090 --> 00:18:38,750 vetëm për shkak se formatet e programit gjërat pak ndryshe. 435 00:18:38,750 --> 00:18:41,960 Por vini re se të gjitha unë kam bërë është e kam thënë, futur në Përdoruesit. 436 00:18:41,960 --> 00:18:45,790 Unë e kam përcaktuar, atëherë, në një presje Lista e ndara parenthesized dy 437 00:18:45,790 --> 00:18:48,850 Fushat që unë dua të futur, dhe atëherë unë kam thënë fjalë për fjalë vlerat 438 00:18:48,850 --> 00:18:51,510 pasuar nga një tjetër Paren, dhe pastaj të dy vlerat 439 00:18:51,510 --> 00:18:53,520 Unë dua të plug-in, dhe tani për masë të mirë, 440 00:18:53,520 --> 00:18:55,010 Unë do të vënë një pikëpresje në fund. 441 00:18:55,010 --> 00:18:56,570 Pra, kjo nuk është C. Kjo nuk është e PHP. 442 00:18:56,570 --> 00:18:59,970 Kjo është tani SQL, dhe unë jam duke pasting atë në këtë ndërfaqe web bazuar që është 443 00:18:59,970 --> 00:19:02,710 vetëm do të më lejoni, sa më shpejt që unë kliko të shkojnë, 444 00:19:02,710 --> 00:19:08,060 ekzekutuar këtë pyetje në bazën e të dhënave drejtimin brenda CS50 IDE. 445 00:19:08,060 --> 00:19:09,470 >> Pra, kjo është e mirë. 446 00:19:09,470 --> 00:19:12,520 Vini re se tha një rresht futur, shkoi super të shpejtë, 447 00:19:12,520 --> 00:19:15,190 0.0054 sekonda për të futur këto të dhëna. 448 00:19:15,190 --> 00:19:16,610 Pra, kjo tingëllon mjaft e shëndetshme. 449 00:19:16,610 --> 00:19:19,350 Ajo riformatuar query tim për mua këtu vetëm për të parë atë 450 00:19:19,350 --> 00:19:21,730 në lloj ngjyra koduar versionit. 451 00:19:21,730 --> 00:19:24,540 Por tani, nëse unë klikoni Shfletoni, vini re se, edhe 452 00:19:24,540 --> 00:19:29,070 edhe pse ka shumë rrëmujë në ekran, tryezën time tani ka dy rreshta. 453 00:19:29,070 --> 00:19:30,700 >> Pra, më lejoni të shkoj përpara dhe të bëjë tjetër. 454 00:19:30,700 --> 00:19:33,760 Në vend të kësaj, le të më shkoni në SQL tab përsëri. 455 00:19:33,760 --> 00:19:40,723 Dhe këtë herë unë do të futur diçka si Rob dhe emri i tij do të jetë Rob Bowden. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 Le të klikoni Ruaj. 458 00:19:44,040 --> 00:19:46,140 Oops, në vend të shkojnë. 459 00:19:46,140 --> 00:19:48,890 >> Kliko Shfleto përsëri, dhe tani vini re unë kam dy rreshta. 460 00:19:48,890 --> 00:19:52,390 Pra, kjo është vetëm një kompleks mënyrë më Mënyra e hapjes Google Spreadsheets 461 00:19:52,390 --> 00:19:54,010 dhe vetëm të shtypni një rresht në një kolonë. 462 00:19:54,010 --> 00:19:57,070 Por ajo që është kryesore është se ne tani kemi sintaksë 463 00:19:57,070 --> 00:20:00,220 me të cilën të shkruani kodin në mënyrë që në fund të fundit, ne mund të vërtetë të 464 00:20:00,220 --> 00:20:01,790 bëjë disa dhe kjo. 465 00:20:01,790 --> 00:20:05,380 Kujtojnë që suporton PHP ndryshoret super globale. 466 00:20:05,380 --> 00:20:08,415 >> Çfarë është brenda e dollarit nënshkruajë underscore GET në PHP? 467 00:20:08,415 --> 00:20:10,290 Ne patëm marrë një vështrim në një apo dy shembuj të thjeshtë. 468 00:20:10,290 --> 00:20:15,640 Dhe në PSet6, kujtoj se ju keni përshëndetje dot PHP që përdor këtë variabël. 469 00:20:15,640 --> 00:20:17,870 Çfarë shkon në atje? 470 00:20:17,870 --> 00:20:21,015 Apo çfarë është ajo? 471 00:20:21,015 --> 00:20:22,522 Një louder pak. 472 00:20:22,522 --> 00:20:23,790 >> Audienca: [padëgjueshme] 473 00:20:23,790 --> 00:20:25,030 >> DAVID Malan: Kjo është një dëborë farë e array, e cila 474 00:20:25,030 --> 00:20:27,714 është vetëm një mënyrë e sofistikuar për të thënë një array që ka palë kryesore me vlerë. 475 00:20:27,714 --> 00:20:28,880 Dhe çelësat nuk janë numerike. 476 00:20:28,880 --> 00:20:30,420 Ata janë fjalë apo vargjet. 477 00:20:30,420 --> 00:20:32,750 Dhe konkretisht, çfarë janë ato çifte të rëndësishme me vlerë? 478 00:20:32,750 --> 00:20:35,110 Ku ata vijnë nga? 479 00:20:35,110 --> 00:20:35,620 Na vjen keq? 480 00:20:35,620 --> 00:20:36,994 >> Audienca: [padëgjueshme] 481 00:20:36,994 --> 00:20:37,660 DAVID Malan: Jo? 482 00:20:37,660 --> 00:20:40,700 Ku bëjnë ato kyçe çift ​​vlerash vijnë nga? 483 00:20:40,700 --> 00:20:42,490 Thuaj përsëri? 484 00:20:42,490 --> 00:20:44,610 Përsëri? 485 00:20:44,610 --> 00:20:46,472 A jam unë i vetmi diçka dëgjimi? 486 00:20:46,472 --> 00:20:47,810 >> [Qeshura] 487 00:20:47,810 --> 00:20:49,042 >> Kjo është e drejtë, po? 488 00:20:49,042 --> 00:20:50,435 >> Audienca: [padëgjueshme] 489 00:20:50,435 --> 00:20:52,560 DAVID Malan: Po, ata vijnë nga varg pyetje. 490 00:20:52,560 --> 00:20:55,380 Pra, nëse ju Rewind në kohë për kur ne kemi luajtur me Google 491 00:20:55,380 --> 00:20:59,600 dhe ne kemi shkuar në google.com slash pikëpyetje Kërkimi q barabartë macet, 492 00:20:59,600 --> 00:21:03,550 në qoftë se unë do të hit Enter dhe nëse Google janë zbatuar në PHP, 493 00:21:03,550 --> 00:21:07,017 Kodi PHP që Google ka shkruar do të kenë qasje në shenjën e dollarit 494 00:21:07,017 --> 00:21:11,600 nënvizojnë marrë brenda së cilës është çelësi i quajtur Pyetje dhe një vlerë 495 00:21:11,600 --> 00:21:17,680 quajtur macet që ajo pastaj mund të përdorin përdorur për të bërë një kërkim aktuale me. 496 00:21:17,680 --> 00:21:20,860 >> Pra, në fakt, ajo që unë jam duke shkuar për të bëni tani është të kthehemi në kodin tim PHP 497 00:21:20,860 --> 00:21:23,140 që ju do të shihni përsëri më shumë e në PSet7. 498 00:21:23,140 --> 00:21:25,440 Dhe në vend të mbylljen në vlerat e vështirë të koduara që 499 00:21:25,440 --> 00:21:27,630 nuk duket si një shumë website dinamike, 500 00:21:27,630 --> 00:21:30,680 Unë do të ju jap një ngacmues të çfarë kodi juaj aktual do të bëjë. 501 00:21:30,680 --> 00:21:32,854 Ju do të vënë në dy Pyetja e shënon si kjo. 502 00:21:32,854 --> 00:21:34,270 Unë nuk e di se çfarë emri i përdoruesit është. 503 00:21:34,270 --> 00:21:37,390 Unë nuk e di se çfarë Emri do të jetë, 504 00:21:37,390 --> 00:21:39,470 por unë e di unë mund të marrë ato dinamike. 505 00:21:39,470 --> 00:21:43,420 >> Pra, në qoftë se kodi ne jemi me shkrim tani është kodin kandidon për serverat e Google-it, 506 00:21:43,420 --> 00:21:46,940 ose në qoftë se kjo është përshëndetje dot PHP, i cili vjen me PSet6, 507 00:21:46,940 --> 00:21:48,650 Unë jam duke shkuar për të kaluar në funksioni query 508 00:21:48,650 --> 00:21:51,450 ashtu si printf, dy argumente të tjera. 509 00:21:51,450 --> 00:21:57,120 GET, të japin kuotën, emrin mbyll thonjëzat, Dhe për të marrë, të japin kuotën, emri i mbyll thonjëzat. 510 00:21:57,120 --> 00:22:00,720 Dhe tani, vini re çfarë Struktura e përgjithshme është këtu. 511 00:22:00,720 --> 00:22:03,320 Unë kam marrë në të majtë anën e thirrjes, 512 00:22:03,320 --> 00:22:05,480 ky funksion i quajtur pyetje në PHP. 513 00:22:05,480 --> 00:22:08,160 Unë ende kam si një i parë Argumenti, vetëm një varg të tekstit. 514 00:22:08,160 --> 00:22:11,000 >> Por kjo varg i tekstit është i shkruar në një gjuhë që quhet SQL. 515 00:22:11,000 --> 00:22:12,616 Dhe sinqerisht, kjo nuk është një gjuhë e madhe. 516 00:22:12,616 --> 00:22:14,990 Ne jemi vetëm do të flasim për ajo formalisht sot, me të vërtetë. 517 00:22:14,990 --> 00:22:17,031 Dhe pastaj në problemin vendosur shtatë, ka relativisht 518 00:22:17,031 --> 00:22:18,800 disa karakteristika që ne jemi do të levave. 519 00:22:18,800 --> 00:22:22,530 Në pikëpyetje, edhe pse, thotë vihet në prizë një vlerë këtu dhe plug në një tjetër vlerë 520 00:22:22,530 --> 00:22:23,130 këtu. 521 00:22:23,130 --> 00:22:26,010 Dhe vini re, unë e kam harruar atë nga e gjithë mallkim quote-- 522 00:22:26,010 --> 00:22:30,470 it-- rreth kuotimit shënon këtë herë. 523 00:22:30,470 --> 00:22:34,930 Unë e kam lënë jashtë kuotimit shënon rreth pikëpyetje, 524 00:22:34,930 --> 00:22:36,410 keq, këtë herë. 525 00:22:36,410 --> 00:22:38,870 >> Pra, çfarë është e bukur në lidhje me këtë pikëpyetje tipar që 526 00:22:38,870 --> 00:22:42,830 PHP ka tendencë për të mbështetur, Ruby dhe Python dhe gjuhë të tjera, 527 00:22:42,830 --> 00:22:45,730 kjo thjesht do të thotë plug në disa vlerësojmë këtu dhe ju e dini se çfarë? 528 00:22:45,730 --> 00:22:48,300 Ju kuptoj se nëse do të përdorim Kuotat e vetme apo të dyfishtë kuotat. 529 00:22:48,300 --> 00:22:50,966 Mos u mërzit mua me ato Detajet e intelektualisht jointeresant. 530 00:22:50,966 --> 00:22:53,780 Por, sigurohuni që është e saktë në mënyrë që kodi im është në fund të fundit 531 00:22:53,780 --> 00:22:57,010 operative dhe të sigurt, e cila do të kenë një kuptim para se të gjatë. 532 00:22:57,010 --> 00:23:00,460 >> Tani, sa argumente gjithsej, vetëm për të të jetë e qartë, është funksioni marrja pyetje? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Çdokush duan të votojnë për më shumë se dy? 535 00:23:07,581 --> 00:23:08,080 Tre? 536 00:23:08,080 --> 00:23:10,001 I sigurt, pse? 537 00:23:10,001 --> 00:23:10,920 Pse tre? 538 00:23:10,920 --> 00:23:12,305 >> Audienca: [padëgjueshme] 539 00:23:12,305 --> 00:23:13,180 DAVID Malan: Pikërisht. 540 00:23:13,180 --> 00:23:14,610 Pjesa e parë është string. 541 00:23:14,610 --> 00:23:18,640 Argumenti i dytë është shenjë dollar nënvizojnë Teklif kllapa emrin. 542 00:23:18,640 --> 00:23:21,950 Dhe argumenti i tretë është njëjta gjë, por vetëm emri. 543 00:23:21,950 --> 00:23:24,590 Pra, me fjalë të tjera, tani në qoftë se kam pasur një formë web 544 00:23:24,590 --> 00:23:27,149 që kishte për fushat e tekstit, një për emrin e përdoruesit, 545 00:23:27,149 --> 00:23:29,690 një për tij apo emri i saj, vetëm si ju do të shihni në një faqe interneti 546 00:23:29,690 --> 00:23:32,120 kur ju regjistroheni për disa website, kjo mund të 547 00:23:32,120 --> 00:23:35,450 jetë kodin në fund e pasme që në fakt nuk futje tani 548 00:23:35,450 --> 00:23:37,220 në bazën e të dhënave. 549 00:23:37,220 --> 00:23:40,870 >> Tani nga ana tjetër, le të shpejtë përpara. 550 00:23:40,870 --> 00:23:43,840 Supozoni se një përdorues është tani prerjet në dhe ju doni 551 00:23:43,840 --> 00:23:48,860 të shkruani kodin PHP që kontrollon nëse personi i cili është regjistruar vetëm në 552 00:23:48,860 --> 00:23:52,250 është në fakt një përdorues, ju mund të përdorni sintaksë mjaft e thjeshtë. 553 00:23:52,250 --> 00:23:55,832 Ju mund të thoni SELECT, le të themi yll, ku yll do të thotë çdo gjë. 554 00:23:55,832 --> 00:23:57,540 Unë nuk e di se çfarë kam doni, kështu që vetëm të më jepni 555 00:23:57,540 --> 00:24:01,585 të gjitha shtyllat nga tabela quajtur përdoruesit ku, dhe kjo është e bukur. 556 00:24:01,585 --> 00:24:03,710 Zgjidh mbështet çfarë është quajtur predikati, i cili është 557 00:24:03,710 --> 00:24:06,630 si një mënyrë për të kualifikuar atë që ju dëshironi. 558 00:24:06,630 --> 00:24:10,590 Ku emri i përdoruesit është e barabartë me të japin kuotën, mbyll thonjëzat Malan. 559 00:24:10,590 --> 00:24:13,680 Pra edhe këtu, unë kam të ngulitura brenda argumentit 560 00:24:13,680 --> 00:24:16,110 në një funksion PHP, një linjë e kodit SQL. 561 00:24:16,110 --> 00:24:18,680 Dhe se kodi SQL kjo Ora është fjalë për fjalë do 562 00:24:18,680 --> 00:24:21,790 për të kërkuar për kuotë, mbyll thonjëzat Malan. 563 00:24:21,790 --> 00:24:24,420 >> Tani që nuk është e gjitha që e dobishme, kështu që unë jam duke shkuar për të kaloni atë 564 00:24:24,420 --> 00:24:28,650 dhe unë jam duke shkuar për të vënë larg ky tip nga Brady, dhe shko 565 00:24:28,650 --> 00:24:30,990 dhe plug-in në vend një pikëpyetje këtu. 566 00:24:30,990 --> 00:24:33,290 Pra, vetëm të jetë i qartë, çfarë duhet Argumenti im i dytë 567 00:24:33,290 --> 00:24:37,480 të në qoftë se dikush ka hyrë vetëm në dhe unë dëshironi të kontrolloni nëse ai ose ajo është në fakt 568 00:24:37,480 --> 00:24:39,265 një përdorues? 569 00:24:39,265 --> 00:24:40,140 Audienca: [padëgjueshme] 570 00:24:40,140 --> 00:24:40,890 DAVID Malan: Po. 571 00:24:40,890 --> 00:24:44,120 Kam dëgjuar dollar shenjë nënvizojnë Dërgo kërkesën, emrin e përdoruesit siç janë quajtur ato. 572 00:24:44,120 --> 00:24:50,040 Dhe kjo duhet të kthehet tek unë ndonjë prej rreshtave në bazën e të dhënave e mia 573 00:24:50,040 --> 00:24:51,986 që kanë një emër përdoruesi të Malan. 574 00:24:51,986 --> 00:24:54,860 Tani shpresoj, unë jam duke shkuar për të marrë përsëri zero nëse nuk Malan ka qenë këtu, 575 00:24:54,860 --> 00:24:56,290 ose një në qoftë se ai ka. 576 00:24:56,290 --> 00:24:59,026 Unë nuk duhet të kthehet dy ose tre ose katër. 577 00:24:59,026 --> 00:24:59,526 Përse? 578 00:24:59,526 --> 00:25:00,220 >> Audienca: [padëgjueshme] 579 00:25:00,220 --> 00:25:01,120 >> DAVID Malan: Unë thashë unik, e drejtë? 580 00:25:01,120 --> 00:25:01,750 Arsyeja e thjeshtë. 581 00:25:01,750 --> 00:25:04,030 Sepse unë tha se e mori për të jetë unik, vetëm logjikisht, 582 00:25:04,030 --> 00:25:07,940 ju mund të keni vetëm zero ose një Malans në këtë tabelë të veçantë bazës së të dhënave. 583 00:25:07,940 --> 00:25:10,965 Tani si një mënjanë, vetëm kështu që ju kam parë ajo, edhe pse unë mbaj duke përdorur GET 584 00:25:10,965 --> 00:25:14,350 dhe edhe pse PSet6 përdoret vetëm GET, ju me siguri mund të ketë Post. 585 00:25:14,350 --> 00:25:17,212 Dhe kujtojnë se Post është një tjetër Teknika për dorëzimin e informatave 586 00:25:17,212 --> 00:25:19,170 nga një formë, por nuk shfaqen në URL. 587 00:25:19,170 --> 00:25:22,690 Kjo është pak më të sigurt sigurisht për gjëra të tilla si përdoruesve dhe fjalëkalimet, 588 00:25:22,690 --> 00:25:25,210 i cili PSet7 do të, në fakt, të përfshijë. 589 00:25:25,210 --> 00:25:28,130 >> Pra, le ta bëjmë këtë në PHP MyAdmin dhe shikoni se çfarë ndodh. 590 00:25:28,130 --> 00:25:30,020 Unë jam duke shkuar për të shkuar në MySQL tab. 591 00:25:30,020 --> 00:25:34,450 Dhe vini re se vlera e paracaktuar për PHP MyAdmin, vetëm që të përpiqet të jetë e dobishme, 592 00:25:34,450 --> 00:25:37,050 është që të zgjidhni yll nga përdoruesit ku. 593 00:25:37,050 --> 00:25:39,430 E pra, një është gjithmonë e vërtetë, kështu që Kjo ka kuptim efektiv 594 00:25:39,430 --> 00:25:40,400 i thjesht zgjidhni gjithçka. 595 00:25:40,400 --> 00:25:42,691 Por unë jam do të jetë pak më shumë pedant dhe me dorë 596 00:25:42,691 --> 00:25:45,920 lloji nga yll Zgjidh nga përdoruesit. 597 00:25:45,920 --> 00:25:48,294 >> Tani teknikisht, ju mund të citojnë emrin e tabelave. 598 00:25:48,294 --> 00:25:50,460 Është e rrallë që ju keni për të, por vini re këto nuk janë 599 00:25:50,460 --> 00:25:52,240 kuotat tuaj normale në tastierë SHBA. 600 00:25:52,240 --> 00:25:54,760 Kjo është e ashtuquajtura backtick, e cila në përgjithësi është në anën e sipërm të majtë 601 00:25:54,760 --> 00:25:56,000 cep të tastierën tuaj. 602 00:25:56,000 --> 00:25:58,500 Por është e rrallë që ju do të në fakt duhet të shqetësojë me atë, 603 00:25:58,500 --> 00:25:59,950 kështu që unë vetëm do të harroj ato gjithsesi. 604 00:25:59,950 --> 00:26:02,280 Deri tani, më lejoni të shkoj përpara dhe e goditi të shkojnë. 605 00:26:02,280 --> 00:26:06,616 Dhe sa rreshtave duhet të shkoj përsëri kur unë zgjedh yllin nga përdoruesit? 606 00:26:06,616 --> 00:26:08,407 >> Audienca: [padëgjueshme] 607 00:26:08,407 --> 00:26:09,990 DAVID Malan: Numri i rreshtave, i sigurt. 608 00:26:09,990 --> 00:26:12,390 Por, sa shumë njerëz në këtë Historia konkrete tani? 609 00:26:12,390 --> 00:26:14,640 Dy, sepse nuk kishte mua dhe nuk kishte Rob. 610 00:26:14,640 --> 00:26:19,370 Pra, në qoftë se unë kliko të shkojnë, unë shoh vizualisht se Unë kam marrë përsëri, në të vërtetë, dy rreshta. 611 00:26:19,370 --> 00:26:22,060 Ka shumë rrëmujë mbi ekran, por unë shoh vetëm dy rreshta. 612 00:26:22,060 --> 00:26:28,580 Në të kundërt, në qoftë se unë bëj këtë përsëri dhe të bëjë Ylli SELECT nga përdoruesit, ku është emri i përdoruesit 613 00:26:28,580 --> 00:26:31,840 barabartë Quote, mbyll thonjëzat Malan, tani në qoftë se unë kliko të shkojnë, 614 00:26:31,840 --> 00:26:33,970 Unë jam vetëm duke shkuar për të marrë përsëri një rresht. 615 00:26:33,970 --> 00:26:36,499 Dhe së fundi, në qoftë se unë bëj diçka si kjo, mendoj 616 00:26:36,499 --> 00:26:38,290 që unë nuk e kujdesit për duke marrë çdo gjë, 617 00:26:38,290 --> 00:26:41,020 që është lloj i pakuptimtë tani, sepse ka vetëm dy kolona. 618 00:26:41,020 --> 00:26:43,103 Ajo nuk është si unë jam zgjedhur një sasi të madhe të të dhënave. 619 00:26:43,103 --> 00:26:46,720 Mendoj të shkoj përpara dhe mos Zgjidh Emri i NGA 620 00:26:46,720 --> 00:26:51,990 përdoruesit, ku emrin barabartë me Malan, çfarë është e bukur për SQL sinqerisht, 621 00:26:51,990 --> 00:26:54,290 është se me të vërtetë vetëm e bën çfarë ju them se për të bërë. 622 00:26:54,290 --> 00:26:57,550 Është mjaft i ngjeshur, por ju fjalë për fjalë vetëm tregoni se çfarë ju doni të bëni. 623 00:26:57,550 --> 00:27:01,130 Zgjidhni Emri nga përdoruesit ku username barabartë Malan. 624 00:27:01,130 --> 00:27:03,440 Dhe me të vërtetë është se i qartë. 625 00:27:03,440 --> 00:27:08,410 Pra, tani, nëse unë goditi Shko, sa rreshtave jam duke shkuar për të marrë përsëri? 626 00:27:08,410 --> 00:27:10,770 Një, sepse kjo është vetëm Malan, me shpresë. 627 00:27:10,770 --> 00:27:13,100 Ose zero në qoftë se ai nuk është atje, por një maksimalisht. 628 00:27:13,100 --> 00:27:17,610 >> Dhe sa kolona do të kthehem përsëri? 629 00:27:17,610 --> 00:27:18,450 Sa kolona? 630 00:27:18,450 --> 00:27:20,658 Këtë herë, unë jam vetëm duke shkuar për të marrë një të tillë, sepse nuk e kam 631 00:27:20,658 --> 00:27:22,380 zgjidhni yll, i cili është gjithçka. 632 00:27:22,380 --> 00:27:27,900 Tani unë jam zgjedhur vetëm emrin, kështu që unë vetëm të marrë përsëri një kolonë dhe një rresht. 633 00:27:27,900 --> 00:27:31,730 Dhe kjo duket lloj i në mënyrë të përshtatshme qesharake, vetëm në kërkim super 634 00:27:31,730 --> 00:27:33,060 e vogël si kjo. 635 00:27:33,060 --> 00:27:34,290 Pra, çfarë është me të vërtetë ndodh? 636 00:27:34,290 --> 00:27:36,890 Kur ju të ekzekutuar një SQL query përdorur zgjedhur, 637 00:27:36,890 --> 00:27:38,700 çfarë ju jeni duke marrë prapa nga të preferuarat 638 00:27:38,700 --> 00:27:42,970 është si një tryezë e përkohshme me rreshta dhe kolona, ​​ndoshta, 639 00:27:42,970 --> 00:27:46,260 por që heq çdo gjë që nuk është përzgjedhur në fakt nga ju. 640 00:27:46,260 --> 00:27:49,010 Pra, kjo është si në qoftë se dikush kishte një i madh spreadsheet të gjithë studentët 641 00:27:49,010 --> 00:27:51,610 i regjistruar për disa Grupi i studentëve, dhe ju thoni: 642 00:27:51,610 --> 00:27:55,097 më jepni të gjithë studente të cilët kanë i regjistruar për grupin tonë studentor, çfarë 643 00:27:55,097 --> 00:27:56,930 kolegu juaj në Grupi nxënës mund të bëjë 644 00:27:56,930 --> 00:27:58,430 është se ata vetëm mund të dorëzojë ju të gjithë spreadsheet. 645 00:27:58,430 --> 00:27:59,742 Kjo është si të thuash zgjidhni yll. 646 00:27:59,742 --> 00:28:02,200 Dhe kjo është pak i bezdisshëm, nëse ju vetëm donte studente. 647 00:28:02,200 --> 00:28:05,640 Dhe kështu, në qoftë se ju në vend të kësaj ka thënë: Zgjidh yll nga tabela bazës së të dhënave 648 00:28:05,640 --> 00:28:08,470 ku vit është e barabartë me të japin kuotën, studente mbyll thonjëzat, 649 00:28:08,470 --> 00:28:10,810 kjo është sikur shoku në grupin e studentëve 650 00:28:10,810 --> 00:28:13,770 theksuar fjalë për fjalë dhe kopjuar vetëm rreshtat studente, 651 00:28:13,770 --> 00:28:16,780 ngjit ato në një Google të ri Spreadsheet ose një file Excel, 652 00:28:16,780 --> 00:28:18,860 dhe ju dorëzoi mbrapa duke rezultuar fotografi vetëm. 653 00:28:18,860 --> 00:28:21,710 Kjo është e gjitha që po ndodh në konceptualisht këtu. 654 00:28:21,710 --> 00:28:23,920 >> Pra, në fund, ne mund të bëjmë disa gjëra mjaft të dashuroj 655 00:28:23,920 --> 00:28:26,560 me ruajtjen gjëra të tilla si përdoruesve dhe fjalëkalimet dhe të ngjashme. 656 00:28:26,560 --> 00:28:30,310 Por, ajo rezulton, ne duhet të bëjmë pak më ndryshe se sa kjo. 657 00:28:30,310 --> 00:28:34,750 Kjo nuk është se i zgjuar për të vetëm ruajtur një username dhe një fjalëkalim. 658 00:28:34,750 --> 00:28:37,790 Dikush më herët, unë mendoj këtu poshtë, sugjeroi një ID. 659 00:28:37,790 --> 00:28:40,787 Tani një ID mund të jetë si një Harvard ID ose ID Net Yale, 660 00:28:40,787 --> 00:28:42,870 por ajo mund të jetë edhe më të thjeshta në rastin tonë bazës së të dhënave. 661 00:28:42,870 --> 00:28:45,120 Dhe me të vërtetë, rasti i përbashkët është që të ketë një tjetër kolonë. 662 00:28:45,120 --> 00:28:46,953 Dhe unë jam duke shkuar për të shkuar përpara dhe redaktoni tryezën time. 663 00:28:46,953 --> 00:28:49,521 Dhe në qoftë se ju të luajnë rreth me kjo ndërfaqe për PSet7, 664 00:28:49,521 --> 00:28:51,770 ju do të shihni se ju mund të kontrolloni ky buton këtu dhe shtoni 665 00:28:51,770 --> 00:28:53,750 një fushë në fillim të tabelës. 666 00:28:53,750 --> 00:28:56,720 Dhe tani, nëse unë kliko të shkojnë, ajo do për të më jepni një nga ato forma të 667 00:28:56,720 --> 00:28:57,600 nga më herët. 668 00:28:57,600 --> 00:29:00,170 Unë jam duke shkuar për të shtuar një fushë të quajtur ID. 669 00:29:00,170 --> 00:29:03,070 Dhe unë jam duke shkuar për të bërë atë një lloj numerike. 670 00:29:03,070 --> 00:29:05,362 >> Unë kam një bandë e tërë e vlerave për numeriken. 671 00:29:05,362 --> 00:29:08,677 Unë jam vetëm duke shkuar për të zgjedhur një int dhe mos u shqetësoni për të madhësive të ndryshëm. 672 00:29:08,677 --> 00:29:10,510 Unë nuk duhet të specifikojë një gjatësi ose një vlerë, 673 00:29:10,510 --> 00:29:13,710 sepse kjo do të jetë 32 bit pa marrë parasysh çfarë. 674 00:29:13,710 --> 00:29:16,070 Atributet, ne nuk shohim më parë. 675 00:29:16,070 --> 00:29:18,410 Çdo interes në ndonjë nga këto menu options këtë kohë? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Për një INT? 678 00:29:23,745 --> 00:29:24,620 Çfarë keni propozuar? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 Nuk ka? 681 00:29:28,445 --> 00:29:29,570 A ndonjë nga këto kuptim? 682 00:29:29,570 --> 00:29:30,536 Po. 683 00:29:30,536 --> 00:29:31,900 Po, panënshkruar, e drejtë? 684 00:29:31,900 --> 00:29:35,930 >> Në përgjithësi, në qoftë se ne jemi duke shkuar për të dhënë të gjithë një numër unik, i cili 685 00:29:35,930 --> 00:29:38,200 është vendi ku kjo histori është po, unë me të vërtetë duan vetëm 686 00:29:38,200 --> 00:29:41,919 një person të ketë numrin si zero dhe një dhe dy dhe tre dhe katër. 687 00:29:41,919 --> 00:29:43,710 Unë nuk duhet të merren me numra negative. 688 00:29:43,710 --> 00:29:45,210 Ajo thjesht duket si kompleksitet të panevojshëm. 689 00:29:45,210 --> 00:29:48,470 Unë dua katër miliardë vlerat e mundshme, jo katër miliardë të vlerave të mundshme, 690 00:29:48,470 --> 00:29:50,699 kështu që unë vetëm dyfishuar Kapaciteti i INT tim. 691 00:29:50,699 --> 00:29:53,490 Si një mënjanë, në qoftë se ju doni të lidhen kjo për diçka si Facebook, 692 00:29:53,490 --> 00:29:56,190 përsëri në lloj të ditës sime kur është Facebook parë doli jashtë, 693 00:29:56,190 --> 00:29:59,510 Unë besoj se atë që ata ishin përdorur në database e tyre MySQL 694 00:29:59,510 --> 00:30:02,856 për të ruajtur një përdorues-së identifikues, ishte vetëm një INT. 695 00:30:02,856 --> 00:30:05,230 Por sigurisht, nuk është një shumë e njerëz të vërtetë në botë. 696 00:30:05,230 --> 00:30:07,438 Nuk është një shumë e rreme Facebook llogaritë në botë. 697 00:30:07,438 --> 00:30:11,701 Dhe kështu në fund, Facebook vërshuan madhësia e një INT, një katër miliardë të 698 00:30:11,701 --> 00:30:12,200 Vlera. 699 00:30:12,200 --> 00:30:15,032 Cila është arsyeja pse, në qoftë se ju shikoni përreth dhe ka faqet e internetit 700 00:30:15,032 --> 00:30:16,740 që mund të ju tregojnë se çfarë ID juaj unik është. 701 00:30:16,740 --> 00:30:19,781 Dhe në qoftë se ju nuk zgjodhi një emër përdoruesi në Facebook, ju do të shihni ID tuaj unik. 702 00:30:19,781 --> 00:30:23,080 Unë mendoj se është profili dot PHP ID pikëpyetje është e barabartë me diçka. 703 00:30:23,080 --> 00:30:27,210 Kjo është tani diçka si një i madh INT, ose një kohë të gjatë në qoftë se ju do, 704 00:30:27,210 --> 00:30:29,700 i cili është një vlerë 64-bit ose diçka të krahasueshme. 705 00:30:29,700 --> 00:30:33,620 >> Pra, edhe në botën e vërtetë të bëjë këto Çështjet në fund të fundit ndonjëherë rëndësi. 706 00:30:33,620 --> 00:30:37,600 Dhe kjo rezulton këtu, në qoftë se unë jam i duke i dhënë të gjithë përdoruesit e mia një ID unike, 707 00:30:37,600 --> 00:30:41,750 Unë dua të jem super të qartë dhe minimalisht bëjnë këtë fushë të veçantë. 708 00:30:41,750 --> 00:30:44,750 Por kjo rezulton atje është një pjesë e nomenklaturës sot shumë 709 00:30:44,750 --> 00:30:46,470 kjo është një kyç primar. 710 00:30:46,470 --> 00:30:49,800 Nëse ju jeni të hartonin një bazë të dhënash tavolinë dhe ju e dini që më parë 711 00:30:49,800 --> 00:30:55,580 që njërit prej kolonave në atë tabelën duhet dhe do të identifikojë në mënyrë unike rreshtave 712 00:30:55,580 --> 00:30:58,500 në tryezë, ju doni të specifikojë atë dhe të them të bazës së të dhënave, 713 00:30:58,500 --> 00:31:00,250 ky është çelësi im kryesor. 714 00:31:00,250 --> 00:31:02,110 Nuk mund të jetë kopje identike në fusha të tjera, 715 00:31:02,110 --> 00:31:06,330 por unë jam i thënë bazën e të dhënave që ky është primar im, fusha ime më e rëndësishme, 716 00:31:06,330 --> 00:31:08,420 që është e garantuar të jetë unike. 717 00:31:08,420 --> 00:31:09,660 >> Tani, kjo duket e tepërt. 718 00:31:09,660 --> 00:31:13,830 Unë tani jam duke propozuar që ne shtoni, duke klikuar Save këtu, 719 00:31:13,830 --> 00:31:17,210 një called-- fushë dhe unë jam duke shkuar për të shkuar përpara dhe klikoni UA, 720 00:31:17,210 --> 00:31:19,720 ne do të kthehen në se në një moment, Save. 721 00:31:19,720 --> 00:31:22,540 Unë jam duke propozuar tani që tryezën time, duket si kjo. 722 00:31:22,540 --> 00:31:26,305 Unë kam një fushë INT quajtur ID, një fushë CHAR quajtur Emri i përdoruesit: 723 00:31:26,305 --> 00:31:31,100 një fushë VARCHAR quajtur Emri, por ID, nëse është kryesor dhe për këtë arsye unike, 724 00:31:31,100 --> 00:31:33,760 pse nuk kam vetëm të humbur Ora futjen çfarë 725 00:31:33,760 --> 00:31:39,140 në mënyrë efektive është një i dytë unik fushë quajtur ID që është një int? 726 00:31:39,140 --> 00:31:41,980 >> Emrin, kujtojnë, ishte tashmë unik, kemi thënë. 727 00:31:41,980 --> 00:31:45,350 Pra, vetëm logjikisht, ju nuk keni nevojë ndonjë përvojë bazës së të dhënave për të arsyes 728 00:31:45,350 --> 00:31:47,570 përmes kësaj, pse mund të Unë kam prezantuar 729 00:31:47,570 --> 00:31:50,065 një INT si identifikues unik time si? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Çfarë është this-- them përsëri? 732 00:31:53,930 --> 00:31:55,580 >> Audienca: [padëgjueshme] 733 00:31:55,580 --> 00:31:59,534 >> DAVID Malan: rastësishme qasje është më e lehtë, pse? 734 00:31:59,534 --> 00:32:00,410 >> Audienca: [padëgjueshme] 735 00:32:00,410 --> 00:32:02,367 DAVID Malan: Po, kjo është vetëm qasjen numra. 736 00:32:02,367 --> 00:32:04,750 Pra, në qoftë se ju mendoni se për këtë të vërtetë është një tavolinë, si një grup, 737 00:32:04,750 --> 00:32:07,690 tani unë kam identifikues unik që unë mund të kërcejnë rreth. 738 00:32:07,690 --> 00:32:11,520 Dhe më mirë se që ende është se Sa i madh është një INT do të jetë përsëri? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 bit ose katër bytes. 741 00:32:15,800 --> 00:32:17,750 >> Sa i madh është emri im do të jetë? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Maksimalisht? 744 00:32:21,990 --> 00:32:22,880 16 bytes. 745 00:32:22,880 --> 00:32:26,080 >> Pra, nëse ju jeni me të vërtetë kujdeseni për performanca e kodit tuaj, 746 00:32:26,080 --> 00:32:31,390 mendoj se mbrapa për PSet5, do të ju preferoni për të kërkuar për një vlerë katër byte ose 16 747 00:32:31,390 --> 00:32:32,240 Vlera e byte, e drejtë? 748 00:32:32,240 --> 00:32:33,810 Me të vërtetë është aq e thjeshtë sa se. 749 00:32:33,810 --> 00:32:38,060 Ju duhet të bëni katër herë më shumë punë për të kërkuar për shkak se ata përdoruesve 750 00:32:38,060 --> 00:32:38,830 16 bytes. 751 00:32:38,830 --> 00:32:41,320 Pra, ju duhet të vërtetë krahasuar të gjitha 16 bytes në jetë 752 00:32:41,320 --> 00:32:43,140 sigurt po, ky është emri i përdoruesit unë dua. 753 00:32:43,140 --> 00:32:46,610 Kurse për një int, ju mund të të bëjë atë me vetëm katër bytes. 754 00:32:46,610 --> 00:32:49,212 >> Dhe si një mënjanë për ata interesuar në të pajisjeve kompjuterike, 755 00:32:49,212 --> 00:32:52,420 kjo rezulton nga ju mund të përshtatet diçka si një INT ose një vlerë të 32-bit në diçka 756 00:32:52,420 --> 00:32:55,330 quhet një regjistër në një kompjuter CPU, që do të thotë se është super, 757 00:32:55,330 --> 00:32:58,400 super të shpejtë, madje edhe në më të ulët Niveli i hardware e kompjuterit. 758 00:32:58,400 --> 00:33:00,530 Pra, nuk është vetëm avantazhe të gjithë rreth. 759 00:33:00,530 --> 00:33:01,530 Pra, çfarë do të thotë kjo? 760 00:33:01,530 --> 00:33:04,850 Në fakt, kur ju jeni të hartonin një Tabela e bazës së të dhënave, pothuajse të gjithë kohës 761 00:33:04,850 --> 00:33:07,170 po ju do të nuk kanë vetëm të dhënat që ju intereson, 762 00:33:07,170 --> 00:33:09,280 por edhe diçka si një identifikues unik 763 00:33:09,280 --> 00:33:11,280 sepse kjo do të le të bëjë gjëra të tjera. 764 00:33:11,280 --> 00:33:13,160 Dhe le të udhëtim mbi një problem këtu. 765 00:33:13,160 --> 00:33:15,990 >> Supozoni që përdoruesit nuk kanë vetëm përdoruesve dhe emrat, 766 00:33:15,990 --> 00:33:19,540 por ata gjithashtu kanë gjëra të tilla si qytetet dhe shtetet dhe kodet zip, të paktën 767 00:33:19,540 --> 00:33:20,432 këtu në SHBA. 768 00:33:20,432 --> 00:33:22,390 Pra, unë jam duke shkuar për të shkuar përpara dhe vetëm thonë shpejt, 769 00:33:22,390 --> 00:33:26,180 më jep tri kolona më shumë në fund të tabelës. 770 00:33:26,180 --> 00:33:28,900 Dhe kjo do të jetë qytetit, kjo do të jetë e shtetit, 771 00:33:28,900 --> 00:33:30,400 dhe kjo do të jetë Kodi postar. 772 00:33:30,400 --> 00:33:32,710 >> Tani lloje City, çfarë të dhënave duhet të jetë kjo, ndoshta? 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 Unë nuk e di se çfarë Qyteti më i gjatë emri është. 776 00:33:37,780 --> 00:33:40,571 Diku në Amerikë, nuk ka ndoshta disa fjalë qesharake të gjatë, 777 00:33:40,571 --> 00:33:43,605 kështu që le të shkojë vetëm me 255, disi historikisht ose arbitrare. 778 00:33:43,605 --> 00:33:44,730 Shtet, ajo që ju doni të bëni? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Thirrje gjykim, e drejtë? 781 00:33:50,367 --> 00:33:51,700 Çfarë është ndoshta më efikas? 782 00:33:51,700 --> 00:33:53,500 Sa karaktere? 783 00:33:53,500 --> 00:33:55,950 Ndoshta vetëm dy, në qoftë se ne mund të ik me bërë vetëm, 784 00:33:55,950 --> 00:33:58,250 si, MA për Massachusetts e kështu me radhë. 785 00:33:58,250 --> 00:34:00,520 Pra, unë jam duke shkuar për të shkuar një vlerë char të dy. 786 00:34:00,520 --> 00:34:03,080 >> Kodi zip është një e interesante. 787 00:34:03,080 --> 00:34:06,679 Ne jemi këtu në 02138, në mënyrë që sugjeron ne duhet të përdorin atë? 788 00:34:06,679 --> 00:34:07,470 Kjo është një int, e drejtë? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, të shkurtër? 791 00:34:12,800 --> 00:34:14,521 Shkurtër do të punojë. 792 00:34:14,521 --> 00:34:15,020 Nuk ka? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR ose pesë, por unë dua një int. 795 00:34:20,870 --> 00:34:23,710 Pse të shtyjë përsëri në një int? 796 00:34:23,710 --> 00:34:26,820 Më të bindur nga kjo. 797 00:34:26,820 --> 00:34:29,210 Çfarë është budalla në lidhje me një int, idenë time? 798 00:34:29,210 --> 00:34:29,871 Po. 799 00:34:29,871 --> 00:34:31,199 >> Audienca: Merrni më shumë memorie. 800 00:34:31,199 --> 00:34:32,909 >> DAVID Malan: Merrni më shumë memorie. 801 00:34:32,909 --> 00:34:35,310 Katër bytes, por ju jeni duke propozuar një kod postar 802 00:34:35,310 --> 00:34:39,000 si pesë bytes ose dikush ishte si një char, i cili ndjehet si eh, kjo nuk është e vërtetë 803 00:34:39,000 --> 00:34:39,620 rasti. 804 00:34:39,620 --> 00:34:40,489 >> E pra, histori fun. 805 00:34:40,489 --> 00:34:43,179 Vite më parë, kur kam përdorur për të përdorur Microsoft Outlook për email tim, 806 00:34:43,179 --> 00:34:45,150 Unë përfundimisht të kërkuar për të kaluar në Gmail. 807 00:34:45,150 --> 00:34:48,949 Dhe kështu, unë eksportuar të gjithë tim kontakte nga Outlook si skedar CSV. 808 00:34:48,949 --> 00:34:50,699 Presje ndarë vlerat, që vetëm do të thotë unë 809 00:34:50,699 --> 00:34:54,060 kishte të gjithë miqtë e mi dhe emrat e kaluar emrat dhe numrat e telefonit dhe kodet zip 810 00:34:54,060 --> 00:34:54,747 dhe të gjithë se. 811 00:34:54,747 --> 00:34:56,580 Dhe pastaj kam bërë gabim e për ta hapur 812 00:34:56,580 --> 00:34:58,640 në Excel, i cili është program spreadsheet që 813 00:34:58,640 --> 00:35:00,289 e kupton fotografi CSV siç e kemi parë. 814 00:35:00,289 --> 00:35:03,080 Por atëherë, unë duhet të ketë goditur, si, Komanda apo Kontrolli S në një pikë. 815 00:35:03,080 --> 00:35:06,250 Dhe Excel me sa duket në kohën kishte një funksion të cilin çdo kohë 816 00:35:06,250 --> 00:35:08,100 pa një numër, ajo u përpoq të jetë e dobishme. 817 00:35:08,100 --> 00:35:11,610 Dhe në qoftë se numri i filluar me zero, ai vetëm do të të shpëtoj prej tyre. 818 00:35:11,610 --> 00:35:13,420 Pse keni nevojë për udhëheqës zero në integers? 819 00:35:13,420 --> 00:35:15,140 Ata janë të pakuptimta, matematikisht. 820 00:35:15,140 --> 00:35:17,530 Ata nuk janë të pakuptimtë në sistemin US Postal. 821 00:35:17,530 --> 00:35:19,954 Pra, unë kam pasur për vite me rradhë, në këtë ditë, unë ende 822 00:35:19,954 --> 00:35:22,370 ke miq që kur rast i rrallë që kam nevojë për dikë është 823 00:35:22,370 --> 00:35:24,078 adresuar këto ditë, Unë ende do të shihni që unë 824 00:35:24,078 --> 00:35:26,767 kanë një mik në Kembrixh, Massachusetts, 2138. 825 00:35:26,767 --> 00:35:29,350 Dhe është i bezdisshëm, nëse ju jeni duke u përpjekur për të zgjidhur të programmatically 826 00:35:29,350 --> 00:35:30,975 gjenerojë zarfat apo thjesht shkruaj atë. 827 00:35:30,975 --> 00:35:33,599 Dhe kjo është për shkak të këtë arsye, Unë zgjodha gabuar llojin e të dhënave. 828 00:35:33,599 --> 00:35:34,490 Pra, unë dua idenë tuaj. 829 00:35:34,490 --> 00:35:35,650 Le të përdorim një fushë Char. 830 00:35:35,650 --> 00:35:38,340 Pesë personazhet, përveç ka një rast qoshe. 831 00:35:38,340 --> 00:35:42,220 Nëse ju ende dërgoni mail, ndonjëherë zip kodet këto ditë, 832 00:35:42,220 --> 00:35:45,360 ata janë, si, plus katër. 833 00:35:45,360 --> 00:35:48,200 Pra, ne kemi nevojë për një vizë ndarëse dhe pastaj ne kemi nevojë për katër numra më shumë. 834 00:35:48,200 --> 00:35:50,330 Pra, të jetë i sinqertë, ajo mund të shkojnë shumë mënyra të ndryshme. 835 00:35:50,330 --> 00:35:52,371 >> Tani për tani, unë jam duke shkuar për të mbajtur atë të thjeshtë dhe unë jam vetëm 836 00:35:52,371 --> 00:35:54,780 do të thonë se kjo është një pesë vlera CHAR dhe ne jemi 837 00:35:54,780 --> 00:35:56,739 do të kaloni të gjithë dash plus katër. 838 00:35:56,739 --> 00:35:58,280 Por këto janë llojet e tradeoffs. 839 00:35:58,280 --> 00:36:00,196 Dhe ju mund të mendoni e problemet e njëjta që dalin 840 00:36:00,196 --> 00:36:01,860 me numrat e telefonit apo fusha të tjera. 841 00:36:01,860 --> 00:36:04,350 >> Dhe tani, kjo është në fakt një rrugë qesharake për të shkuar poshtë. 842 00:36:04,350 --> 00:36:08,000 Supozoni se si Rob dhe unë dhe Anën dhe Maria dhe [? Davon?] Dhe Andy 843 00:36:08,000 --> 00:36:12,820 dhe të tjerët në staf të gjithë të jetojnë në Cambridge, Massachusetts, 02138. 844 00:36:12,820 --> 00:36:17,970 Kjo në fakt të ndjehen budalla se unë jam duke shtuar në tryezën përdoruesit time, Qyteti, Shteti, 845 00:36:17,970 --> 00:36:18,630 dhe zip. 846 00:36:18,630 --> 00:36:20,980 Përse? 847 00:36:20,980 --> 00:36:21,960 >> Audienca: [padëgjueshme] 848 00:36:21,960 --> 00:36:22,918 >> DAVID Malan: Thuaj përsëri? 849 00:36:22,918 --> 00:36:24,310 Audienca: [padëgjueshme] 850 00:36:24,310 --> 00:36:25,850 >> DAVID Malan: Ata janë gjithmonë do të shkojnë së bashku, apo jo? 851 00:36:25,850 --> 00:36:28,660 Kur ajo rezulton, kemi përdorur për të menduar ky ishte rasti deri ne shteruese 852 00:36:28,660 --> 00:36:30,570 Fjalët e të gjithë SHBA, dhe rezulton se nuk 853 00:36:30,570 --> 00:36:32,653 disa mospërputhje ku qytete të shumta kanë 854 00:36:32,653 --> 00:36:35,060 njëjtë postar, e cila është anormal. 855 00:36:35,060 --> 00:36:40,580 Por, në qoftë se ne të parashikojë për tani se 02138 është gjithmonë e Cambridge, Massachusetts, 856 00:36:40,580 --> 00:36:44,910 pse në botë do të keni ruajtur në bazës së të dhënave tuaj të Cambridge dhe MA dhe 02138 857 00:36:44,910 --> 00:36:49,357 për mua dhe për Hannah dhe për Rob dhe për [? Davon?] Dhe për të tjerët që jetojnë 858 00:36:49,357 --> 00:36:51,190 këtu në Kembrixh, është të përkryer të tepërta. 859 00:36:51,190 --> 00:36:54,480 >> Ne duhet të merrni larg me vetëm ruajtjen çfarë? 860 00:36:54,480 --> 00:36:55,610 Vetëm kodin zip. 861 00:36:55,610 --> 00:36:58,660 Por atëherë, në qoftë se ne dyqan vetëm kodi zip, unë dua, ndoshta, 862 00:36:58,660 --> 00:37:02,160 për web faqen time të dinë se ku është 02138. 863 00:37:02,160 --> 00:37:03,910 Kështu që, kam nevojë për një tjetër tryezë. 864 00:37:03,910 --> 00:37:04,697 Dhe kjo është në rregull. 865 00:37:04,697 --> 00:37:07,530 Dhe në fakt, kjo është një nga proceset e projektimit të projektimit tabelave 866 00:37:07,530 --> 00:37:11,472 që ju do të bëni në PSet7 si dhe ku ju doni të faktor nga të dhënat e përbashkëta. 867 00:37:11,472 --> 00:37:14,430 Ashtu si ne kemi qenë factoring jashtë Kodi i zakonshëm dhe factoring jashtë të përbashkët 868 00:37:14,430 --> 00:37:17,380 stilet nga CSS, këtu edhe në bazën e të dhënave, 869 00:37:17,380 --> 00:37:21,180 në qoftë se unë duhet vetëm 02138 në mënyrë unike të identifikuar qytetin e dikujt, 870 00:37:21,180 --> 00:37:25,020 mos ruani Kembrixh, Mass për çdo përdorues i mallkuar në tryezën tuaj. 871 00:37:25,020 --> 00:37:29,770 >> Në vend të kësaj, kanë një tabelë të veçantë të quajtur Zips që duhet të kenë çfarë kolona? 872 00:37:29,770 --> 00:37:33,490 Ndoshta një fushë ID, vetëm për shkak se, për parimet që ne jemi duke folur për tani. 873 00:37:33,490 --> 00:37:35,720 Ndoshta një fushë ZIP për 02138. 874 00:37:35,720 --> 00:37:38,400 Dhe pastaj ndoshta ajo kolona të tjera? 875 00:37:38,400 --> 00:37:42,950 Qytet dhe shtet, por vetëm të ketë një rresht për 02138, një rresht për 02139, 876 00:37:42,950 --> 00:37:44,772 një rresht për 90.210. 877 00:37:44,772 --> 00:37:46,730 Dhe kjo është fjalë për fjalë të gjitha kodet zip unë e di. 878 00:37:46,730 --> 00:37:49,012 >> Deri tani, çfarë mund të bëni? 879 00:37:49,012 --> 00:37:51,220 Kjo është problematike, sepse tani unë kam marrë dy tavolina. 880 00:37:51,220 --> 00:37:54,660 Pra, përdoruesit e mia janë kryesisht gjatë këtu, por tyre Informativ Shtetëror Bashkiak 881 00:37:54,660 --> 00:37:55,390 ketu. 882 00:37:55,390 --> 00:37:58,635 Pra, ajo rezulton me SQL, nuk ka në fakt një mënyrë për t'u bashkuar me informacione, 883 00:37:58,635 --> 00:38:00,470 dhe ju do të shihni këtë në pset. 884 00:38:00,470 --> 00:38:03,000 >> Por kjo rezulton nga ju mund të të bëjë diçka si kjo. 885 00:38:03,000 --> 00:38:10,501 Ylli SELECT nga përdoruesit, JOIN ose arkivë zip ON Përdoruesit dot zip barabartë zips dot zip. 886 00:38:10,501 --> 00:38:13,360 E cila është një fjalëshumë pak, pa dyshim, por kjo vetëm 887 00:38:13,360 --> 00:38:17,590 nënkupton zgjidhni çdo gjë nga Procesi i marrjes së tabela e përdoruesve e mia 888 00:38:17,590 --> 00:38:19,580 dhe tabela zips ime. 889 00:38:19,580 --> 00:38:22,120 Bashkohen me ta në një të fushë ata kanë në kolonën. 890 00:38:22,120 --> 00:38:24,780 Pra, fjalë për fjalë duke bërë diçka si kjo, dhe më jepni mbrapa 891 00:38:24,780 --> 00:38:27,360 një tabelë të re të përkohshme kjo është më e gjerë, kjo është më e madhe, 892 00:38:27,360 --> 00:38:29,450 që ka të gjitha kolona nga dy prej tyre. 893 00:38:29,450 --> 00:38:33,510 Dhe kjo, thjesht, do të jetë Sintaksa për të bërë diçka si kjo. 894 00:38:33,510 --> 00:38:35,540 >> Pra, nuk është kjo përpara, por nuk do 895 00:38:35,540 --> 00:38:38,950 të jenë vendime të tjera të projektimit ju do të duhet të bëjë, jo vetëm me indekset 896 00:38:38,950 --> 00:38:40,550 por edhe drejtimin në sfidat. 897 00:38:40,550 --> 00:38:43,360 Në fakt, ka një sfidë në çdo dizajn bazës së të dhënave 898 00:38:43,360 --> 00:38:47,930 ku nganjëherë dy njerëz mund të dëshironi për të hyrë në të njëjtat rreshtat e të dhënave 899 00:38:47,930 --> 00:38:48,530 tryezë. 900 00:38:48,530 --> 00:38:51,450 Pra, kjo është diçka që ne do të hasni në PSet7 si. 901 00:38:51,450 --> 00:38:54,686 >> Por unë mendova se do të shikojmë në një Sulmi kjo është e mundur në SQL. 902 00:38:54,686 --> 00:38:56,560 Cilat janë disa nga Problemet që mund të lindin? 903 00:38:56,560 --> 00:38:58,170 Pra, ju do të hasni këtë në PSet7. 904 00:38:58,170 --> 00:39:01,874 Dhe ne po ju them të drejtpërdrejtë se çfarë Zgjidhje kodim për këtë problem është. 905 00:39:01,874 --> 00:39:04,790 Por nëse ju merrni një klasë të nivelit të lartë, veçanërisht në sistemet operative, 906 00:39:04,790 --> 00:39:06,950 ju jeni do të ndeshen një çështje e atomicity, 907 00:39:06,950 --> 00:39:10,080 problemi i duke u përpjekur për të bërë gjëra të shumta të gjitha përnjëherë 908 00:39:10,080 --> 00:39:11,000 pa ndërprerje. 909 00:39:11,000 --> 00:39:14,560 >> Dhe unë mendova se do të prezantoj këtë Ideja për PSet7 me një metaforë 910 00:39:14,560 --> 00:39:18,160 që kam mësuar veten në Margo Sistemet operative CS164 ujë mineral-së 911 00:39:18,160 --> 00:39:18,990 klasës vjet më parë. 912 00:39:18,990 --> 00:39:22,230 Supozoni se ju keni një nga këto konvikt frigoriferë në dhomën tuaj fjetore apo shtëpisë, 913 00:39:22,230 --> 00:39:24,474 dhe ju keni një dëshirë të vërtetë për qumësht. 914 00:39:24,474 --> 00:39:27,140 Dhe kështu, ju vijnë në shtëpi nga klasa një ditë, ju hapni frigoriferin. 915 00:39:27,140 --> 00:39:27,620 Oh, mallkuar atë. 916 00:39:27,620 --> 00:39:28,870 Nuk ka qumësht në frigorifer. 917 00:39:28,870 --> 00:39:32,470 Pra, ju mbyllni frigorifer, bllokoj derën, bllokohet konvikt tuaj, 918 00:39:32,470 --> 00:39:34,770 ecin rreth qoshe për të CVS, të marrë në përputhje, 919 00:39:34,770 --> 00:39:36,312 dhe të fillojnë kontrolluar nga për disa qumësht. 920 00:39:36,312 --> 00:39:38,978 Dhe ajo do të marrë një kohë, sepse ato arkë mallkuar vetë 921 00:39:38,978 --> 00:39:40,570 kundërvihet marrë përgjithmonë për të përdorur gjithsesi. 922 00:39:40,570 --> 00:39:41,950 Pra ndërkohë, shokun juaj vjen në shtëpi. 923 00:39:41,950 --> 00:39:43,470 Ai ose ajo me të vërtetë i pëlqen qumësht si. 924 00:39:43,470 --> 00:39:45,520 Ata vijnë në dhomë konvikt, hapur frigoriferin, oh, mallkuar atë. 925 00:39:45,520 --> 00:39:46,490 Nuk ka më shumë qumësht. 926 00:39:46,490 --> 00:39:49,040 >> Pra, ai ose ajo gjithashtu shkon rreth qoshe. 927 00:39:49,040 --> 00:39:51,670 Por tani, pasi nuk ka si dy ose tre ose katër CVSes afër, 928 00:39:51,670 --> 00:39:53,800 ato ndodhin për të shkuar në një nga ato të ndryshme në shesh. 929 00:39:53,800 --> 00:39:55,830 Dhe kështu tani, disa minuta më vonë, të dy prej jush 930 00:39:55,830 --> 00:39:58,060 vijnë në shtëpi dhe ohu, problemi më i keq ndonjëherë. 931 00:39:58,060 --> 00:40:00,967 Tani ju keni qumësht shumë sepse ajo do të shkojë kosi. 932 00:40:00,967 --> 00:40:03,050 Dhe ju pëlqen qumësht, por ju të vërtetë nuk pëlqen qumësht. 933 00:40:03,050 --> 00:40:06,730 >> Deri tani, kjo ishte një e shtrenjtë gabim për shkak të dy prej jush 934 00:40:06,730 --> 00:40:09,870 bërë një vendim të bazuar mbi Gjendja e disa ndryshore që 935 00:40:09,870 --> 00:40:12,660 ishte në procesin e duke u ndryshuar nga ju, 936 00:40:12,660 --> 00:40:14,560 iniciator i shkuar për të marrë qumësht. 937 00:40:14,560 --> 00:40:17,785 Pra, ajo që është ndoshta një njeri zgjidhje për këtë problem? 938 00:40:17,785 --> 00:40:18,660 Audienca: [padëgjueshme] 939 00:40:18,660 --> 00:40:19,430 DAVID Malan: Lini një shënim, e drejtë? 940 00:40:19,430 --> 00:40:21,850 Gjithmonë të lënë një shënim, në qoftë se ju jeni njohur me atë shfaqje. 941 00:40:21,850 --> 00:40:23,100 Po, ka dy prej nesh. 942 00:40:23,100 --> 00:40:25,940 Pra, gjithmonë të lënë një shënim, ose fjalë për fjalë bllokohet frigorifer 943 00:40:25,940 --> 00:40:28,602 me disa lloj dry ose diçka mbi krye si kjo. 944 00:40:28,602 --> 00:40:31,310 Por kjo është në të vërtetë do të jetë Problemi kryesor me dizajn të bazës së të dhënave, 945 00:40:31,310 --> 00:40:34,710 sidomos kur ju mund të keni shfletues të shumta, laptopë të shumta, 946 00:40:34,710 --> 00:40:37,450 përdoruesit të shumta të gjithë duke u përpjekur për përditësimin e informacionit në të njëjtën kohë. 947 00:40:37,450 --> 00:40:40,590 Informacion veçanërisht i ndjeshëm si informacion financiar, 948 00:40:40,590 --> 00:40:43,350 ku me një tregtimin e aksioneve Faqja e internetit si ju do të jetë ndërtimi, 949 00:40:43,350 --> 00:40:47,270 çfarë nëse ju doni të shikoni se sa para ju keni dhe pastaj në qoftë se ju keni mjaft, 950 00:40:47,270 --> 00:40:48,490 blerë disa aksioneve? 951 00:40:48,490 --> 00:40:50,899 >> Por, çfarë nëse dikush tjetër që ka një llogari të përbashkët me ju 952 00:40:50,899 --> 00:40:52,690 është njëkohësisht duke u përpjekur për të blerë disa aksioneve? 953 00:40:52,690 --> 00:40:55,190 Pra, ai ose ajo është kontrolluar Bilanci i llogarisë, të dy prej jush 954 00:40:55,190 --> 00:40:57,540 marrë përsëri të njëjtën gjë përgjigje, nuk ka qumësht. 955 00:40:57,540 --> 00:41:00,580 Ose të dy prej jush të marrë përsëri përgjigjen, ju keni 100 $ në llogari. 956 00:41:00,580 --> 00:41:04,680 Dy prej jush të përpiqet për të marrë vendimin për të blerë një pjesë të disa aksioneve të kompanisë. 957 00:41:04,680 --> 00:41:06,130 >> Dhe tani, çfarë ndodh? 958 00:41:06,130 --> 00:41:07,140 Ju keni dy aksione? 959 00:41:07,140 --> 00:41:08,420 Ju nuk keni aksione? 960 00:41:08,420 --> 00:41:10,320 Problemet si që mund të lindin. 961 00:41:10,320 --> 00:41:11,755 Pra, ne do të hasni se. 962 00:41:11,755 --> 00:41:14,630 Sulmet SQL injeksion, fatmirësisht, janë diçka që ne do të ju ndihmojë me të, 963 00:41:14,630 --> 00:41:17,430 por këto janë atrociously të zakonshme këto ditë ende. 964 00:41:17,430 --> 00:41:18,680 Pra, kjo është vetëm një shembull. 965 00:41:18,680 --> 00:41:21,290 Unë bëj nuk ka pretendime që Sistemi i Harvardit PIN është 966 00:41:21,290 --> 00:41:23,130 të prekshme për këtë sulm të veçantë. 967 00:41:23,130 --> 00:41:24,160 Ne e kemi provuar. 968 00:41:24,160 --> 00:41:26,120 Por, ju e dini se ne kanë një fushë si kjo. 969 00:41:26,120 --> 00:41:29,620 Dhe ID Net Yale ka një të ngjashme kërkim ekran këto ditë. 970 00:41:29,620 --> 00:41:33,190 Dhe kjo rezulton, se ndoshta Sistemi PIN është zbatuar në PHP. 971 00:41:33,190 --> 00:41:37,050 >> Dhe në qoftë se kjo were-- është not-- ata mund të ketë kodin që duket si kjo. 972 00:41:37,050 --> 00:41:38,210 Ata kanë dy variablave. 973 00:41:38,210 --> 00:41:42,495 Më jep emrin e përdoruesit dhe fjalë-kalimin nga ndryshore pas super globale 974 00:41:42,495 --> 00:41:43,970 që kemi biseduar rreth më parë. 975 00:41:43,970 --> 00:41:47,310 Ndoshta Harvardit ka një pyetje si yll Zgjidh nga përdoruesit 976 00:41:47,310 --> 00:41:50,005 ku emri i përdoruesit është e barabartë me atë dhe fjalëkalimin e barabartë me atë. 977 00:41:50,005 --> 00:41:51,880 Dhe vini re se unë jam vetëm mbylljen e saj në përdorimin e 978 00:41:51,880 --> 00:41:55,050 shënimi kaçurrel shtrëngoj nga tjetra ditë, që do të thotë vetëm të vihet në prizë një vlerë 979 00:41:55,050 --> 00:41:55,550 këtu. 980 00:41:55,550 --> 00:41:57,449 Unë nuk jam duke përdorur Pyetja teknikë Mark. 981 00:41:57,449 --> 00:41:59,240 Unë nuk kam asnjë sekondë ose argumentet tretë. 982 00:41:59,240 --> 00:42:02,350 Unë jam vetëm fjalë për fjalë ndërtimin string veten time. 983 00:42:02,350 --> 00:42:04,930 >> Problemi, megjithatë, është se në qoftë se dikush pëlqen një scroob, 984 00:42:04,930 --> 00:42:09,020 i cili është një referencë për një film, shkrimet në me diçka si kjo, 985 00:42:09,020 --> 00:42:11,250 dhe unë kam hequr dots që zakonisht mbuluar 986 00:42:11,250 --> 00:42:14,370 fjalëkalime, çka nëse ai është i veçanërisht me qëllim të keq 987 00:42:14,370 --> 00:42:18,860 dhe fjalëkalimin e tij ndoshta është 12345, për filmin e quajtur "Spaceballs" 988 00:42:18,860 --> 00:42:21,970 por ai kritike Llojet një të japin kuotën e vetme pas pesë, 989 00:42:21,970 --> 00:42:24,790 pastaj fjalë për fjalë fjalë ose në hapësirën, dhe pastaj quote, 990 00:42:24,790 --> 00:42:29,160 një mbyll thonjëzat e barabartë me një kuotë, por ai është lënë jashtë njoftim çfarë? 991 00:42:29,160 --> 00:42:32,700 Ai ka harruar të japin kuotën e në të djathtë dhe ai është lënë pas dore të japin kuotën e në të majtë. 992 00:42:32,700 --> 00:42:35,170 >> Sepse në qoftë se ky sulmues supozim scroob-së 993 00:42:35,170 --> 00:42:38,160 është se njerëzit që ka shkruar ky kod PHP nuk ishin aq të ndritshme, 994 00:42:38,160 --> 00:42:42,990 ndoshta ata vetëm kanë një të vetme citon rreth interpolation 995 00:42:42,990 --> 00:42:45,210 e një ndryshore në formatimin e teksteve kaçurrel? 996 00:42:45,210 --> 00:42:48,620 Dhe kështu që ndoshta, ai mund të lloj e përfunduar mendimin e tyre 997 00:42:48,620 --> 00:42:53,290 për ta, por në një mënyrë që do për të le të hacked në sistemin e PIN. 998 00:42:53,290 --> 00:42:55,310 Me fjalë të tjera, mendoj se ky është kodi 999 00:42:55,310 --> 00:42:57,140 dhe ne tani plug në atë scroob shtypur. 1000 00:42:57,140 --> 00:42:58,770 Dhe kjo është e kuqe, sepse kjo është e keqe. 1001 00:42:58,770 --> 00:43:01,310 >> Dhe teksti themelor është ajo që ai shtypur në, 1002 00:43:01,310 --> 00:43:05,510 scroob mund trick server Harvardit në ndërtimin e një query SQL 1003 00:43:05,510 --> 00:43:07,440 varg që duket si kjo. 1004 00:43:07,440 --> 00:43:11,760 Fjalëkalimi është e barabartë me 12345 ose një është e barabartë një të tillë. 1005 00:43:11,760 --> 00:43:14,820 Rezultati i cili, logjikisht, është se kjo do të hyni scroob 1006 00:43:14,820 --> 00:43:18,360 në qoftë fjalëkalimin e tij është 12345 ose në qoftë se një është e barabartë 1007 00:43:18,360 --> 00:43:22,660 një, e cila është sigurisht gjithmonë e vërtetë, që do të thotë scroob gjithmonë merr në. 1008 00:43:22,660 --> 00:43:26,060 >> Dhe kështu, mënyra për të rregulluar këtë, si në shumë raste, 1009 00:43:26,060 --> 00:43:28,140 do të jenë të shkruar në mbrojtje. 1010 00:43:28,140 --> 00:43:30,390 Për të përdorur diçka si tonë Funksioni aktual pyetje, e cila 1011 00:43:30,390 --> 00:43:33,980 ju do të shihni në PSet7, ku ne plug në diçka si fjalë shënon këtu. 1012 00:43:33,980 --> 00:43:35,980 Dhe bukuria e Funksioni pyetje që ne 1013 00:43:35,980 --> 00:43:40,010 ju jap është ajo mbron kundër këtyre të ashtuquajturat sulme SQL injeksion, ku 1014 00:43:40,010 --> 00:43:44,260 dikush është tricking kodin tuaj në injektuar vetë kodin e tij ose të saj SQL. 1015 00:43:44,260 --> 00:43:47,380 Sepse ajo që funksion query ne japim ju të vërtetë do të bëjë, 1016 00:43:47,380 --> 00:43:51,270 qoftë se ju përdorni sintaksë pikëpyetje dhe një të dytë dhe një Argumenti i tretë këtu, 1017 00:43:51,270 --> 00:43:54,590 është ajo që e bëri atë të shtoni në të dhëna që përdoruesi dhënë? 1018 00:43:54,590 --> 00:43:56,060 Ata backslash citon. 1019 00:43:56,060 --> 00:43:58,590 >> Pra, ajo i shpëton ndonjë potencialisht karaktere të rrezikshme. 1020 00:43:58,590 --> 00:44:01,000 Kjo duket e çuditshme tani, por kjo nuk është e prekshme 1021 00:44:01,000 --> 00:44:03,260 sepse ajo nuk ndryshojë logjikën më 1022 00:44:03,260 --> 00:44:06,470 sepse kjo e tërë fjalëkalimi është tani një citim i vetëm që nuk është, 1023 00:44:06,470 --> 00:44:07,596 në fakt, fjalëkalimi scroob së. 1024 00:44:07,596 --> 00:44:09,845 Pra, ka pasur disa shaka në lidhje me këtë gjatë viteve. 1025 00:44:09,845 --> 00:44:12,570 Pra, kjo ishte një foto të marra e disa geek në një parking 1026 00:44:12,570 --> 00:44:16,620 ku ju mund të dini se disa qytete dhe shteteve të përpiqemi për të scan patentën tuaj 1027 00:44:16,620 --> 00:44:19,460 pjatë të faturojë ju ose për biletë ju në qoftë se ju shkoni nëpër pa, si, 1028 00:44:19,460 --> 00:44:20,660 gjëja E-Z Pass. 1029 00:44:20,660 --> 00:44:24,490 Pra, ky person supozohet se ndoshta njerëzit shkrim sistemin e E-Z Pass 1030 00:44:24,490 --> 00:44:28,240 nuk ishin aq të ndritshme, dhe ndoshta ata concatenated vetëm së bashku një varg, 1031 00:44:28,240 --> 00:44:32,190 në mënyrë që ai ose ajo nuk mund keqdashje jo vetëm të plotë mendimin e tyre, 1032 00:44:32,190 --> 00:44:35,150 por në të vërtetë ekzekutojë një urdhër të keq, të cilat ne nuk kemi përmendur ende, 1033 00:44:35,150 --> 00:44:36,380 por ju mund ndoshta me mend. 1034 00:44:36,380 --> 00:44:39,820 Se përveç për të fshirë dhe futur dhe përditësimin dhe zgjidhni, 1035 00:44:39,820 --> 00:44:43,370 ka gjithashtu një fjalen i quajtur rënie, e cila fjalë për fjalë fshin gjithçka 1036 00:44:43,370 --> 00:44:45,300 në bazën e të dhënave, e cila është veçanërisht e keqe. 1037 00:44:45,300 --> 00:44:48,760 >> Ne mund të zoom në këtë rast kjo është pak e vështirë për të parë. 1038 00:44:48,760 --> 00:44:52,300 Kjo, tashmë, është një karikaturë e famshme kjo është mrekullisht i zgjuar tani 1039 00:44:52,300 --> 00:44:53,145 dhe e kuptueshme. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [Qeshura] 1042 00:45:04,750 --> 00:45:05,910 >> Po, i ftohtë. 1043 00:45:05,910 --> 00:45:06,800 Lloji i geeking jashtë. 1044 00:45:06,800 --> 00:45:08,800 Pra këto, pra, janë Sulmet SQL injeksion. 1045 00:45:08,800 --> 00:45:13,050 Dhe ata janë aq të lehtë për të shmangur duke përdorur kodi i drejtë apo bibliotekat e duhura. 1046 00:45:13,050 --> 00:45:15,947 Dhe ju do të shihni në PSet7, kjo është arsyeja pse ne ju jap funksionin pyetje. 1047 00:45:15,947 --> 00:45:17,780 Pra, një çift i lojëra që ne menduam se do 1048 00:45:17,780 --> 00:45:19,930 ju jap këtu në tonë minuta mbetur së bashku. 1049 00:45:19,930 --> 00:45:24,030 Pra, si ju mbani mend që nga java e zero, ne paraqiti këto dy llamba të lehta që 1050 00:45:24,030 --> 00:45:26,610 janë të bukur, jo vetëm për shkak ata janë mjaft dhe janë të gjallë, 1051 00:45:26,610 --> 00:45:29,450 por për shkak se ata mbështesin diçka quajtur një API, një Aplikimi 1052 00:45:29,450 --> 00:45:31,980 Ndërfaqja për programimin dhe në CS50 deri më tani, ne kemi 1053 00:45:31,980 --> 00:45:34,440 kryesisht u përqëndrua në të merrni dhe POST, por rezulton 1054 00:45:34,440 --> 00:45:37,390 ka HTTP foljet tjera si UPT. 1055 00:45:37,390 --> 00:45:39,430 >> Dhe në fakt, kjo ishte një rrëshqitje nga javë zero 1056 00:45:39,430 --> 00:45:44,930 ku në qoftë se ju shkruani kodin që dërgon a la PSet6 një kërkesë HTTP që 1057 00:45:44,930 --> 00:45:49,647 duket si ky me këtë copë të tekstit në pjesën e poshtme, e cila është e quajtur JSON, 1058 00:45:49,647 --> 00:45:52,230 ose JavaScript Object simbol që ne do të flasim për javën e ardhshme, 1059 00:45:52,230 --> 00:45:57,030 ju mund të kthehet në ose fikur ose ndryshim ngjyra e dritave si ato. 1060 00:45:57,030 --> 00:46:00,480 Pra, nëse CS50 ka edhe përveç disa e këtyre poqat këtu në New Haven 1061 00:46:00,480 --> 00:46:02,480 në qoftë se ju dëshironi për të marrë hua ato për projekte finale, 1062 00:46:02,480 --> 00:46:04,370 edhe disa Microsoft Bands, të cilat janë si 1063 00:46:04,370 --> 00:46:07,619 shikon që ju të veshin rreth dore tuaj që në mënyrë të ngjashme kanë një API në mënyrë që ju 1064 00:46:07,619 --> 00:46:10,040 mund të shkruani software tuaj për ta. 1065 00:46:10,040 --> 00:46:12,490 >> Ne kemi një llogari me Kodi Apple iOS kështu 1066 00:46:12,490 --> 00:46:15,510 se në qoftë se ju keni një Apple Rights Watch apo një iPhone ose një iPad apo një iPod, 1067 00:46:15,510 --> 00:46:17,707 ju mund të shkruani kodin që në fakt shkon në ato. 1068 00:46:17,707 --> 00:46:19,540 Ne kemi një bandë e tërë e Arduinos, të cilat janë 1069 00:46:19,540 --> 00:46:22,010 kompjutera vogël pak pa raste, në thelb, 1070 00:46:22,010 --> 00:46:25,240 që ju mund të lidheni përmes USB, në mënyrë tipike në Mac tuaj apo PC, 1071 00:46:25,240 --> 00:46:28,810 shkruani kodin që shkon në këto fizik pajisjet që shpesh kanë sensorë mbi ta 1072 00:46:28,810 --> 00:46:30,790 kështu që ju mund të ndërveprojnë me botën reale. 1073 00:46:30,790 --> 00:46:32,860 Ne kemi një bandë e tërë e pajisjeve Leap Motion, 1074 00:46:32,860 --> 00:46:36,500 të cilat janë pajisje USB për Macs dhe PC, këtu dhe përsëri, në New Haven. 1075 00:46:36,500 --> 00:46:40,080 Dhe në qoftë se ju lidhë atë në Mac tuaj, ju në fakt mund të kontrollojë kompjuterin tuaj 1076 00:46:40,080 --> 00:46:42,550 duke shkruar software që nëpërmjet trarëve infra të kuqe, 1077 00:46:42,550 --> 00:46:46,360 kupton ku duart tuaja njerëzore janë, edhe pa e prekur tastierën tuaj. 1078 00:46:46,360 --> 00:46:49,135 Ne menduam se do të ndajnë një të shpejtë paraqitje e shkurtër në këtë, për shembull. 1079 00:46:49,135 --> 00:46:51,428 >> [Muzika] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Pra, ne kemi një tërësi bandë e këtyre gjërave, 1082 00:47:57,590 --> 00:48:01,040 gjithashtu, i quajtur Myo bandat krah që ju të vënë mbi parakrah tuaj 1083 00:48:01,040 --> 00:48:04,595 dhe pastaj ju mund të kontrollojë e vërtetë bota, bota virtuale si kjo. 1084 00:48:04,595 --> 00:48:06,471 >> [Muzika] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Ose, ne gjithashtu kemi disa Google Kartoni, e cila është fjalë për fjalë, si, 1087 00:49:20,920 --> 00:49:24,841 një kuti kartoni ju mund të vënë në tuaj fytyrë, por rrëshqitje në telefonin tuaj në të 1088 00:49:24,841 --> 00:49:27,590 kështu që ju vënë gotë tuaj telefon me të vërtetë afër sytë tuaj. 1089 00:49:27,590 --> 00:49:30,190 Dhe Google karton është mjaft të lirë në $ 10 ose $ 20. 1090 00:49:30,190 --> 00:49:32,230 Dhe ajo ka lente pak që pak jashtë ndryshim 1091 00:49:32,230 --> 00:49:35,900 imazhi në ekran për të njeriut tuaj sy për të ju jap një ndjenjë të thellë 1092 00:49:35,900 --> 00:49:39,550 kështu që ju në të vërtetë keni një 3D Mjedisi në para jush. 1093 00:49:39,550 --> 00:49:42,927 Ne gjithashtu kemi disa Samsung Gear, e cila është versioni më të shtrenjtë të kësaj, 1094 00:49:42,927 --> 00:49:46,010 por që në mënyrë të ngjashme mund të rrëshqas në një Telefon Android dhe t'ju japë iluzionin 1095 00:49:46,010 --> 00:49:48,309 of-- ose të japë përvojë e realitetit virtual. 1096 00:49:48,309 --> 00:49:50,850 Dhe në dy minuta tonë përfundimtar, ne menduam se do të përpiqemi për të bërë këtë. 1097 00:49:50,850 --> 00:49:55,250 Në qoftë se unë mund të projektit çfarë Colton ka këtu vetëm për të ngjall oreksin tuaj, 1098 00:49:55,250 --> 00:49:58,442 më lejoni të shkoj përpara dhe të hedhin up në ekranin e madh këtu. 1099 00:49:58,442 --> 00:49:59,400 Më lejoni të vrasin dritat. 1100 00:49:59,400 --> 00:50:02,290 Colton, ju doni të shkoni përpara dhe vënë në qelinë tuaj për një moment 1101 00:50:02,290 --> 00:50:05,171 dhe eja mbi të mes të fazës së? 1102 00:50:05,171 --> 00:50:07,420 Dhe nuk ju duan të project-- kjo është ajo që sheh Colton. 1103 00:50:07,420 --> 00:50:10,560 >> Tani, Wi-Fi në këtu është jo aq i fortë për këtë pajisje 1104 00:50:10,560 --> 00:50:13,870 se kjo është super bindëse, por Colton është fjalë për fjalë 1105 00:50:13,870 --> 00:50:15,710 në këtë vend magjik futuristic. 1106 00:50:15,710 --> 00:50:16,796 Ai e sheh vetëm një imazh. 1107 00:50:16,796 --> 00:50:19,920 Ju jeni duke parë syrin e tij të majtë dhe të djathtë se truri i tij janë qepur së bashku 1108 00:50:19,920 --> 00:50:22,260 në një tre dimensionale Mjedisi në fytyrën e tij. 1109 00:50:22,260 --> 00:50:24,319 Ai është zgjedhur vetëm një opsion menu këtu. 1110 00:50:24,319 --> 00:50:27,360 Dhe kështu përsëri, ai është i veshur me këtë kufje me një telefon Samsung në atë që është 1111 00:50:27,360 --> 00:50:29,080 valë projektuar për të sipërm tonë. 1112 00:50:29,080 --> 00:50:30,349 Tani ju jeni në Mars, unë mendoj se? 1113 00:50:30,349 --> 00:50:31,140 COLTON: Unë mendoj kështu. 1114 00:50:31,140 --> 00:50:32,181 Unë nuk jam i sigurt [e padëgjueshme]. 1115 00:50:32,181 --> 00:50:34,250 [Qeshura] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID Malan: Rezulton Marsi ka këto menutë. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [padëgjueshme] disa cool Vendet në qoftë se ne duam të shkojnë to-- 1118 00:50:41,590 --> 00:50:43,330 >> DAVID Malan: Ku duam të shkojmë? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [padëgjueshme] 1120 00:50:45,837 --> 00:50:48,170 DAVID Malan: Dhe le të shohim ku Colton të marrë na tani. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [padëgjueshme] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID Malan: Pra, nuk ka aq shumë vende të ndryshme ju mund të merrni veten. 1124 00:50:56,380 --> 00:51:00,590 Ka FAPIs nëpërmjet të cilës ju mund të shkruaj lojra apo bashkëveprimet që 1125 00:51:00,590 --> 00:51:01,950 drejtuar, në fund të fundit, në telefon. 1126 00:51:01,950 --> 00:51:03,908 Pra, ju me të vërtetë vetëm të shkruarit e një app të telefonisë mobile. 1127 00:51:03,908 --> 00:51:06,380 Por në sajë të softuerit dhe aftësitë grafike, 1128 00:51:06,380 --> 00:51:08,765 tani Colton është në këtë vilë vogël pak. 1129 00:51:08,765 --> 00:51:10,515 Dhe në rrezikun e mbingarkuar veten, 1130 00:51:10,515 --> 00:51:13,330 Colton dhe unë do të rrinë rreth e rrotull për ndërsa në fund të klasës sot këtu 1131 00:51:13,330 --> 00:51:14,300 në qoftë se ju dëshironi të dalë dhe të luajnë. 1132 00:51:14,300 --> 00:51:16,350 Dhe ne do të sjellë ato përsëri javën e ardhshme, si dhe. 1133 00:51:16,350 --> 00:51:18,420 Pa më tej, ado kjo është ajo për sot. 1134 00:51:18,420 --> 00:51:21,990 Ne do të shihemi javën e ardhshme. 1135 00:51:21,990 --> 00:51:24,140 >> [MUSIC - RAGGA TWINS "MAN KEQ"] 1136 00:51:24,140 --> 00:55:23,146