1 00:00:00,000 --> 00:00:02,405 >> [Mūzikas atskaņošanai] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVID Malan: Labi, tas ir CS50. 4 00:00:11,980 --> 00:00:13,740 Tas ir beigu nedēļas astoņiem. 5 00:00:13,740 --> 00:00:15,887 Un šodien, mēs sākam aizpildīt dažos gabalos 6 00:00:15,887 --> 00:00:17,720 kad runa ir par ēkas lietas tīmeklī. 7 00:00:17,720 --> 00:00:20,020 Tātad, atgādināt, ka pirmdien mēs pavadīt daudz vairāk laika 8 00:00:20,020 --> 00:00:22,530 uz PHP, kas ir šī dinamiskā programmēšanas valoda, kas 9 00:00:22,530 --> 00:00:26,872 ļauj mums produkciju, cita starpā lietas, HTML un citu šādu saturu 10 00:00:26,872 --> 00:00:27,830 ka mēs vēlamies redzēt. 11 00:00:27,830 --> 00:00:30,871 Bet mēs neesam īsti paskatījās kā mēs spēsim saglabāt jebkādu informāciju. 12 00:00:30,871 --> 00:00:34,477 Patiešām, gandrīz jebkuru, ka super interesanti mājas lapas jūs apmeklējat šodien 13 00:00:34,477 --> 00:00:36,560 ir sava veida datu bāzi uz muguras beigās, vai ne? 14 00:00:36,560 --> 00:00:39,540 Facebook noteikti saglabā daudz datu Par mums visiem un Gmail veikalos visi 15 00:00:39,540 --> 00:00:40,210 Jūsu e-pastiem. 16 00:00:40,210 --> 00:00:44,150 >> Un tā, daudzas citas vietas ir ne tikai Statiskā informācija, kas ir informatīvs. 17 00:00:44,150 --> 00:00:45,640 Tas ir tiešām dinamisks kaut kādā veidā. 18 00:00:45,640 --> 00:00:48,480 Jūs sniedzat ievadi, tas aktualizē lapas par citiem cilvēkiem. 19 00:00:48,480 --> 00:00:50,620 Jūs saņemsiet ziņas, jūs sūtīt ziņas, un tā tālāk. 20 00:00:50,620 --> 00:00:54,250 Tātad šodien, mēs apskatīt tuvāk par pamatojumu par projekta 21 00:00:54,250 --> 00:00:57,330 ka jūs ienirt blakus nedēļa, CS50 Finance, kas 22 00:00:57,330 --> 00:01:00,509 ir tiešām nāksies jums veidot kaut kas nav C, bet PHP. 23 00:01:00,509 --> 00:01:02,550 Mājas lapu, kas izskatās mazliet kaut kas līdzīgs šim 24 00:01:02,550 --> 00:01:05,810 kas ļauj pirkt un pārdot krājumi, kas ir faktiski 25 00:01:05,810 --> 00:01:09,044 gatavojas izdarīt pēc reālā laikā krājumu datus no Yahoo Finance. 26 00:01:09,044 --> 00:01:11,960 Un tā galu galā, jums ir ilūzija par sevi un lietotājiem 27 00:01:11,960 --> 00:01:14,550 ka jūs faktiski pērk un pārdod krājumi un kļūst gandrīz reālā laikā 28 00:01:14,550 --> 00:01:16,800 atjauninājumus, pārvaldīt portfelis, no kurām visas 29 00:01:16,800 --> 00:01:20,310 gatavojas pieprasīt, kam, galu galā, datu bāzes lietotāju. 30 00:01:20,310 --> 00:01:23,330 >> Tātad, saviem vārdiem, it īpaši, ja jūs neesat 31 00:01:23,330 --> 00:01:25,670 super iepazinušies ar datoru zinātne vai datubāzes, ko 32 00:01:25,670 --> 00:01:30,790 Vai jūs zināt datubāzi, lai būtu tieši tagad, jo netehniskiem izteiksmē? 33 00:01:30,790 --> 00:01:32,300 Kas tas ir? 34 00:01:32,300 --> 00:01:36,882 Kā Jūs raksturotu to ar kaimiņiem vai pa e-pastu? 35 00:01:36,882 --> 00:01:40,100 >> Mērķauditorija: [dzirdams] Informācija [dzirdams] 36 00:01:40,100 --> 00:01:44,430 >> DAVID Malan: Tātad, informācijas saraksts, vai store-- sarakstu informācijas 37 00:01:44,430 --> 00:01:47,160 ka jūs varētu vēlēties, lai saglabātu par kaut ko, piemēram, lietotāju. 38 00:01:47,160 --> 00:01:50,190 Un ko darīt lietotājiem saistīta ar viņiem? 39 00:01:50,190 --> 00:01:53,160 Ja esat lietotājs Facebook vai Gmail, kādas ir pazīmes 40 00:01:53,160 --> 00:01:54,940 ka mums visiem lietotājiem ir? 41 00:01:54,940 --> 00:01:58,530 Tāpat, kādi varētu būt daži no kolonnas izklājlapu uz kuru mēs 42 00:01:58,530 --> 00:01:59,390 pieminēja pēdējo reizi? 43 00:01:59,390 --> 00:02:01,140 Jo atkal, jūs varat domā par datubāzes 44 00:02:01,140 --> 00:02:05,810 tiešām kā iedomātā Excel failā vai Google Izklājlapu vai Apple Numbers failu. 45 00:02:05,810 --> 00:02:08,280 >> Tātad, ko jūs domājat par kad jūs domājat par lietotāju? 46 00:02:08,280 --> 00:02:11,290 Kas viņi ir? 47 00:02:11,290 --> 00:02:11,790 Kas tas ir? 48 00:02:11,790 --> 00:02:12,470 >> Mērķauditorija: Nosaukumu. 49 00:02:12,470 --> 00:02:13,303 >> DAVID Malan: Nosaukumu. 50 00:02:13,303 --> 00:02:16,840 Tātad, ja nosaukums, piemēram, David Malan būtu nosaukums kāda lietotāja. 51 00:02:16,840 --> 00:02:17,980 Ko vēl dara lietotājs ir? 52 00:02:17,980 --> 00:02:18,770 >> Mērķauditorija: ID. 53 00:02:18,770 --> 00:02:19,561 >> DAVID Malan: An ID. 54 00:02:19,561 --> 00:02:23,320 Tātad, piemēram, identifikācijas numuru, piemēram, jūsu Harvard ID vai jūsu Yale Net ID vai tamlīdzīgi. 55 00:02:23,320 --> 00:02:24,923 Ko vēl varētu lietotājam ir? 56 00:02:24,923 --> 00:02:25,890 >> Mērķauditorija: Parole. 57 00:02:25,890 --> 00:02:29,240 >> DAVID Malan: parole, varbūt adrese, varbūt tālruņa numuru, varbūt 58 00:02:29,240 --> 00:02:30,050 e-pasta adresi. 59 00:02:30,050 --> 00:02:32,640 Tātad, tur ir ķekarus laukiem un tas varētu veida spirāli no kontroles 60 00:02:32,640 --> 00:02:34,760 ātri tiklīdz sākat saprotot, ak, pieņemsim saglabāt šo 61 00:02:34,760 --> 00:02:36,190 un pieņemsim saglabāt šo un to. 62 00:02:36,190 --> 00:02:37,657 >> Bet kā mēs patiesībā darīt? 63 00:02:37,657 --> 00:02:39,740 Tātad vēlreiz, garīgās modelis ir šodien, kā mēs 64 00:02:39,740 --> 00:02:42,320 nodoties faktisko SQL, Strukturēts Query Language, 65 00:02:42,320 --> 00:02:44,186 ir datu bāze, kas izskatās šādi. 66 00:02:44,186 --> 00:02:45,310 Tas ir tikai rindas un kolonnas. 67 00:02:45,310 --> 00:02:48,309 Un jūs varat iedomāties Google izklājlapas vai kādu citu programmu skaits. 68 00:02:48,309 --> 00:02:52,130 Bet kas ir galvenais par MySQL, kas ir datu bāzes programmatūra mēs spēsim izmantot, 69 00:02:52,130 --> 00:02:54,920 brīvprātīgu atklāti available-- Facebook lietojumi 70 00:02:54,920 --> 00:02:59,200 tā un jebkuru citu websites-- skaits datubāzē glabājas lietas relationally. 71 00:02:59,200 --> 00:03:01,770 Un relāciju datu bāze nozīmē tikai vienu, ka burtiski 72 00:03:01,770 --> 00:03:03,672 glabā savus datus rindās un kolonnās. 73 00:03:03,672 --> 00:03:04,630 Tas ir tik vienkārši. 74 00:03:04,630 --> 00:03:07,230 >> Tātad, pat kaut kā Oracle, ka Jums varētu būt vispār dzirdējuši par 75 00:03:07,230 --> 00:03:08,271 ir relāciju datu bāze. 76 00:03:08,271 --> 00:03:10,929 Un zem motora pārsega, to glabā datus rindās un kolonnās. 77 00:03:10,929 --> 00:03:12,970 Un Oracle jums jāmaksā daudz naudas, lai to izdarītu, 78 00:03:12,970 --> 00:03:15,550 tā kā MySQL maksas jums nekas par to pašu. 79 00:03:15,550 --> 00:03:18,790 Tātad, SQL gatavojas sniegt mums vismaz četras operācijas. 80 00:03:18,790 --> 00:03:23,190 Spēja atlasīt datus, piemēram, lasīt dati, ievietot, dzēst, un atjaunināt datus. 81 00:03:23,190 --> 00:03:25,525 Citiem vārdiem sakot, tie ir tiešām četras galvenās darbības 82 00:03:25,525 --> 00:03:28,950 kas gatavojas ļauj mums, lai mainītu sīkumi tajās rindās un kolonnās. 83 00:03:28,950 --> 00:03:33,250 >> Rīks, ka mēs izmantosim īpaši šodien mācīties SQL un spēlēt ar to 84 00:03:33,250 --> 00:03:34,627 atkal sauc PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 Tas ir tīmekļa rīks. 86 00:03:35,460 --> 00:03:38,200 Kopā nejaušība, ka tas ir uzrakstīts PHP. 87 00:03:38,200 --> 00:03:42,400 Bet tas notiek, lai dotu mums grafisko lietotāja interfeisu, lai mēs varētu reāli 88 00:03:42,400 --> 00:03:46,054 izveidot šīs rindas un kolonnas un tad runāt ar viņiem, izmantojot kodu. 89 00:03:46,054 --> 00:03:47,970 Tātad, pieņemsim tagad sāk tas, ko es domāju, ka ir atklāti 90 00:03:47,970 --> 00:03:51,000 veida fun procesā ēkas atpakaļ beigām mājas lapas, 91 00:03:51,000 --> 00:03:54,580 daļas, kas lietotājiem nav redzēt, bet, protams, darīt rūp, 92 00:03:54,580 --> 00:03:56,170 jo tas ir diezgan datu notiek. 93 00:03:56,170 --> 00:03:59,570 Tātad, līdzīgi kā C un A nedaudz mazāk kā PHP, 94 00:03:59,570 --> 00:04:04,954 SQL, vai datu bāze, kas atbalsta SQL, ir vismaz šie datu tipi 95 00:04:04,954 --> 00:04:05,870 un ķekarus citiem. 96 00:04:05,870 --> 00:04:08,107 CHAR, VARCHAR, INT, BIGINT, Decimal, un DATETIME. 97 00:04:08,107 --> 00:04:09,940 Un tur ir viss ķekars citas funkcijas, 98 00:04:09,940 --> 00:04:11,940 bet pieņemsim izdarīt veids faktisko piemērs. 99 00:04:11,940 --> 00:04:16,450 >> Es iešu uz CS50 IDE kur, iepriekš, es esmu pieteicies 100 00:04:16,450 --> 00:04:19,372 un es esmu arī apmeklēja URL Šis rīks sauc PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 Un problēma noteikti septiņi, mēs jums pastāstīt jums tieši tā, kā nokļūt uz šo interfeisu 102 00:04:22,580 --> 00:04:23,200 arī. 103 00:04:23,200 --> 00:04:25,640 Augšējā kreisajā stūrī, pamanāt, ka tas saka lekciju. 104 00:04:25,640 --> 00:04:27,610 Un tas tikai nozīmē, ka iepriekš, es izveidots 105 00:04:27,610 --> 00:04:31,360 tukšu datu bāzi sauc lekcija ka nav izklājlapas to vēl. 106 00:04:31,360 --> 00:04:32,600 Nav rindas un kolonnas. 107 00:04:32,600 --> 00:04:34,308 Tā kā pirmais lieta, ko mēs gatavojamies darīt 108 00:04:34,308 --> 00:04:37,100 ir sākt, lai izveidotu tabulu kas notiek, lai saglabātu mūsu lietotājiem. 109 00:04:37,100 --> 00:04:39,100 >> Tātad, burtiski pāri šeit pa labi, es esmu 110 00:04:39,100 --> 00:04:42,070 gatavojas pateikt datu bāzi Es gribu galda sauc lietotājiem. 111 00:04:42,070 --> 00:04:44,845 Tātad, tas ir kā failu, kas man vēlaties saglabāt visas manas datu. 112 00:04:44,845 --> 00:04:45,720 Un cik kolonnas? 113 00:04:45,720 --> 00:04:47,740 Nu, pieņemsim glabā to vienkārši tagad. 114 00:04:47,740 --> 00:04:51,855 Es tikai vēlos, lai saglabātu Like lietotājvārdu un nosaukumu lietotājam. 115 00:04:51,855 --> 00:04:53,020 Mēs sāksim maza. 116 00:04:53,020 --> 00:04:55,370 Tātad, es gribu divas slejas kopā. 117 00:04:55,370 --> 00:04:57,360 Un es iešu uz priekšu un noklikšķiniet uz Aiziet. 118 00:04:57,360 --> 00:04:59,210 Un tad, lai tie kolonnas, ko es esmu gatavojas 119 00:04:59,210 --> 00:05:04,576 uz do-- ja šo internetā cooperates-- visas tiesības, 120 00:05:04,576 --> 00:05:05,950 tāpēc mēs esam gatavojas izmēģināt, ka vēlreiz. 121 00:05:05,950 --> 00:05:09,180 Es esmu gatavojas izveidot tabulu sauc Lietotāji ar divām kolonnām, noklikšķiniet uz Aiziet, OK. 122 00:05:09,180 --> 00:05:10,520 Tagad mēs esam ieguvuši tas tiešām ātri. 123 00:05:10,520 --> 00:05:12,065 Paldies, ļoti labi darīts. 124 00:05:12,065 --> 00:05:14,440 Labi, lai to, ko mēs gribam šīs slejas varētu saukt? 125 00:05:14,440 --> 00:05:16,080 >> Tātad, viens gatavojas saukt Delfi. 126 00:05:16,080 --> 00:05:19,480 Tātad, viss, es redzu here-- un interfeiss atklāti kļūst nedaudz neglīts beidzot, 127 00:05:19,480 --> 00:05:21,270 Kad sākat rakstīt visu šo datu. 128 00:05:21,270 --> 00:05:27,450 Bet to, kas ir jauki, ir, ka sava veida paradoksāli, es esmu radot kolonnas, 129 00:05:27,450 --> 00:05:29,977 bet rīks ir muļķīgi kas tos rindās 130 00:05:29,977 --> 00:05:31,560 lai es varētu konfigurēt šos kolonnas. 131 00:05:31,560 --> 00:05:33,550 Tātad, tur ir divas sagataves tur zem nosaukums. 132 00:05:33,550 --> 00:05:36,180 Un viena no šīm jomām I gribu sauc Delfi, 133 00:05:36,180 --> 00:05:38,000 un otrs lauks es vēlos, lai izsauktu vārdu. 134 00:05:38,000 --> 00:05:40,340 >> Un tagad man ir jāizvēlas datu tipi par šīm lietām. 135 00:05:40,340 --> 00:05:42,330 Tātad, tā kā Excel un Google izklājlapas, 136 00:05:42,330 --> 00:05:45,531 ja jūs vēlaties, kolonnu, tu burtiski vienkārši ierakstiet nosaukumu vai lietotājvārdu, hit Enter. 137 00:05:45,531 --> 00:05:48,030 Varbūt jūs darīt to treknrakstā tikai skaidrības labad, bet tas arī viss. 138 00:05:48,030 --> 00:05:50,140 Jums nav precizētu veidi kolonnām. 139 00:05:50,140 --> 00:05:53,790 Tagad Google izklājlapas vai Excel, jums var norādīt, kā dati tiek padarīti. 140 00:05:53,790 --> 00:05:58,120 Jūs varētu doties uz izvēlni Format, un jūs var norādīt parādīt šo kā dolāra zīmi, 141 00:05:58,120 --> 00:05:59,900 parādīt šo kā peldoša punktu vērtības. 142 00:05:59,900 --> 00:06:01,990 >> Tātad, tas ir līdzīgs garā uz ka tas, ko mēs esam par to, ko darīt, 143 00:06:01,990 --> 00:06:04,740 bet tas ir patiešām gatavojas piespiest datus, lai būtu konkrēta veida. 144 00:06:04,740 --> 00:06:07,750 Tagad, lai gan pirms brīža es teica, tur ir tikai dažas datu tipi, 145 00:06:07,750 --> 00:06:11,120 tur tiešām visai daudz, un viņi 146 00:06:11,120 --> 00:06:12,910 dažādas pakāpes specifiku. 147 00:06:12,910 --> 00:06:14,970 Un kā malā, jūs var pat darīt iedomātā lietas 148 00:06:14,970 --> 00:06:17,520 piemēram, uzglabāšanas ģeometrijas iekšpusē datubāzē. 149 00:06:17,520 --> 00:06:19,250 Jūs varat uzglabāt lietas piemēram, GPS koordinātas 150 00:06:19,250 --> 00:06:22,420 un faktiski atrast, matemātiski, punkti, kas ir tuvu citiem. 151 00:06:22,420 --> 00:06:24,128 Bet mēs ejam uz saglabāt šo super vienkārši 152 00:06:24,128 --> 00:06:26,800 un iet līdz šeit visi tā sauktās stīgu veidi. 153 00:06:26,800 --> 00:06:29,240 >> Tātad, šeit ir saraksts ar A viss ķekars iespējām. 154 00:06:29,240 --> 00:06:32,740 CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 Un tas ir sava veida milzīgs. 156 00:06:34,110 --> 00:06:37,610 Un diemžēl, nedaudz paradoksāli C, 157 00:06:37,610 --> 00:06:40,120 char nav īsti CHAR. 158 00:06:40,120 --> 00:06:44,170 Ja jūs norādiet datubāzē ka jūsu datu tips ir CHAR, 159 00:06:44,170 --> 00:06:47,390 tas nozīmē, ka jā, tas ir CHAR, bet tas ir viens vai vairāki simboli. 160 00:06:47,390 --> 00:06:49,630 Un jums ir jānorāda cik chars vēlaties. 161 00:06:49,630 --> 00:06:51,636 Tātad, kas ir tipisks garums lietotājvārdu? 162 00:06:51,636 --> 00:06:52,760 Vai pastāv ierobežojums parasti? 163 00:06:52,760 --> 00:06:53,920 >> Mērķauditorija: [dzirdams] 164 00:06:53,920 --> 00:06:55,050 >> DAVID Malan: 16 varbūt? 165 00:06:55,050 --> 00:06:55,990 Kaut kas tamlīdzīgs. 166 00:06:55,990 --> 00:06:57,948 Jūs zināt, atpakaļ diena, tas izmanto, lai būtu astoņi. 167 00:06:57,948 --> 00:07:00,289 Dažreiz tas ir 16, dažreiz tas ir pat vairāk, nekā to. 168 00:07:00,289 --> 00:07:02,080 Un tā, tas nav nozīmēt dod man vienu CHAR. 169 00:07:02,080 --> 00:07:04,730 Tas nozīmē, ka man ir jānorāda garums lauka, 170 00:07:04,730 --> 00:07:07,402 un tagad es varētu teikt kaut ko līdzīgu 16. 171 00:07:07,402 --> 00:07:08,610 Un tur ir tirdzniecības off šeit. 172 00:07:08,610 --> 00:07:11,360 Tātad, mēs redzēsim pēc brīža ka šī ir viena, 173 00:07:11,360 --> 00:07:14,620 katrs lietotājvārds ir jābūt 16 rakstzīmes. 174 00:07:14,620 --> 00:07:18,720 Bet pagaidiet minūti, M-A-L-A-N. Ja tas ir my username un es esmu tikai ar pieci, 175 00:07:18,720 --> 00:07:23,070 ko jūs ierosināt, ka datubāze darīt pārējiem 11 rakstzīmes, kas 176 00:07:23,070 --> 00:07:24,471 Esmu rezervētas vietas? 177 00:07:24,471 --> 00:07:25,220 Ko tu darītu? 178 00:07:25,220 --> 00:07:26,480 >> Mērķauditorija: [dzirdams] 179 00:07:26,480 --> 00:07:27,160 >> DAVID Malan: Jā, tikai dara tos visiem null. 180 00:07:27,160 --> 00:07:28,290 Padarīt viņiem atstarpes. 181 00:07:28,290 --> 00:07:30,816 Bet, iespējams, null, tāpēc no slīpsvītru nullēm daudz. 182 00:07:30,816 --> 00:07:33,190 Tātad, no vienas puses, mēs esam tagad ir pārliecināts, ka mans lietotājvārds 183 00:07:33,190 --> 00:07:34,780 var būt ne vairāk kā 16 rakstzīmes. 184 00:07:34,780 --> 00:07:37,590 Un otra puse, kas ir ka, ja man bija ļoti garš nosaukums 185 00:07:37,590 --> 00:07:39,940 vai gribēja ļoti ilgi lietotājvārdu, piemēram, daži no jums 186 00:07:39,940 --> 00:07:44,840 puiši varētu būt šajā koledžā vai pie Yale.edu, jūs nevarat būt viens. 187 00:07:44,840 --> 00:07:47,177 Un tā patiesībā, ja esat jebkad reģistrēts mājas lapā 188 00:07:47,177 --> 00:07:49,385 un jums kliedza pie sakot Jūsu parole ir pārāk garš 189 00:07:49,385 --> 00:07:52,710 vai jūsu lietotājvārds ir pārāk garš, tas ir vienkārši tāpēc, ka programmētājs, kad 190 00:07:52,710 --> 00:07:55,500 konfigurējot savu datu bāzi, nolēma, ka šajā jomā 191 00:07:55,500 --> 00:07:57,150 nav ilgāks par šo garumu. 192 00:07:57,150 --> 00:08:00,580 >> Labi, lai to, ko tad, ja mēs turpināt nosaukt? 193 00:08:00,580 --> 00:08:05,240 Cik ilgi tipisks Cilvēka vārds būt? 194 00:08:05,240 --> 00:08:07,492 Cik daudz rakstzīmes, 16? 195 00:08:07,492 --> 00:08:09,450 Es esmu guessing varējām atrast kādu šajā telpā 196 00:08:09,450 --> 00:08:13,210 ja viņa vai viņas pirmā plus pēdējās nosaukums ir garāks par 16 simboliem. 197 00:08:13,210 --> 00:08:14,850 Tātad, kas ir labāk nekā tas, 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 >> Mērķauditorija: [dzirdams] 203 00:08:21,855 --> 00:08:23,700 DAVID Malan: 5000, ak mans Dievs. 204 00:08:23,700 --> 00:08:26,309 Tātad, tas ir iespējams, pienācīgas augšējā robeža, teiksim. 205 00:08:26,309 --> 00:08:28,350 Un šeit mēs veida ir spriest zvanu. 206 00:08:28,350 --> 00:08:30,400 Tāpat, nav pareizā atbilde šeit. 207 00:08:30,400 --> 00:08:32,740 Infinite nav gluži iespējams, jo mēs esam beidzot 208 00:08:32,740 --> 00:08:34,781 gatavojas have-- mēs esam gatavojas palaist no atmiņas. 209 00:08:34,781 --> 00:08:36,909 Tātad, mums ir padarīt spriedums zvanu kādā brīdī. 210 00:08:36,909 --> 00:08:41,010 >> Ļoti bieži būtu, piemēram, lai use-- un ļaujiet man norādīt CHAR šeit 211 00:08:41,010 --> 00:08:46,050 kā before-- 255 bija burtiski augšējā robeža uz šo datu bāzes programmatūra 212 00:08:46,050 --> 00:08:46,700 gadiem. 213 00:08:46,700 --> 00:08:48,575 Un tā, daudz cilvēku vēlētos teikt, naudas sodu. 214 00:08:48,575 --> 00:08:49,420 255 ir robeža. 215 00:08:49,420 --> 00:08:50,620 Pieņemsim tikai izmantot maksimāli. 216 00:08:50,620 --> 00:08:51,870 Un tas ir diezgan smieklīgi. 217 00:08:51,870 --> 00:08:55,060 Tāpat, ja jūs rakstāt kāds ir nosaukt par 200 plus rakstzīmes, 218 00:08:55,060 --> 00:08:56,140 ka mazliet smieklīgi. 219 00:08:56,140 --> 00:08:59,624 >> Bet atcerieties, ka ASCII nav vienīgā sistēma rakstzīmes. 220 00:08:59,624 --> 00:09:01,540 Un tā, it īpaši Āzijas valodu daudz 221 00:09:01,540 --> 00:09:04,248 kur tur ir rakstzīmes, mēs nevaram izteikt uz klaviatūras, piemēram, manā ASV 222 00:09:04,248 --> 00:09:08,209 tastatūra, dažas rakstzīmes faktiski aizņem 16 biti, nevis astoņi biti. 223 00:09:08,209 --> 00:09:10,250 Un tā, tas patiesībā nav tik nesaprātīgs 224 00:09:10,250 --> 00:09:12,250 ka mums vajag vairāk telpa, ja mēs gribam, lai ietilptu 225 00:09:12,250 --> 00:09:16,252 lielāki zīmēm nekā pašā ASV orientētus tiem mēs esam tieksmi apspriest. 226 00:09:16,252 --> 00:09:17,460 Tātad, mums vajag kādu augšējo robežu. 227 00:09:17,460 --> 00:09:21,470 Es nezinu, kas ir labākais viena ir, bet 255 parasti ir izplatīts. 228 00:09:21,470 --> 00:09:22,700 25 jūtas zems. 229 00:09:22,700 --> 00:09:23,857 16, 32 jūtas zems. 230 00:09:23,857 --> 00:09:25,690 Es varētu grēkot sānos par kaut ko augstāku. 231 00:09:25,690 --> 00:09:27,330 Bet tur ir kompromiss, kā vienmēr. 232 00:09:27,330 --> 00:09:31,902 Kas ir, iespējams, skaidrs tirdzniecība off rezervējot 255 rakstzīmēm 233 00:09:31,902 --> 00:09:33,360 par ikviena vārda manā datu bāzē? 234 00:09:33,360 --> 00:09:34,230 >> Mērķauditorija: [dzirdams] 235 00:09:34,230 --> 00:09:34,510 >> DAVID Malan: Kas tas ir? 236 00:09:34,510 --> 00:09:35,430 >> Mērķauditorija: [dzirdams] 237 00:09:35,430 --> 00:09:37,138 >> DAVID Malan: Tas ir atmiņas daudz, vai ne? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-N. Es tikko izšķērdēta 250 rakstzīmes tikai glabāt savu vārdu 239 00:09:42,280 --> 00:09:46,000 aizsardzībai, tikai gadījumā, ja kāds klasē ir ļoti garš nosaukums. 240 00:09:46,000 --> 00:09:47,940 Tas šķiet kā nepamatotas tradeoff. 241 00:09:47,940 --> 00:09:52,040 >> Tātad, izrādās, ka SQL, Šī datu bāze valoda, 242 00:09:52,040 --> 00:09:55,480 faktiski atbalsta kaut ko sauc VARCHAR vai Variable CHAR. 243 00:09:55,480 --> 00:09:59,390 Un tas ir sava veida jauki, ka šis Ļauj norādīt nav fiksēta 244 00:09:59,390 --> 00:10:01,900 platums, bet drīzāk, mainīga platuma. 245 00:10:01,900 --> 00:10:05,060 Un vēl konkrētāk, maksimālais platums no lauka. 246 00:10:05,060 --> 00:10:08,901 Tātad, tas nozīmē, ka vārds var ne vairāk kā 250 rakstu zīmes, 247 00:10:08,901 --> 00:10:10,150 bet tas noteikti var būt mazāk. 248 00:10:10,150 --> 00:10:11,733 Un datubāze būs gudri. 249 00:10:11,733 --> 00:10:14,860 Ja jūs likts M-A-L-A-N, tas ir tikai gatavojas izmantot pieci, 250 00:10:14,860 --> 00:10:18,120 varbūt seši baiti like velkas null raksturs, 251 00:10:18,120 --> 00:10:23,330 un nav jātērē papildu 249 vai 250 baiti nevajadzīgi. 252 00:10:23,330 --> 00:10:27,380 >> Tātad, tas šķiet man vajadzētu ir sākuši ar šo stāstu. 253 00:10:27,380 --> 00:10:29,140 Bet tur vienmēr tradeoff. 254 00:10:29,140 --> 00:10:33,024 Tātad, no vienas puses, lietotājvārds Man norādīts būt grūti kodē uz 16, 255 00:10:33,024 --> 00:10:34,940 un varbūt, ka nebija īstais aicinājums, varbūt to 256 00:10:34,940 --> 00:10:40,040 ir, bet kāpēc neizmantot VARCHARs par visu? 257 00:10:40,040 --> 00:10:42,020 >> Tā pastāv par iemeslu. 258 00:10:42,020 --> 00:10:46,200 Kāpēc neizmantot VARCHARs visās jomās kuru garums jūs nezināt iepriekš 259 00:10:46,200 --> 00:10:48,180 ja tas, šķiet, ir lieliska lieta, vai ne? 260 00:10:48,180 --> 00:10:50,482 Lietojiet tikai tik daudz vietas, kā jums ir nepieciešams, līdz šim limitam? 261 00:10:50,482 --> 00:10:51,271 >> Mērķauditorija: lēnāk. 262 00:10:51,271 --> 00:10:52,146 DAVID Malan: Speller? 263 00:10:52,146 --> 00:10:53,120 Mērķauditorija: Padara tas lēnāk? 264 00:10:53,120 --> 00:10:53,970 DAVID Malan: Ak, tas ir lēnāks. 265 00:10:53,970 --> 00:10:55,720 Labi, tas ir gandrīz vienmēr atbilde, atklāti. 266 00:10:55,720 --> 00:10:56,520 Tāpat, kāda ir tradeoff? 267 00:10:56,520 --> 00:10:58,570 Tā nu maksā vairāk vietas vai tas maksā vairāk laika. 268 00:10:58,570 --> 00:11:00,111 Tātad, šajā gadījumā, tas varētu būt lēnāks. 269 00:11:00,111 --> 00:11:00,920 Kāpēc? 270 00:11:00,920 --> 00:11:05,830 >> Mērķauditorija: [dzirdams] Nosakot [dzirdams]. 271 00:11:05,830 --> 00:11:06,640 >> DAVID Malan: Labi. 272 00:11:06,640 --> 00:11:09,670 Tātad, jūs varētu atgādināt no vēl PSED5, rotaļājoties ar savu pieeju 273 00:11:09,670 --> 00:11:12,750 vārdnīcai, ja jums ir piešķirt atmiņu dinamiski vai paturēt 274 00:11:12,750 --> 00:11:14,630 aug buferi, kas patiesībā var būt lēna. 275 00:11:14,630 --> 00:11:16,963 Ja jums ir zvanīt malloc zem motora pārsega un varbūt 276 00:11:16,963 --> 00:11:19,610 tas ko MySQL dara, tāpēc protams, ka varētu būt gadījums. 277 00:11:19,610 --> 00:11:22,430 Un, ja jūs domājat, ka veids atpakaļ uz PSet-- vai pat 278 00:11:22,430 --> 00:11:26,340 nedēļas divas, kad mēs darījām lietas, piemēram, binārā meklēšana vai pat lineāra meklēšana, 279 00:11:26,340 --> 00:11:30,690 viens no nice lietas par katru vārdu datubāzē vai katru vārdu kolonnā 280 00:11:30,690 --> 00:11:33,690 ir tieši tāds pats garums, pat ja visu ķekars no šiem burtiem 281 00:11:33,690 --> 00:11:37,390 ir tukšs, ir tas, ka jūs varat izmantot brīvpiekļuves par saviem datiem, vai ne? 282 00:11:37,390 --> 00:11:40,310 >> Ja jūs zināt, ka katrs Vārds ir 16 rakstzīmes prom, 283 00:11:40,310 --> 00:11:46,460 Jūs varat izmantot rādītāju aritmētisko, tāpēc, lai runā, un dodieties pie mums 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 un jūs varat vienkārši lēkt uzreiz, izmantojot aritmētiskās 285 00:11:49,589 --> 00:11:51,130 ar jebkuru no vārdiem, kas savā datu bāzē. 286 00:11:51,130 --> 00:11:54,280 Tā kā, ja tas ir VARCHAR, Ko jūs tā vietā ir jādara? 287 00:11:54,280 --> 00:11:55,960 >> [Tālruņa zvana] 288 00:11:55,960 --> 00:11:58,680 >> Ja tas ir VARCHAR, jūs nevar izmantot izlases piekļuvi. 289 00:11:58,680 --> 00:12:01,341 Kas jums ir meklēt vai darīt? 290 00:12:01,341 --> 00:12:01,840 Yeah? 291 00:12:01,840 --> 00:12:03,240 >> Mērķauditorija: [dzirdams] 292 00:12:03,240 --> 00:12:04,310 >> DAVID Malan: Look caur whole-- pēdām 293 00:12:04,310 --> 00:12:06,518 cauri visam sarakstam meklē to, ko, visticamāk? 294 00:12:06,518 --> 00:12:08,356 Kādu īpašu vērtību? 295 00:12:08,356 --> 00:12:09,230 Mērķauditorija: [dzirdams] 296 00:12:09,230 --> 00:12:11,105 DAVID Malan: Meklē par nulles terminatoriem 297 00:12:11,105 --> 00:12:13,637 kas norobežo atdalīšanu vārdiem. 298 00:12:13,637 --> 00:12:15,720 Tātad vēlreiz, tradeoff, un tur nav pareizā atbilde. 299 00:12:15,720 --> 00:12:18,380 Bet tas ir, ja, īpaši kad jūsu lietotājiem iegūt būt daudz 300 00:12:18,380 --> 00:12:21,700 un jūsu slodze uz saviem serveriem, tad cilvēku skaits, izmantojot tā kļūst liels, 301 00:12:21,700 --> 00:12:23,650 Tie ir faktiski netriviāls lēmumi. 302 00:12:23,650 --> 00:12:26,640 Tātad, mēs varam atstāt tos kā šis, bet pieņemsim ritiniet uz leju, pa pa labi 303 00:12:26,640 --> 00:12:27,332 šeit. 304 00:12:27,332 --> 00:12:30,290 Tagad tur ir pāris kolonnām kur mums ir spriest zvanu. 305 00:12:30,290 --> 00:12:35,170 Vai ir kāda jēga ļaut lietotāja nosaukt, lietotāja lietotājvārds vai lietotāja 306 00:12:35,170 --> 00:12:36,370 Vārds, par spēkā? 307 00:12:36,370 --> 00:12:37,610 Tas ir, tikai tukšs. 308 00:12:37,610 --> 00:12:40,360 Jūtas mazliet muļķīgi, tāpēc es esmu nav gatavojas pārbaudīt tās kastes. 309 00:12:40,360 --> 00:12:42,670 Bet izrādās datubāzes, jūs varat teikt, 310 00:12:42,670 --> 00:12:44,620 kāds var pēc izvēles būt šo vērtību. 311 00:12:44,620 --> 00:12:47,180 Šī sleja nav faktiski būt tur. 312 00:12:47,180 --> 00:12:48,570 >> Tagad tur ir šis kritums uz leju izvēlnē. 313 00:12:48,570 --> 00:12:50,810 Un paziņojums es esmu vēl pirmajā rindā tur, 314 00:12:50,810 --> 00:12:52,520 tāpēc es runāju par lietotājvārdu tagad. 315 00:12:52,520 --> 00:12:56,290 Un izrādās, ka datu bāzē, atšķirībā vienkāršu vienkāršu izklājlapu, 316 00:12:56,290 --> 00:12:58,520 ir spēcīgs funkcijas sauc par indeksu. 317 00:12:58,520 --> 00:13:02,600 Un indekss ir veids, kā stāsta datubāzes iepriekš, ka I cilvēka 318 00:13:02,600 --> 00:13:03,900 esmu gudrāks par tevi. 319 00:13:03,900 --> 00:13:10,430 >> Es zinu, kāda veida vaicājumus, izvēlieties vai ievietot vai dzēst vai atjaunināt, 320 00:13:10,430 --> 00:13:13,182 ka mans kods ir beigsies up dara šo datu bāzi. 321 00:13:13,182 --> 00:13:14,390 Es gribu lasīt daudz datu. 322 00:13:14,390 --> 00:13:15,681 Es gribu, lai ievietotu daudz datu. 323 00:13:15,681 --> 00:13:17,530 Es gribu, lai pastāvīgi izdzēst daudz datu. 324 00:13:17,530 --> 00:13:21,520 Ja es zinu, ka es esmu būs piekļūt lauku tāpat Lietotājvārds daudz, 325 00:13:21,520 --> 00:13:24,770 Es varu preemptively pateikt datubāzes, es zinu vairāk nekā tu, 326 00:13:24,770 --> 00:13:29,220 un es gribu, ka dekrēta Jums vajadzētu indekss šajā jomā. 327 00:13:29,220 --> 00:13:33,200 Ja indeksācija lauks vai kolonnu nozīmē, ka datu bāze iepriekš 328 00:13:33,200 --> 00:13:37,040 vajadzētu aizņemties dažas idejas no, piemēram, nedēļa četras un piecas un sešas no CS50 329 00:13:37,040 --> 00:13:39,240 un faktiski veidot kaut kā bināro meklēšanu 330 00:13:39,240 --> 00:13:41,560 koks vai kaut kas parasti sauc par B koks 331 00:13:41,560 --> 00:13:43,410 ka jūs varētu mācīties klasē, piemēram CS124 332 00:13:43,410 --> 00:13:46,710 Hārvarda, kas ir algoritmi klase, vai kādu citu vietu skaits. 333 00:13:46,710 --> 00:13:49,570 >> Datu bāze un smart cilvēki, kas to īstenoja 334 00:13:49,570 --> 00:13:53,880 būs izdomāt, kā uzglabāt ka tabula informācijas 335 00:13:53,880 --> 00:13:57,061 atmiņā tā, ka meklējumi un citas darbības ir super ātri. 336 00:13:57,061 --> 00:13:58,060 Jums nav to darīt. 337 00:13:58,060 --> 00:14:00,640 Jums nav, lai īstenotu lineārs meklēšana vai binārā meklēšana 338 00:14:00,640 --> 00:14:03,300 vai apvienot veida vai atlasi kārtot, kāds no tā. 339 00:14:03,300 --> 00:14:06,590 Datubāzē tas jums, ja jums pateikt tas preemptively indeksēt šajā jomā. 340 00:14:06,590 --> 00:14:09,100 >> Un jūs varat redzēt arī, tur ir dažas citas īpašības 341 00:14:09,100 --> 00:14:11,010 mēs varam pateikt datubāzē izpildīt. 342 00:14:11,010 --> 00:14:16,431 Ko tas varētu nozīmēt, ja es izvēlos Unikāls Šajā izvēlnē, vienkārši intuitīvi? 343 00:14:16,431 --> 00:14:16,930 Yeah? 344 00:14:16,930 --> 00:14:17,889 >> Mērķauditorija: [dzirdams] 345 00:14:17,889 --> 00:14:19,930 DAVID Malan: Jā, tad lietotājvārds ir unikāls. 346 00:14:19,930 --> 00:14:23,330 Vai tas ir labi vai slikti, lai datubāzi, lai mājas lapā ar lietotājiem? 347 00:14:23,330 --> 00:14:24,965 Ja lietotājvārdi ir unikāls? 348 00:14:24,965 --> 00:14:25,880 Jā, droši vien. 349 00:14:25,880 --> 00:14:27,800 Ja tas ir tas, ko lauks mēs izmantojam, lai pieteiktos, 350 00:14:27,800 --> 00:14:31,867 Jums nav tiešām vēlaties, lai cilvēki, kam pats jūtas vai tas pats lietotājvārds. 351 00:14:31,867 --> 00:14:33,700 Tātad, mēs varam būt datu bāze izpildīt, ka tā 352 00:14:33,700 --> 00:14:37,880 ka tagad manā PHP kodu vai jebkurā valodā, Man nav, piemēram, pārbaudīt 353 00:14:37,880 --> 00:14:41,490 vienmēr dara šo lietotājvārdu pastāvēt pirms es let kāds reģistrs? 354 00:14:41,490 --> 00:14:46,690 Datubāze neļaus divi cilvēki nosaukts David vai Malans reģistrēties šajā lietā. 355 00:14:46,690 --> 00:14:50,030 >> Un kā malā, kaut gan šis menu tikai ļauj jums izvēlēties vienu, 356 00:14:50,030 --> 00:14:54,550 unikāls indekss ir viens, kas ir indeksē par super ātru darbību, 357 00:14:54,550 --> 00:14:56,100 bet tas arī īsteno unikalitāti. 358 00:14:56,100 --> 00:14:58,850 Un mēs būsim atpakaļ uz to, ko Pārējie divi nozīmē tikai brīdi. 359 00:14:58,850 --> 00:15:00,930 Tikmēr, ja es eju uz mana otrā rinda, kurai 360 00:15:00,930 --> 00:15:06,230 ir lietotāja vārds, man vajadzētu precizēt ka nosaukums ir unikāls? 361 00:15:06,230 --> 00:15:09,550 Nē, jo jūs varētu, protams, have-- tur nav divu David 362 00:15:09,550 --> 00:15:11,050 Malans šajā telpā, visticamāk. 363 00:15:11,050 --> 00:15:14,290 Bet, ja mēs izvēlēties citu nosaukumu, mēs varētu, protams, ir sadursmes. 364 00:15:14,290 --> 00:15:16,130 >> Domāju, ka atpakaļ uz hash tabulas un tamlīdzīgi. 365 00:15:16,130 --> 00:15:18,604 Tātad, mēs noteikti nevēlamies padarīt nosaukums lauks unikāls. 366 00:15:18,604 --> 00:15:21,270 Tātad, mēs esam tikai gatavojas atstāt ka domuzīme, domuzīme, domuzīme, nekas. 367 00:15:21,270 --> 00:15:22,660 Un es esmu gatavojas pamest viss pārējais vien. 368 00:15:22,660 --> 00:15:25,035 Patiešām, lielākā daļa no šiem laukiem mums nebūs rūp. 369 00:15:25,035 --> 00:15:27,830 Un, kad es esmu gatavs, lai saglabātu to, ja internets sadarbojas, 370 00:15:27,830 --> 00:15:35,032 Es noklikšķiniet uz Saglabāt, un ļoti, ļoti, ļoti lēnām tas datubāze saglabātas. 371 00:15:35,032 --> 00:15:37,240 Un tagad es esmu atpakaļ uz šo interfeiss, kas, protams, 372 00:15:37,240 --> 00:15:38,680 ir milzīgs pēc pirmā acu uzmetiena. 373 00:15:38,680 --> 00:15:42,450 Bet viss, ko es esmu gatavojas darīt, ir klikšķu uz Word lietotājiem kreisajā augšējā stūrī. 374 00:15:42,450 --> 00:15:47,630 Es iešu šeit, noklikšķiniet Lietotāji, un pēc noklusējuma, to 375 00:15:47,630 --> 00:15:50,180 ir izpildīts kādu SQL, bet vairāk par šo brīdi. 376 00:15:50,180 --> 00:15:52,654 Lūk tikai kopsavilkums par to, ko es darīju. 377 00:15:52,654 --> 00:15:55,320 Un nav jāuztraucas, ka jūs redzēt nerunājot par latīņu un zviedru šeit. 378 00:15:55,320 --> 00:16:00,490 Tie ir tikai noklusējuma uzstādījumus, jo MySQL sākotnēji, 379 00:16:00,490 --> 00:16:04,000 vai PHP MyAdmin, viens no diviem noticis jāraksta daži Zviedrijas cilvēku. 380 00:16:04,000 --> 00:16:06,100 Bet tas ir svarīgi, jo mūsu gadījumā šeit. 381 00:16:06,100 --> 00:16:08,280 >> Labi, tad kāpēc ir tas viss interesanti? 382 00:16:08,280 --> 00:16:13,050 Izrādās, es varētu ievietot datus datu bāzē, rakstot kodu. 383 00:16:13,050 --> 00:16:15,940 Un es esmu iet uz priekšu un Manā failu šeit, es esmu 384 00:16:15,940 --> 00:16:19,000 gatavojas iet uz priekšu un izlikties, piemēram, tas ir vadu uz šo datu bāzi, kurā 385 00:16:19,000 --> 00:16:23,040 tas nav šobrīd, bet tas būs tad, kad mēs nokļūt līdz problēmu noteikt septiņi. 386 00:16:23,040 --> 00:16:25,640 Un es iešu uz priekšu un izpildīt funkciju sauc vaicājums, 387 00:16:25,640 --> 00:16:28,730 ko mēs sniegsim jums problēmu noteikt septiņas izplatīšanas kodu, kas 388 00:16:28,730 --> 00:16:31,490 ilgst vismaz vienu argumentu, kas ir tikai virkne. 389 00:16:31,490 --> 00:16:33,460 Virkne SQL kodu. 390 00:16:33,460 --> 00:16:36,700 Tātad, jūs esat par to, lai iemācītos rakstīt Strukturēts Query Language. 391 00:16:36,700 --> 00:16:41,270 >> Ja es gribu, lai ievietotu jaunu rindu manā datubāze tāpēc, ka kāds ir iesniegusi 392 00:16:41,270 --> 00:16:47,600 forma uz manu kodu, es burtiski rakstīt INSERT INTO lietotājiem šādiem 393 00:16:47,600 --> 00:16:52,800 lauki: lietotājvārdu, komats, nosaukums, vērtībām, 394 00:16:52,800 --> 00:16:57,480 un tagad man ir nepieciešams, lai ievietotu kaut kas līdzīgs Malan, un citējot, 395 00:16:57,480 --> 00:17:01,490 likt pēdiņas beigās "David Malan." Un tagad pat tiem svešs ar SQL, 396 00:17:01,490 --> 00:17:07,830 kāpēc es esmu, izmantojot vienu pēdiņām iekšpusē šo zaļo string? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Kāds varētu būt iemesls šeit? 399 00:17:13,040 --> 00:17:14,609 >> Paziņojums Es esmu sajaukšana kopā divas valodas. 400 00:17:14,609 --> 00:17:18,099 Vaicājums ir PHP funkcija, bet tas aizņem arguments. 401 00:17:18,099 --> 00:17:21,740 Un šis arguments ir sevi var rakstīts citā valodā, ko sauc 402 00:17:21,740 --> 00:17:23,500 SQL, Strukturēts Query Language. 403 00:17:23,500 --> 00:17:27,940 Tātad, viss, kas man tikko uzsvēra šeit 404 00:17:27,940 --> 00:17:30,380 ir šī valoda sauc par SQL. 405 00:17:30,380 --> 00:17:36,290 Tātad, kas ir ar vienu pēdiņām, tikpat ātri veselība pārbaudītu? 406 00:17:36,290 --> 00:17:37,324 Uz priekšu. 407 00:17:37,324 --> 00:17:37,990 Viņi stīgas. 408 00:17:37,990 --> 00:17:41,590 Tātad, citēju, likt pēdiņas beigās Malan un citātu, likt pēdiņas beigās David Malan ir virknes. 409 00:17:41,590 --> 00:17:45,210 Un tikai domāju intuitīvi tagad, zinot to, ko jūs zināt par C un PHP, 410 00:17:45,210 --> 00:17:50,220 kāpēc es ne darīt, ko es parasti Double pēdiņas virknes? 411 00:17:50,220 --> 00:17:52,310 Kāpēc es negribu to darīt? 412 00:17:52,310 --> 00:17:52,810 Yeah? 413 00:17:52,810 --> 00:17:53,685 >> Mērķauditorija: [dzirdams] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID Malan: Tieši tā. 416 00:17:57,570 --> 00:17:59,653 Jo es jau izmantoju pēdiņas ceļā 417 00:17:59,653 --> 00:18:01,929 ārpus argumentu ar PHP funkciju, 418 00:18:01,929 --> 00:18:03,470 Es tikai sajaukt tulks. 419 00:18:03,470 --> 00:18:04,860 Tas nebūs zināt, vai tie iet kopā? 420 00:18:04,860 --> 00:18:05,735 Vai tie iet kopā? 421 00:18:05,735 --> 00:18:06,810 Vai tie iet kopā? 422 00:18:06,810 --> 00:18:08,070 Tātad, es pārmaiņus vietā. 423 00:18:08,070 --> 00:18:11,784 >> Vai es varētu darīt kaut kas līdzīgs šim, slīpsvītru quote vai slīpsvītru citātu. 424 00:18:11,784 --> 00:18:14,200 Atklāti sakot, ka tikai sāk iegūt ļoti nenolasāmiem un neglīts. 425 00:18:14,200 --> 00:18:16,790 Bet tas varētu sasniegt tādu pašu rezultātu, kā arī. 426 00:18:16,790 --> 00:18:19,760 >> Tātad, ja es būtu, lai izpildītu šīs vaicājums tagad, pieņemsim redzēt, kas notiek. 427 00:18:19,760 --> 00:18:22,740 Es iešu uz priekšu tagad un diezgan kā izpildīt PHP kodu, kas 428 00:18:22,740 --> 00:18:24,610 ir vieta, kur jūs varēsiet spēlēt jo problēma noteikti septiņi, 429 00:18:24,610 --> 00:18:27,200 Es esmu gatavojas, nevis doties uz PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 Un es esmu gatavojas manuāli iet uz cilni SQL, 431 00:18:29,770 --> 00:18:31,580 un ļaujiet man tuvinātu interfeisu. 432 00:18:31,580 --> 00:18:34,007 Un es esmu gatavojas ielīmēt lieta, ko es tikko drukāti. 433 00:18:34,007 --> 00:18:36,090 Un krāsu kodiem ir mainījies mazliet tagad, 434 00:18:36,090 --> 00:18:38,750 tikai tāpēc, ka programma formāti lietas nedaudz savādāk. 435 00:18:38,750 --> 00:18:41,960 Bet paziņo, ka viss, ko es esmu darījusi ir man teica, ievietot lietotājiem. 436 00:18:41,960 --> 00:18:45,790 Esmu norādīts, tad, komats atdalīts iekavoto saraksts divi 437 00:18:45,790 --> 00:18:48,850 lauki, es gribu, lai ievietotu, un tad es esmu burtiski teicu vērtības 438 00:18:48,850 --> 00:18:51,510 seko cita paren, Un tad divām vērtībām 439 00:18:51,510 --> 00:18:53,520 Es gribu, lai plug-in, un Tagad labu pasākumu, 440 00:18:53,520 --> 00:18:55,010 Es nolikšu semikolu beigās. 441 00:18:55,010 --> 00:18:56,570 Tātad, tas nav C. Tas nav PHP. 442 00:18:56,570 --> 00:18:59,970 Tas tagad ir SQL, un es esmu ielīmējot to šajā tīmekļa saskarni, kas ir 443 00:18:59,970 --> 00:19:02,710 tikai gatavojas let me, tiklīdz es noklikšķiniet uz Aiziet, 444 00:19:02,710 --> 00:19:08,060 izpildīt šo vaicājumu datu bāzē darbojas iekšpusē CS50 IDE. 445 00:19:08,060 --> 00:19:09,470 >> Tātad šis ir labs. 446 00:19:09,470 --> 00:19:12,520 Paziņojums, ka teica viens rinda ievietota, gāja super ātri, 447 00:19:12,520 --> 00:19:15,190 0.0054 sekundes, lai ievietotu, ka dati. 448 00:19:15,190 --> 00:19:16,610 Tātad, tas izklausās diezgan veselīgi. 449 00:19:16,610 --> 00:19:19,350 Tā pārveidots manu vaicājumu man šeit tikai, lai to aplūkotu 450 00:19:19,350 --> 00:19:21,730 in veida krāsu kodēta versiju. 451 00:19:21,730 --> 00:19:24,540 Bet tagad, ja es noklikšķiniet Nozares, ievērosiet, ka, pat 452 00:19:24,540 --> 00:19:29,070 lai gan tur ir daudz jucekli uz ekrāns, mana galda tagad ir divas rindas. 453 00:19:29,070 --> 00:19:30,700 >> Tātad, ļaujiet man iet uz priekšu un darīt citu. 454 00:19:30,700 --> 00:19:33,760 Tā vietā, ļaujiet man dodieties uz cilni SQL vēlreiz. 455 00:19:33,760 --> 00:19:40,723 Un šoreiz es ievietot kaut ko līdzīgu Rob un viņa vārds būs Rob Bowden. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 Pieņemsim, noklikšķiniet uz Saglabāt. 458 00:19:44,040 --> 00:19:46,140 Hmm, drīzāk iet. 459 00:19:46,140 --> 00:19:48,890 >> Noklikšķiniet uz Pārlūkot atkal, un tagad paziņojums Man ir divas rindas. 460 00:19:48,890 --> 00:19:52,390 Tātad, tas ir tikai veids, kā sarežģītāka veids, kā atvērt Google izklājlapu 461 00:19:52,390 --> 00:19:54,010 un tikai rakstīt rindu uz kolonnas. 462 00:19:54,010 --> 00:19:57,070 Bet to, kas ir galvenais ir tas, ka mums tagad ir sintakse 463 00:19:57,070 --> 00:20:00,220 ar kuru rakstīt kodu, lai galu galā, mēs patiešām varētu 464 00:20:00,220 --> 00:20:01,790 tie daži un tas. 465 00:20:01,790 --> 00:20:05,380 Atgādināt, ka PHP balstus super globālie mainīgie. 466 00:20:05,380 --> 00:20:08,415 >> Kas ir iekšā dolāru pierakstīties pasvītrojums GET PHP? 467 00:20:08,415 --> 00:20:10,290 Mēs ņēmām apskatīt vienu vai divi vienkārši piemēri. 468 00:20:10,290 --> 00:20:15,640 Un PSet6, atceros jums ir sveiki dot PHP, kas izmanto šo mainīgo. 469 00:20:15,640 --> 00:20:17,870 Kas notiek tur? 470 00:20:17,870 --> 00:20:21,015 Vai kas tas ir? 471 00:20:21,015 --> 00:20:22,522 Mazliet skaļāk. 472 00:20:22,522 --> 00:20:23,790 >> Mērķauditorija: [dzirdams] 473 00:20:23,790 --> 00:20:25,030 >> DAVID Malan: Tas ir sniega sēklas masīva, kas 474 00:20:25,030 --> 00:20:27,714 ir tikai iedomātā veids, kā pateikt masīvs, kas ir galvenās vērtības pārus. 475 00:20:27,714 --> 00:20:28,880 Un atslēgas nav ciparu. 476 00:20:28,880 --> 00:20:30,420 Viņi vārdus vai stīgas. 477 00:20:30,420 --> 00:20:32,750 Un konkrēti, ko ir tie galvenie vērtību pārus? 478 00:20:32,750 --> 00:20:35,110 Kur viņi nāk no? 479 00:20:35,110 --> 00:20:35,620 Sorry? 480 00:20:35,620 --> 00:20:36,994 >> Mērķauditorija: [dzirdams] 481 00:20:36,994 --> 00:20:37,660 DAVID Malan: Nē? 482 00:20:37,660 --> 00:20:40,700 Kur šiem galvenajiem vērtību pārus nāk no? 483 00:20:40,700 --> 00:20:42,490 Say atkal? 484 00:20:42,490 --> 00:20:44,610 Atkal? 485 00:20:44,610 --> 00:20:46,472 Vai es esmu vienīgais, dzirdes kaut ko? 486 00:20:46,472 --> 00:20:47,810 >> [Smiekli] 487 00:20:47,810 --> 00:20:49,042 >> Tas ir labi, jā? 488 00:20:49,042 --> 00:20:50,435 >> Mērķauditorija: [dzirdams] 489 00:20:50,435 --> 00:20:52,560 DAVID Malan: Jā, viņi nāk no vaicājuma virknes. 490 00:20:52,560 --> 00:20:55,380 Tātad, ja jūs attīt laikā, lai kad mēs esam spēlēja ar Google 491 00:20:55,380 --> 00:20:59,600 un mēs esam aizgājuši uz Google.com slīpsvītra meklēšana jautājuma zīme q ir vienāds ar kaķi, 492 00:20:59,600 --> 00:21:03,550 ja man bija hit Enter, un, ja Google tika īstenoti PHP, 493 00:21:03,550 --> 00:21:07,017 PHP kodu, kas Google rakstīja būtu pieejami dolāra zīmi 494 00:21:07,017 --> 00:21:11,600 uzsvērt iekļūt iekšā, no kuriem ir galvenais sauc Q un vērtība 495 00:21:11,600 --> 00:21:17,680 sauc par kaķi, ka tā var pēc tam izmantot mēdza darīt faktisko meklēšanu ar. 496 00:21:17,680 --> 00:21:20,860 >> Tātad, patiesībā, ko es esmu gatavojas darīt tagad ir doties atpakaļ uz savu PHP kodu 497 00:21:20,860 --> 00:21:23,140 ka jūs atkal redzēt vairāk par in PSet7. 498 00:21:23,140 --> 00:21:25,440 Un tā vietā, tapām cietajos kodēto vērtības, kas 499 00:21:25,440 --> 00:21:27,630 nav šķist ļoti dinamiska mājas lapa, 500 00:21:27,630 --> 00:21:30,680 Es esmu gatavojas sniegt jums teaser par kādas ir jūsu faktiskais kods darītu. 501 00:21:30,680 --> 00:21:32,854 Jūs nodot divos Jautājums iezīmē kā šis. 502 00:21:32,854 --> 00:21:34,270 Es nezinu, kas lietotājvārds ir. 503 00:21:34,270 --> 00:21:37,390 Es nezinu, kāda nosaukums būs, 504 00:21:37,390 --> 00:21:39,470 bet es zinu, ka varu saņemt tos dinamiski. 505 00:21:39,470 --> 00:21:43,420 >> Tātad, ja kods mēs rakstiski tagad ir kods darbojas uz Google serveriem, 506 00:21:43,420 --> 00:21:46,940 vai, ja tas ir sveiki dot PHP, kas nāk ar PSet6, 507 00:21:46,940 --> 00:21:48,650 Es esmu gatavojas pāriet uz vaicājums funkcija 508 00:21:48,650 --> 00:21:51,450 tāpat kā printf, divi citi argumenti. 509 00:21:51,450 --> 00:21:57,120 GET, quote, likt pēdiņas beigās lietotājvārds, un GET, citēju, likt pēdiņas beigās nosaukums. 510 00:21:57,120 --> 00:22:00,720 Un tagad, pamanīt to, ko vispārējā struktūra ir šeit. 511 00:22:00,720 --> 00:22:03,320 Man pa kreisi labajā pusē no zvana, 512 00:22:03,320 --> 00:22:05,480 šī funkcija sauc vaicājumu PHP. 513 00:22:05,480 --> 00:22:08,160 Man joprojām ir kā pirmais arguments, tikai virkne tekstu. 514 00:22:08,160 --> 00:22:11,000 >> Bet tas string teksta ir uzrakstīts valodā sauc SQL. 515 00:22:11,000 --> 00:22:12,616 Un godīgi sakot, tas nav liels valoda. 516 00:22:12,616 --> 00:22:14,990 Mēs esam tikai gatavojas runāt par tā formāli šodien, tiešām. 517 00:22:14,990 --> 00:22:17,031 Un tad problēma noteikti septiņi, tur ir salīdzinoši 518 00:22:17,031 --> 00:22:18,800 Dažas pazīmes, ka mēs esam dodas uz sviras. 519 00:22:18,800 --> 00:22:22,530 Jautājums zīmes, lai gan, nozīmē iespraudiet vērtība šeit un plug citā vērtībā 520 00:22:22,530 --> 00:22:23,130 šeit. 521 00:22:23,130 --> 00:22:26,010 Un paziņojums, es esmu izlaists ko no visas quote-- damn 522 00:22:26,010 --> 00:22:30,470 it-- ap citāts iezīmē šo laiku. 523 00:22:30,470 --> 00:22:34,930 Es esmu izlaists citāts zīmes ap jautājuma zīmi, 524 00:22:34,930 --> 00:22:36,410 sorry, šoreiz apkārt. 525 00:22:36,410 --> 00:22:38,870 >> Tātad, kas ir jauka par šo jautājuma zīme iezīme, kas 526 00:22:38,870 --> 00:22:42,830 PHP tendence atbalstīt, Ruby un Python un citas valodas, 527 00:22:42,830 --> 00:22:45,730 Tas tikai nozīmē, plug dažās novērtēt šeit, un jūs zināt, ko? 528 00:22:45,730 --> 00:22:48,300 Jūs izdomāt, vai izmantot vienu pēdiņām vai pēdiņas. 529 00:22:48,300 --> 00:22:50,966 Nelietojiet apnikt mani ar tiem intelektuāli neinteresanti detaļas. 530 00:22:50,966 --> 00:22:53,780 Bet, pārliecinieties, ka tas ir pareizs tā, ka mans kods ir galā 531 00:22:53,780 --> 00:22:57,010 operatīvo un droša, kas būs nozīme pirms ilgi. 532 00:22:57,010 --> 00:23:00,460 >> Tagad, cik argumentus kopā, tikai lai jābūt skaidram, ir vaicājums funkcija ņemšanu? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Ikviens vēlas balsot par vairāk nekā diviem? 535 00:23:07,581 --> 00:23:08,080 Trīs? 536 00:23:08,080 --> 00:23:10,001 Protams, kāpēc? 537 00:23:10,001 --> 00:23:10,920 Kāpēc trīs? 538 00:23:10,920 --> 00:23:12,305 >> Mērķauditorija: [dzirdams] 539 00:23:12,305 --> 00:23:13,180 DAVID Malan: Tieši tā. 540 00:23:13,180 --> 00:23:14,610 Pirmā daļa ir virkne. 541 00:23:14,610 --> 00:23:18,640 Otrs arguments ir dolāra zīmi uzsvērt GET bracket lietotājvārdu. 542 00:23:18,640 --> 00:23:21,950 Un trešais arguments ir Tas pats, bet tikai nosaukums. 543 00:23:21,950 --> 00:23:24,590 Tātad citiem vārdiem sakot, tagad ja man bija tīmekļa formu 544 00:23:24,590 --> 00:23:27,149 kas bija teksta laukos, viena lietotāja lietotājvārdu, 545 00:23:27,149 --> 00:23:29,690 viens par viņa vai viņas vārdu, tāpat kā jūs varētu redzēt, kas mājas lapā 546 00:23:29,690 --> 00:23:32,120 kad jūs reģistrējaties kādu mājas lapu, tas varētu 547 00:23:32,120 --> 00:23:35,450 būt kodu uz muguras beigās, kas tiešām ievietošanas tagad 548 00:23:35,450 --> 00:23:37,220 datu bāzē. 549 00:23:37,220 --> 00:23:40,870 >> Tagad savukārt, pieņemsim ātri uz priekšu. 550 00:23:40,870 --> 00:23:43,840 Pieņemsim, ka lietotājs ir tagad piesakoties un jūs vēlaties 551 00:23:43,840 --> 00:23:48,860 rakstīt PHP kodu, kas pārbauda, ​​vai persona, kas ir tikai pieteicies 552 00:23:48,860 --> 00:23:52,250 ir faktiski lietotājs, jūs varat izmantot diezgan vienkāršu sintaksi. 553 00:23:52,250 --> 00:23:55,832 Jūs varat teikt, atlasīt, teiksim Star, kur zvaigzne ir viss. 554 00:23:55,832 --> 00:23:57,540 Es nezinu, ko es vēlaties, lai tikai dod man 555 00:23:57,540 --> 00:24:01,585 visi kolonnas no tabulas sauc lietotājiem, ja, un tas ir jauki. 556 00:24:01,585 --> 00:24:03,710 Izvēlieties atbalsta to, kas ir sauc predikāta, kas ir 557 00:24:03,710 --> 00:24:06,630 kā veids, kvalificējoties, ko jūs vēlaties. 558 00:24:06,630 --> 00:24:10,590 Ja lietotājvārds ir vienāds quote, likt pēdiņas beigās Malan. 559 00:24:10,590 --> 00:24:13,680 Tātad arī šeit, es esmu iegultās iekšā argumentu 560 00:24:13,680 --> 00:24:16,110 uz PHP funkciju, līnijas SQL kodu. 561 00:24:16,110 --> 00:24:18,680 Un ka SQL kods šis laiks ir burtiski dodas 562 00:24:18,680 --> 00:24:21,790 meklēt citātu, likt pēdiņas beigās Malan. 563 00:24:21,790 --> 00:24:24,420 >> Tagad tas nav viss, kas noderīgs, tāpēc es esmu gatavojas izlaist ka 564 00:24:24,420 --> 00:24:28,650 un es esmu gatavojas nodot tālāk tas tip no Brady, un iet 565 00:24:28,650 --> 00:24:30,990 un plug-in vietā jautājuma zīme šeit. 566 00:24:30,990 --> 00:24:33,290 Tātad, tikai, lai būtu skaidrs, ko būtu mans otrais arguments 567 00:24:33,290 --> 00:24:37,480 tad, ja kāds ir tikko pieteicies un I vēlaties pārbaudīt, ja viņš vai viņa ir patiesībā 568 00:24:37,480 --> 00:24:39,265 lietotājs? 569 00:24:39,265 --> 00:24:40,140 Mērķauditorija: [dzirdams] 570 00:24:40,140 --> 00:24:40,890 DAVID Malan: Jā. 571 00:24:40,890 --> 00:24:44,120 Es dzirdu dolāra zīmi pasvītrojumu Get Citāts, likt pēdiņas beigās lietotājvārdu. 572 00:24:44,120 --> 00:24:50,040 Un kas būtu jāatgriežas pie manis kādu no rindas, kas savā datu bāzē 573 00:24:50,040 --> 00:24:51,986 kas ir lietotājvārdu Malan. 574 00:24:51,986 --> 00:24:54,860 Tagad, cerams, es esmu gatavojas, lai saņemtu atpakaļ nulle, ja Malan nekad nav bijis šeit, 575 00:24:54,860 --> 00:24:56,290 vai viens, ja viņam ir. 576 00:24:56,290 --> 00:24:59,026 Man nevajadzētu saņemt atpakaļ divi vai trīs vai četri. 577 00:24:59,026 --> 00:24:59,526 Kāpēc? 578 00:24:59,526 --> 00:25:00,220 >> Mērķauditorija: [dzirdams] 579 00:25:00,220 --> 00:25:01,120 >> DAVID Malan: Es teicu unikāls, labi? 580 00:25:01,120 --> 00:25:01,750 Vienkāršs iemesls. 581 00:25:01,750 --> 00:25:04,030 Jo man teica, ka tas ir nokļuvis ir unikāls, tikai loģiski, 582 00:25:04,030 --> 00:25:07,940 Jums var būt tikai nulle vai viens Malans šajā konkrētajā datu bāzes tabulā. 583 00:25:07,940 --> 00:25:10,965 Tagad kā malā, tikai, lai jūs esat redzējis tā, lai arī es glabāt izmantojot GET 584 00:25:10,965 --> 00:25:14,350 un pat ja PSet6 izmantot tikai GET, jūs noteikti var būt POST. 585 00:25:14,350 --> 00:25:17,212 Un atceros, ka Post ir cits paņēmiens informācijas iesniegšanai 586 00:25:17,212 --> 00:25:19,170 no formā, bet tas neparādās URL. 587 00:25:19,170 --> 00:25:22,690 Tas ir mazliet drošāk noteikti par lietas, piemēram, lietotājvārdus un paroles, 588 00:25:22,690 --> 00:25:25,210 kas PSet7 būs, patiesībā, iesaistīt. 589 00:25:25,210 --> 00:25:28,130 >> Tātad, pieņemsim darīt PHP MyAdmin un redzēt, kas notiek. 590 00:25:28,130 --> 00:25:30,020 Es iešu uz cilnes MySQL. 591 00:25:30,020 --> 00:25:34,450 Un paziņojums, ka noklusējuma vērtību PHP MyAdmin, vienkārši cenšas būt noderīga, 592 00:25:34,450 --> 00:25:37,050 ir izvēlēties zvaigzni no lietotājiem, kad viens. 593 00:25:37,050 --> 00:25:39,430 Nu, viens ir vienmēr taisnība, tāpēc Tas ir muļķīgi efektīva 594 00:25:39,430 --> 00:25:40,400 no vienkārši izvēlieties viss. 595 00:25:40,400 --> 00:25:42,691 Bet es esmu būs nedaudz vairāk pedantiska un manuāli 596 00:25:42,691 --> 00:25:45,920 tipa no SELECT zvaigzni no lietotājiem. 597 00:25:45,920 --> 00:25:48,294 >> Tagad tehniski, jūs varat citēt nosaukumu galdiem. 598 00:25:48,294 --> 00:25:50,460 Tas ir reti, ka jums ir, bet paziņojums tie nav 599 00:25:50,460 --> 00:25:52,240 Jūsu normāls kotējumi ASV tastatūras. 600 00:25:52,240 --> 00:25:54,760 Tas ir tā sauktā backtick, kas parasti ir uz augšējā kreisajā rokā 601 00:25:54,760 --> 00:25:56,000 stūris tastatūras. 602 00:25:56,000 --> 00:25:58,500 Bet tas ir reti, ka jūs tiešām ir nepieciešams apgrūtināt ar, ka, 603 00:25:58,500 --> 00:25:59,950 tāpēc es ņemšu tikai izlaist tos anyway. 604 00:25:59,950 --> 00:26:02,280 Tāpēc tagad, ļaujiet man iet uz priekšu un hit iet. 605 00:26:02,280 --> 00:26:06,616 Un cik rindas man vajadzētu saņemt atpakaļ, kad es izvēlētos zvaigzni no lietotājiem? 606 00:26:06,616 --> 00:26:08,407 >> Mērķauditorija: [dzirdams] 607 00:26:08,407 --> 00:26:09,990 DAVID Malan: To rindu skaits, protams. 608 00:26:09,990 --> 00:26:12,390 Bet cik daudz šajā betona stāsts tieši tagad? 609 00:26:12,390 --> 00:26:14,640 Divi, jo tur bija mani un tur bija Rob. 610 00:26:14,640 --> 00:26:19,370 Tātad, ja es noklikšķiniet uz iet, es redzu, ka vizuāli Es esmu gotten atpakaļ, protams, divas rindas. 611 00:26:19,370 --> 00:26:22,060 Tur ir daudz jucekli uz ekrāns, bet es tikai redzēt divas rindas. 612 00:26:22,060 --> 00:26:28,580 Savukārt, ja es to izdarītu vēlreiz, un darīt SELECT zvaigzne no lietotājiem, kur lietotājvārds 613 00:26:28,580 --> 00:26:31,840 vienāds quote, likt pēdiņas beigās Malan, tagad, ja es noklikšķiniet uz Aiziet, 614 00:26:31,840 --> 00:26:33,970 Es esmu tikai gatavojas atgriezties vienu rindu. 615 00:26:33,970 --> 00:26:36,499 Un, visbeidzot, ja man kaut kas līdzīgs šim, pieņemsim 616 00:26:36,499 --> 00:26:38,290 ka man nav rūp iegūt visu, 617 00:26:38,290 --> 00:26:41,020 kas ir sava veida bezjēdzīga tagad, jo tur ir tikai divas kolonnas. 618 00:26:41,020 --> 00:26:43,103 Tas nav tāpat kā es esmu izvēloties milzīgs datu apjoms. 619 00:26:43,103 --> 00:26:46,720 Pieņemsim, ka man iet uz priekšu un Vai SELECT vārdu no 620 00:26:46,720 --> 00:26:51,990 Lietotāji, kur username vienāda Malan, kas ir jauka par SQL godīgi, 621 00:26:51,990 --> 00:26:54,290 ir tas, ka tas patiešām ir tikai dara ko tu pateikt to darīt. 622 00:26:54,290 --> 00:26:57,550 Tas ir diezgan īss, bet tu burtiski tikai pateikt to, ko jūs vēlaties darīt. 623 00:26:57,550 --> 00:27:01,130 Izvēlieties nosaukums no lietotājiem, ja lietotājvārds vienāds Malan. 624 00:27:01,130 --> 00:27:03,440 Un tas tiešām ir tik skaidri. 625 00:27:03,440 --> 00:27:08,410 Tātad, tagad, ja es hit Go, cik rindas es esmu gatavojas saņemt atpakaļ? 626 00:27:08,410 --> 00:27:10,770 Viens, jo tas ir tikai Malan, cerams. 627 00:27:10,770 --> 00:27:13,100 Vai nulle, ja viņš nav tur, bet viens maksimāli. 628 00:27:13,100 --> 00:27:17,610 >> Un cik kolonnas es saņems atpakaļ? 629 00:27:17,610 --> 00:27:18,450 Cik kolonnas? 630 00:27:18,450 --> 00:27:20,658 Šoreiz, es esmu tikai gatavojas lai iegūtu vienu, jo man nav 631 00:27:20,658 --> 00:27:22,380 izvēlēties zvaigzne, kas ir viss. 632 00:27:22,380 --> 00:27:27,900 Tagad es esmu izvēloties tikai vārdu, tāpēc es tikai saņemt atpakaļ vienu kolonnu un vienu rindu. 633 00:27:27,900 --> 00:27:31,730 Un tas izskatās veida pienācīgi smieklīgi, vienkārši skatoties super 634 00:27:31,730 --> 00:27:33,060 mazs kā šis. 635 00:27:33,060 --> 00:27:34,290 Tātad, kas īsti notiek? 636 00:27:34,290 --> 00:27:36,890 Kad jūs izpildīt SQL vaicājumu, izmantojot atlasīt, 637 00:27:36,890 --> 00:27:38,700 ko jūs saņemat atpakaļ no datu bāzes 638 00:27:38,700 --> 00:27:42,970 ir kā pagaidu tabulā ar rindām un kolonnām, varbūt, 639 00:27:42,970 --> 00:27:46,260 bet izlaist kaut kas faktiski nav izvēlēts ar jums. 640 00:27:46,260 --> 00:27:49,010 Tātad, tas ir tāpat kā, ja kāds bija liels izklājlapu no visiem studentiem 641 00:27:49,010 --> 00:27:51,610 reģistrēts dažiem studentu grupa, un jūs sakāt, 642 00:27:51,610 --> 00:27:55,097 dod man visu pirmkursnieks, kas esam reģistrēts mūsu studentu grupai, ko 643 00:27:55,097 --> 00:27:56,930 Jūsu kolēģi studentu grupa var darīt 644 00:27:56,930 --> 00:27:58,430 ir tie varētu tikai roku tu visu izklājlapu. 645 00:27:58,430 --> 00:27:59,742 Tas ir tāpat kā teikt izvēlieties zvaigzni. 646 00:27:59,742 --> 00:28:02,200 Un tas ir mazliet kaitinošas, ja Jums tikai gribēja pirmkursnieks. 647 00:28:02,200 --> 00:28:05,640 Un tā, ja jūs tā vietā teica, Izvēlieties zvaigzne no datu bāzes tabulas 648 00:28:05,640 --> 00:28:08,470 ja gads ir vienāds quote, likt pēdiņas beigās pirmkursnieks, 649 00:28:08,470 --> 00:28:10,810 tas ir tā, it kā jūsu draugs no studentu grupā 650 00:28:10,810 --> 00:28:13,770 burtiski izcelti un kopēt tikai pirmkursnieks rindas, 651 00:28:13,770 --> 00:28:16,780 ielīmēt tos jaunā Google Izklājlapu vai Excel failu, 652 00:28:16,780 --> 00:28:18,860 un pasniedza jūs atpakaļ rezultātā tikai failu. 653 00:28:18,860 --> 00:28:21,710 Tas ir viss, kas notiek, par konceptuāli šeit. 654 00:28:21,710 --> 00:28:23,920 >> Tātad galu galā, mēs varam darīt daži diezgan iedomātā lietas 655 00:28:23,920 --> 00:28:26,560 uzglabājot lietas, piemēram, lietotājvārdu un paroles un tamlīdzīgi. 656 00:28:26,560 --> 00:28:30,310 Bet, izrādās, mums vajadzētu darīt nedaudz savādāk nekā šis. 657 00:28:30,310 --> 00:28:34,750 Tas nav tik gudrs, lai tikai uzglabāt lietotājvārdu un paroli. 658 00:28:34,750 --> 00:28:37,790 Kāds agrāk, es domāju, ka šeit lejā, ieteica ID. 659 00:28:37,790 --> 00:28:40,787 Tagad ID varētu būt, piemēram, Harvard ID vai Yale s Net ID, 660 00:28:40,787 --> 00:28:42,870 bet tas varētu būt vēl vienkāršāka Mūsu datu bāzē gadījumā. 661 00:28:42,870 --> 00:28:45,120 Un tiešām, kopējā lieta ir ir cits kolonnu. 662 00:28:45,120 --> 00:28:46,953 Un es iešu priekšu un rediģēt mana galda. 663 00:28:46,953 --> 00:28:49,521 Un, ja jūs spēlēt aptuveni ar šis interfeiss PSet7, 664 00:28:49,521 --> 00:28:51,770 Jūs redzēsiet, ka jūs varat pārbaudīt šo pogu šeit un pievienot 665 00:28:51,770 --> 00:28:53,750 lauka sākumā tabulā. 666 00:28:53,750 --> 00:28:56,720 Un tagad, ja es noklikšķiniet uz iet, tas notiek sniegt man vienu no šiem veidiem 667 00:28:56,720 --> 00:28:57,600 no agrāk. 668 00:28:57,600 --> 00:29:00,170 Es esmu gatavojas pievienot lauku sauc ID. 669 00:29:00,170 --> 00:29:03,070 Un es esmu gatavojas darīt to ciparu tips. 670 00:29:03,070 --> 00:29:05,362 >> Man ir viss ķekars Vērtību par Skaitļi. 671 00:29:05,362 --> 00:29:08,677 Es esmu tikai gatavojas izvēlēties INT un nav jāuztraucas par atšķirīgi izmēri. 672 00:29:08,677 --> 00:29:10,510 Man nav jānorāda garums vai vērtība, 673 00:29:10,510 --> 00:29:13,710 jo tas būs 32 biti vienalga ko. 674 00:29:13,710 --> 00:29:16,070 Atribūti, mēs neredzēju agrāk. 675 00:29:16,070 --> 00:29:18,410 Jebkura interese par kādu no šiem izvēlnes iespējas šajā laikā? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Par INT? 678 00:29:23,745 --> 00:29:24,620 Ko jūs ierosināt? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 Nē? 681 00:29:28,445 --> 00:29:29,570 Vai kāds no šiem jēga? 682 00:29:29,570 --> 00:29:30,536 Jā. 683 00:29:30,536 --> 00:29:31,900 Jā, neparakstīts, vai ne? 684 00:29:31,900 --> 00:29:35,930 >> Parasti, ja mēs spēsim dot katrs unikāls numurs, kas 685 00:29:35,930 --> 00:29:38,200 ir tad, ja šis stāsts ir notiek, es tiešām tikai gribu 686 00:29:38,200 --> 00:29:41,919 personai, lai būtu, piemēram, nulles numuru un viens un divi un trīs un četri. 687 00:29:41,919 --> 00:29:43,710 Man nav nepieciešams, lai risinātu ar negatīviem skaitļiem. 688 00:29:43,710 --> 00:29:45,210 Tā tikai šķiet, piemēram, liekas sarežģītības. 689 00:29:45,210 --> 00:29:48,470 Es gribu četrus miljardus iespējamās vērtības, ne četrus miljardus iespējamās vērtības, 690 00:29:48,470 --> 00:29:50,699 tāpēc es vienkārši dubultojies jauda mana INT. 691 00:29:50,699 --> 00:29:53,490 Kā malā, ja jūs vēlaties saistīt tas kaut ko, piemēram, Facebook, 692 00:29:53,490 --> 00:29:56,190 atpakaļ veida mana diena, kad Facebook pirmais iznāca, 693 00:29:56,190 --> 00:29:59,510 Es uzskatu, ka tas, ko viņi izmantojot to MySQL datu bāzē 694 00:29:59,510 --> 00:30:02,856 uzglabāt lietotāja identifikators, bija tikai INT. 695 00:30:02,856 --> 00:30:05,230 Bet, protams, tur ir daudz no reāliem cilvēkiem visā pasaulē. 696 00:30:05,230 --> 00:30:07,438 Tur ir daudz viltus Facebook kontiem visā pasaulē. 697 00:30:07,438 --> 00:30:11,701 Un tā galu galā, Facebook pārplūda lielumā INT, četru miljardu apmērā 698 00:30:11,701 --> 00:30:12,200 vērtība. 699 00:30:12,200 --> 00:30:15,032 Kurš ir iemesls, kāpēc, ja paskatās apkārt un tur ir mājas lapas 700 00:30:15,032 --> 00:30:16,740 kas var pateikt, kas jūsu unikālo ID ir. 701 00:30:16,740 --> 00:30:19,781 Un, ja jūs nekad izvēlējās lietotājvārdu Facebook, jūs redzēsiet savu unikālo ID. 702 00:30:19,781 --> 00:30:23,080 Es domāju, ka tas profilu dot PHP jautājuma zīme ID vienāds kaut ko. 703 00:30:23,080 --> 00:30:27,210 Tas ir tagad kaut kā liels INT, vai ilgi ilgi, ja jūs, 704 00:30:27,210 --> 00:30:29,700 kas ir 64-bit vērtība vai kaut kas salīdzināmi. 705 00:30:29,700 --> 00:30:33,620 >> Tātad, pat reālajā pasaulē izdarīt šos jautājumi galu galā dažreiz svarīgi. 706 00:30:33,620 --> 00:30:37,600 Un izrādās šeit, ja es esmu sniedzot visu manu lietotāju unikāls ID, 707 00:30:37,600 --> 00:30:41,750 Es gribu būt super skaidri un minimāli padara šo lauks unikāls. 708 00:30:41,750 --> 00:30:44,750 Bet izrādās, tur ir viens gabals nomenklatūras šodien pārāk 709 00:30:44,750 --> 00:30:46,470 tas ir primārā atslēga. 710 00:30:46,470 --> 00:30:49,800 Ja jūs projektēšana datubāzi galds un jūs zināt iepriekš 711 00:30:49,800 --> 00:30:55,580 ka viens no kolonnu šajā tabulā ir un būs unikāli identificē rindas 712 00:30:55,580 --> 00:30:58,500 tabulā, jūs vēlaties precizēt to un pateikt datubāzi, 713 00:30:58,500 --> 00:31:00,250 šī ir mana primārā atslēga. 714 00:31:00,250 --> 00:31:02,110 Tur varētu būt dublikāti citās jomās, 715 00:31:02,110 --> 00:31:06,330 bet es esmu stāsta datu bāzē, ka šis ir mans galvenais, mana svarīgākā joma, 716 00:31:06,330 --> 00:31:08,420 kas ir garantēta būt unikāls. 717 00:31:08,420 --> 00:31:09,660 >> Tagad tas šķiet lieks. 718 00:31:09,660 --> 00:31:13,830 Es tagad ierosina, ka mēs pievienot, noklikšķinot uz Saglabāt šeit, 719 00:31:13,830 --> 00:31:17,210 lauks called-- un es eju iet uz priekšu un noklikšķiniet uz AI, 720 00:31:17,210 --> 00:31:19,720 mēs būsim atpakaļ ka pēc brīža, Save. 721 00:31:19,720 --> 00:31:22,540 Es ierosinu, ka šobrīd mana galda izskatās šādi. 722 00:31:22,540 --> 00:31:26,305 Man ir INT lauks sauc ID, char lauks sauc Delfi, 723 00:31:26,305 --> 00:31:31,100 varchar lauks sauc vārds, bet ID, ja tas ir primārais un tāpēc unikāls, 724 00:31:31,100 --> 00:31:33,760 kāpēc es tikai atkritumi laiks ieviest ko 725 00:31:33,760 --> 00:31:39,140 faktiski ir otrais unikāls lauks sauc ID, kas ir par INT? 726 00:31:39,140 --> 00:31:41,980 >> Lietotājvārds, atgādināt, bija jau unikāls, mēs teicām. 727 00:31:41,980 --> 00:31:45,350 Tātad, tikai loģiski, jums nav nepieciešams jebkuru datu bāzes pieredze iemesla 728 00:31:45,350 --> 00:31:47,570 caur to, kāpēc iespējams, man ir ieviesušas 729 00:31:47,570 --> 00:31:50,065 int kā manu unikālo identifikatoru, kā arī? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Kas this-- saku vēlreiz? 732 00:31:53,930 --> 00:31:55,580 >> Mērķauditorija: [dzirdams] 733 00:31:55,580 --> 00:31:59,534 >> DAVID Malan: Random piekļuve ir vieglāk, kāpēc? 734 00:31:59,534 --> 00:32:00,410 >> Mērķauditorija: [dzirdams] 735 00:32:00,410 --> 00:32:02,367 DAVID Malan: Jā, tas ir vienkārši piekļūt numuriem. 736 00:32:02,367 --> 00:32:04,750 Tātad, ja jūs domājat, ka tas patiesi ir tabula, piemēram, masīvs, 737 00:32:04,750 --> 00:32:07,690 tagad man ir unikālos identifikatorus ka es varu lēkt apkārt. 738 00:32:07,690 --> 00:32:11,520 Un labāk, nekā tas joprojām ir tas, ka cik liels ir INT būs atkal? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 bitu vai četri baiti. 741 00:32:15,800 --> 00:32:17,750 >> Cik liela ir my username būs? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Maksimāli? 744 00:32:21,990 --> 00:32:22,880 16 baiti. 745 00:32:22,880 --> 00:32:26,080 >> Tātad, ja jums ir patiešām rūpējas par sniegumu savu kodu, 746 00:32:26,080 --> 00:32:31,390 domāju, ka atpakaļ uz PSet5, jūs vēlaties meklēt četru baitu vērtību vai 16 747 00:32:31,390 --> 00:32:32,240 baitu vērtības, vai ne? 748 00:32:32,240 --> 00:32:33,810 Tas patiešām ir tik vienkārši. 749 00:32:33,810 --> 00:32:38,060 Jums ir jādara četras reizes vairāk darba meklēt lietotājvārdus, jo tiem 750 00:32:38,060 --> 00:32:38,830 ir 16 baiti. 751 00:32:38,830 --> 00:32:41,320 Tātad, jums ir burtiski Salīdzini visus 16 baiti būt 752 00:32:41,320 --> 00:32:43,140 Noteikti jā, tas ir lietotājvārds es gribu. 753 00:32:43,140 --> 00:32:46,610 Tā par INT, jūs varat darīt to tikai ar četriem baitiem. 754 00:32:46,610 --> 00:32:49,212 >> Un kā malā tiem interesē datortehnika, 755 00:32:49,212 --> 00:32:52,420 izrādās, jūs varat fit kaut ko līdzīgu int vai 32 bitu vērtība kaut 756 00:32:52,420 --> 00:32:55,330 sauc reģistrs datorā CPU, kas nozīmē, ka tas ir super, 757 00:32:55,330 --> 00:32:58,400 super ātri, pat vismazākais līmenis datora aparatūru. 758 00:32:58,400 --> 00:33:00,530 Tātad, tur ir tikai priekšrocības visapkārt. 759 00:33:00,530 --> 00:33:01,530 Tātad, ko tas nozīmē? 760 00:33:01,530 --> 00:33:04,850 Patiesībā, kad jūs esat projektēšana datu bāzes tabulu, gandrīz visu laiku 761 00:33:04,850 --> 00:33:07,170 jūs nāksies ne tikai dati jums rūp, 762 00:33:07,170 --> 00:33:09,280 bet arī kaut ko līdzīgu unikāls identifikators 763 00:33:09,280 --> 00:33:11,280 jo tas būs ļaujiet mums darīt citas lietas. 764 00:33:11,280 --> 00:33:13,160 Un pieņemsim paklupt viena problēma šeit. 765 00:33:13,160 --> 00:33:15,990 >> Pieņemsim, ka lietotājiem ir ne tikai lietotājvārdus un nosaukumi, 766 00:33:15,990 --> 00:33:19,540 bet viņiem ir arī lietas, piemēram, pilsētās un valstis un pasta indeksi, vismaz 767 00:33:19,540 --> 00:33:20,432 šeit ASV. 768 00:33:20,432 --> 00:33:22,390 Tātad, es esmu gatavojas iet uz priekšu un tikai ātri teikt, 769 00:33:22,390 --> 00:33:26,180 iedodiet man trīs vairākas kolonnas beigās tabulā. 770 00:33:26,180 --> 00:33:28,900 Un tas būs City, tas būs valsts, 771 00:33:28,900 --> 00:33:30,400 un tas būs Zip. 772 00:33:30,400 --> 00:33:32,710 >> Tagad City, kādi datu veidi ja tas ir, varbūt? 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 Es nezinu, kāda Garākais vārds pilsēta ir. 776 00:33:37,780 --> 00:33:40,571 Kaut kur Amerikā, tur ir iespējams, daži smieklīgi garš vārds, 777 00:33:40,571 --> 00:33:43,605 tāpēc pieņemsim tikai iet ar 255, nedaudz vēsturiski vai patvaļīgi. 778 00:33:43,605 --> 00:33:44,730 Valsts, ko jūs vēlaties darīt? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Spriedums zvans, vai ne? 781 00:33:50,367 --> 00:33:51,700 Kas varbūt visefektīvākais? 782 00:33:51,700 --> 00:33:53,500 Cik zīmes? 783 00:33:53,500 --> 00:33:55,950 Varbūt tikai divi, ja mēs varam aizmukt ar dara tikai, 784 00:33:55,950 --> 00:33:58,250 piemēram, MA par Massachusetts un tā tālāk. 785 00:33:58,250 --> 00:34:00,520 Tātad, es iešu char vērtību divi. 786 00:34:00,520 --> 00:34:03,080 >> Pasta kods ir interesants. 787 00:34:03,080 --> 00:34:06,679 Mēs esam šeit, 02138, tā ka ierosina mums vajadzētu izmantot to, ko? 788 00:34:06,679 --> 00:34:07,470 Tas ir INT, vai ne? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, īsu? 791 00:34:12,800 --> 00:34:14,521 Īss varētu strādāt. 792 00:34:14,521 --> 00:34:15,020 Nē? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR vai pieci, bet es gribu INT. 795 00:34:20,870 --> 00:34:23,710 Kāpēc push atpakaļ uz INT? 796 00:34:23,710 --> 00:34:26,820 Pārliecināt mani no šī. 797 00:34:26,820 --> 00:34:29,210 Kas ir stulba par INT, mana ideja? 798 00:34:29,210 --> 00:34:29,871 Jā. 799 00:34:29,871 --> 00:34:31,199 >> Mērķauditorija: aizņem vairāk atmiņas. 800 00:34:31,199 --> 00:34:32,909 >> DAVID Malan: aizņem vairāk atmiņas. 801 00:34:32,909 --> 00:34:35,310 Četri baiti, bet tu esi ierosinot pasta indeksu 802 00:34:35,310 --> 00:34:39,000 kā piecu baitu vai kāds bija kā CHAR, kas jūtas kā eh, tas nav īsti 803 00:34:39,000 --> 00:34:39,620 lieta. 804 00:34:39,620 --> 00:34:40,489 >> Nu, jautri stāsts. 805 00:34:40,489 --> 00:34:43,179 Pirms daudziem gadiem, kad es mēdzu izmantot Microsoft Outlook uz manu e-pastu, 806 00:34:43,179 --> 00:34:45,150 Es beidzot gribēju pāriet uz Gmail. 807 00:34:45,150 --> 00:34:48,949 Un tā, es eksportē visas manas kontaktus no Outlook kā CSV failu. 808 00:34:48,949 --> 00:34:50,699 Komatiem atdalītas vērtības, kas tieši domāts man 809 00:34:50,699 --> 00:34:54,060 bija visi mani draugi vārdi un pēdējais vārdus un tālruņa numurus un pasta indeksi 810 00:34:54,060 --> 00:34:54,747 un visu to. 811 00:34:54,747 --> 00:34:56,580 Un tad es labi nospēlēja kļūda atverot to uz augšu 812 00:34:56,580 --> 00:34:58,640 Excel, kas ir izklājlapu programma, kas 813 00:34:58,640 --> 00:35:00,289 saprot CSV failus, kā mēs esam redzējuši. 814 00:35:00,289 --> 00:35:03,080 Bet tad, man ir hit, piemēram, Command vai Control S ir viens punkts. 815 00:35:03,080 --> 00:35:06,250 Un Excel acīmredzot brīdī bija funkciju turklāt jebkuru laiku tas 816 00:35:06,250 --> 00:35:08,100 redzēja numuru, tas centās būt noderīgi. 817 00:35:08,100 --> 00:35:11,610 Un, ja šis numurs sākās ar nulles, tas būtu vienkārši atbrīvoties no tiem. 818 00:35:11,610 --> 00:35:13,420 Kāpēc jums ir nepieciešams vadošais nullītes uz veseliem skaitļiem? 819 00:35:13,420 --> 00:35:15,140 Viņi bezjēdzīga, matemātiski. 820 00:35:15,140 --> 00:35:17,530 Viņi nav jēgas ASV Pasta sistēmā. 821 00:35:17,530 --> 00:35:19,954 Tātad, es esmu bijusi uz gadu, līdz šai dienai, es joprojām 822 00:35:19,954 --> 00:35:22,370 ir draugi, ka tad, kad rets gadījums, kas man ir nepieciešams kāds ir 823 00:35:22,370 --> 00:35:24,078 risinātu šajās dienās, Es joprojām redzu, ka man 824 00:35:24,078 --> 00:35:26,767 ir draugs Cambridge, Massachusetts, 2138. 825 00:35:26,767 --> 00:35:29,350 Un tas ir kaitinošas, ja esat mēģina kārtot no programmiski 826 00:35:29,350 --> 00:35:30,975 radīt aploksnes vai vienkārši pierakstītu to uz leju. 827 00:35:30,975 --> 00:35:33,599 Un tas ir tāpēc, ka šī iemesla dēļ, Es izvēlējos nepareizo datu tipu. 828 00:35:33,599 --> 00:35:34,490 Tātad, es mīlu savu ideju. 829 00:35:34,490 --> 00:35:35,650 Let 's izmantot CHAR lauku. 830 00:35:35,650 --> 00:35:38,340 Piecas rakstzīmes, izņemot ir stūra gadījums. 831 00:35:38,340 --> 00:35:42,220 Ja jūs joprojām sūtīt vēstules, dažreiz zip kodi šajās dienās, 832 00:35:42,220 --> 00:35:45,360 viņi, piemēram, plus četri. 833 00:35:45,360 --> 00:35:48,200 Tātad, mums ir nepieciešams defisi un tad mums vajag vēl četras numurus. 834 00:35:48,200 --> 00:35:50,330 Tātad, lai būtu godīgi, tas varētu iet daudz dažādos veidos. 835 00:35:50,330 --> 00:35:52,371 >> Tagad, es esmu gatavojas glabāt tas vienkārši un es esmu tikai 836 00:35:52,371 --> 00:35:54,780 teiksiet, ka tas ir pieci CHAR vērtība, un mēs esam 837 00:35:54,780 --> 00:35:56,739 gatavojas izlaist visu domuzīme plus četri. 838 00:35:56,739 --> 00:35:58,280 Bet tie ir no kompromisus veidus. 839 00:35:58,280 --> 00:36:00,196 Un jūs varat domāt par pašas problēmas, kas rodas 840 00:36:00,196 --> 00:36:01,860 ar tālruņa numuriem vai citās jomās. 841 00:36:01,860 --> 00:36:04,350 >> Un tagad, tas ir faktiski dumjš ceļš iet uz leju. 842 00:36:04,350 --> 00:36:08,000 Pieņemsim, gan Rob un I un Hannah un Maria un [? Davon?] Un Andy 843 00:36:08,000 --> 00:36:12,820 un citi par personāla visi dzīvotu Cambridge, Massachusetts, 02138. 844 00:36:12,820 --> 00:36:17,970 Tas tiešām liekas muļķīgi, ka es esmu pievienojot manu lietotāju galda, pilsēta, valsts, 845 00:36:17,970 --> 00:36:18,630 un zip. 846 00:36:18,630 --> 00:36:20,980 Kāpēc? 847 00:36:20,980 --> 00:36:21,960 >> Mērķauditorija: [dzirdams] 848 00:36:21,960 --> 00:36:22,918 >> DAVID Malan: Say atkal? 849 00:36:22,918 --> 00:36:24,310 Mērķauditorija: [dzirdams] 850 00:36:24,310 --> 00:36:25,850 >> DAVID Malan: Viņi vienmēr kas iet kopā, vai ne? 851 00:36:25,850 --> 00:36:28,660 Kad izrādās, mēs izmantojām domāt šis bija gadījums, kamēr mēs izsmeļoši 852 00:36:28,660 --> 00:36:30,570 meklēja visu ASV, un izrādās, ka tur 853 00:36:30,570 --> 00:36:32,653 ir dažas pretrunas kur vairākas pilsētas ir 854 00:36:32,653 --> 00:36:35,060 tas pats zip, kas ir dīvaini. 855 00:36:35,060 --> 00:36:40,580 Bet, ja mēs paredz, tagad, ka 02138 vienmēr ir Cambridge, Massachusetts, 856 00:36:40,580 --> 00:36:44,910 kāpēc pasaulē jūs glabāt jūsu datu bāze Cambridge un MA un 02138 857 00:36:44,910 --> 00:36:49,357 man un Hannah un Rob un par [? Davon?] Un citiem, kas dzīvo 858 00:36:49,357 --> 00:36:51,190 šeit Cambridge, tas ir pilnīgi lieks. 859 00:36:51,190 --> 00:36:54,480 >> Mums vajadzētu aizmukt tikai ar uzglabāšanu, ko? 860 00:36:54,480 --> 00:36:55,610 Tikai zip kodu. 861 00:36:55,610 --> 00:36:58,660 Bet tad, ja mēs uzglabāt tikai zip kodu, es gribu, iespējams, 862 00:36:58,660 --> 00:37:02,160 manā mājas lapā zināt, kur 02138 ir. 863 00:37:02,160 --> 00:37:03,910 Tātad, man vajag citu tabulu. 864 00:37:03,910 --> 00:37:04,697 Un tas ir OK. 865 00:37:04,697 --> 00:37:07,530 Un patiesībā, tas ir viens no dizaina procesi projektēšana galdi 866 00:37:07,530 --> 00:37:11,472 kas jums jādara, PSet7 kā arī saskaņā ar kuru Jūs vēlaties, lai faktors kopējus datus. 867 00:37:11,472 --> 00:37:14,430 Tāpat kā mēs esam faktoringa out kopīgs kods un faktorings out kopīgs 868 00:37:14,430 --> 00:37:17,380 stili no CSS, šeit pārāk datu bāzē, 869 00:37:17,380 --> 00:37:21,180 ja man ir nepieciešama tikai 02138 unikāli identificēt kādu dzimtajā pilsētā, 870 00:37:21,180 --> 00:37:25,020 neuzglabājiet Cambridge, masas katrs darn lietotājs jūsu galda. 871 00:37:25,020 --> 00:37:29,770 >> Tā vietā, ir atsevišķa tabulu sauc Zips ka būtu ko slejas? 872 00:37:29,770 --> 00:37:33,490 Iespējams, ir ID lauks, tikai tāpēc, lai principi, mēs runājam par tagad. 873 00:37:33,490 --> 00:37:35,720 Iespējams, zip lauks 02138. 874 00:37:35,720 --> 00:37:38,400 Un tad, iespējams, kāda cita slejas? 875 00:37:38,400 --> 00:37:42,950 Pilsēta un valsts, bet ir tikai viens rindu 02138, viena rinda par 02139, 876 00:37:42,950 --> 00:37:44,772 viena rinda par 90210. 877 00:37:44,772 --> 00:37:46,730 Un tas ir burtiski visi zip kodi es zinu. 878 00:37:46,730 --> 00:37:49,012 >> Tāpēc tagad, ko jūs varat darīt? 879 00:37:49,012 --> 00:37:51,220 Tas ir problemātiski, jo tagad es esam ieguvuši divas tabulas. 880 00:37:51,220 --> 00:37:54,660 Tātad, mani lietotāji ir pārsvarā pār šeit, bet viņu pilsēta valsts informācijas ir 881 00:37:54,660 --> 00:37:55,390 šeit. 882 00:37:55,390 --> 00:37:58,635 Tātad, izrādās ar SQL, tur ir patiesībā ir veids, kā pievienoties informāciju, 883 00:37:58,635 --> 00:38:00,470 un jūs redzēsiet, tas ir PSET. 884 00:38:00,470 --> 00:38:03,000 >> Bet izrādās, jūs varat darīt kaut kas līdzīgs šim. 885 00:38:03,000 --> 00:38:10,501 SELECT zvaigzne no lietotājiem, pievienoties rāvējslēdzēji ON Lietotāji dot zip vienāds rāvējslēdzēji dot zip. 886 00:38:10,501 --> 00:38:13,360 Kas ir nedaudz izplūdis, protams, bet tas tikai 887 00:38:13,360 --> 00:38:17,590 nozīmē, izvēlieties Viss no process ņemot manu lietotāju tabula 888 00:38:17,590 --> 00:38:19,580 un mans rāvējslēdzēji galda. 889 00:38:19,580 --> 00:38:22,120 Pievienoties viņiem uz vienu lauks viņiem ir slejā. 890 00:38:22,120 --> 00:38:24,780 Tātad, burtiski darot kaut ko kā šis, un dod man atpakaļ 891 00:38:24,780 --> 00:38:27,360 jauna pagaidu tabulas tas ir plašāks, kas ir lielāks, 892 00:38:27,360 --> 00:38:29,450 ka ir visas šīs kolonnas no viņiem abiem. 893 00:38:29,450 --> 00:38:33,510 Un tas, gluži vienkārši, būtu sintakse darīt kaut kas līdzīgs šim. 894 00:38:33,510 --> 00:38:35,540 >> Tātad, tur ir šis priekšu, bet tur notiek 895 00:38:35,540 --> 00:38:38,950 būt citiem dizaina lēmumus, jūs ir, lai, ne tikai ar indeksiem 896 00:38:38,950 --> 00:38:40,550 bet arī nokļūšanu izaicinājumiem. 897 00:38:40,550 --> 00:38:43,360 Patiesībā, tur ir izaicinājums jebkurā datubāzē dizains 898 00:38:43,360 --> 00:38:47,930 kuru dažreiz divi cilvēki varētu vēlēties piekļūt tiem pašiem rindas datu bāzes 899 00:38:47,930 --> 00:38:48,530 galds. 900 00:38:48,530 --> 00:38:51,450 Tātad, tas ir kaut kas, mēs sastopas PSet7 kā arī. 901 00:38:51,450 --> 00:38:54,686 >> Bet es domāju, ka man apskatīt vienu uzbrukums, kas ir iespējams, SQL. 902 00:38:54,686 --> 00:38:56,560 Kādi ir daži no problēmas, kas var rasties? 903 00:38:56,560 --> 00:38:58,170 Tātad, jūs sastopaties šo PSet7. 904 00:38:58,170 --> 00:39:01,874 Un mēs jums pateikt tieši to, ko kodēšanas risinājums šai problēmai ir. 905 00:39:01,874 --> 00:39:04,790 Bet, ja jūs veikt augstāka līmeņa klases, it īpaši operētājsistēmu, 906 00:39:04,790 --> 00:39:06,950 jūs gatavojas sastapties jautājums Atomitāte, 907 00:39:06,950 --> 00:39:10,080 problēma mēģina darīt vairākas lietas visu uzreiz 908 00:39:10,080 --> 00:39:11,000 bez pārtraukuma. 909 00:39:11,000 --> 00:39:14,560 >> Un es domāju, ka man iepazīstināt šis Ideja par PSet7 ar metaforu 910 00:39:14,560 --> 00:39:18,160 ka es uzzināju sevi Margo Seltzer ir CS164 operētājsistēmas 911 00:39:18,160 --> 00:39:18,990 klases gadiem. 912 00:39:18,990 --> 00:39:22,230 Pieņemsim, ka jums ir viens no šiem kopmītnes ledusskapji savā kopmītnes istabā vai mājā, 913 00:39:22,230 --> 00:39:24,474 un jums ir reāla tieksme uz pienu. 914 00:39:24,474 --> 00:39:27,140 Un tā, jūs nākt mājās no klasēm kādu dienu, atverot ledusskapi. 915 00:39:27,140 --> 00:39:27,620 Ak, damn it. 916 00:39:27,620 --> 00:39:28,870 Nav piens ledusskapī. 917 00:39:28,870 --> 00:39:32,470 Tātad, jūs aizverat ledusskapis, aizslēgt durvis, bloķētu kopmītnes, 918 00:39:32,470 --> 00:39:34,770 staigāt ap stūri lai CVS, saņemt līniju, 919 00:39:34,770 --> 00:39:36,312 un sākt pārbaudes veic kādu pienu. 920 00:39:36,312 --> 00:39:38,978 Un tas ir gatavojas veikt kādu laiku, jo šie damn sevis izrakstīšanās 921 00:39:38,978 --> 00:39:40,570 skaitītāji veikt uz visiem laikiem, lai izmantotu anyway. 922 00:39:40,570 --> 00:39:41,950 Tātad tikmēr, jūsu kaimiņiem nāk mājās. 923 00:39:41,950 --> 00:39:43,470 Viņš vai viņa patiešām patīk pienu, kā arī. 924 00:39:43,470 --> 00:39:45,520 Viņi nāk uz kopmītnes istabā, atvērt ledusskapi, oh, darn to. 925 00:39:45,520 --> 00:39:46,490 Nav vairāk piena. 926 00:39:46,490 --> 00:39:49,040 >> Tātad, viņš vai viņa arī iet ap stūri. 927 00:39:49,040 --> 00:39:51,670 Bet tagad, jo tur ir kā divi vai trīs vai četras CVSes tuvumā, 928 00:39:51,670 --> 00:39:53,800 tās notiek, lai dotos uz kādu no dažādi tie laukumā. 929 00:39:53,800 --> 00:39:55,830 Un tāpēc tagad, dažas minūtes vēlāk, jums abiem 930 00:39:55,830 --> 00:39:58,060 nākt mājās un ugh, sliktākajā problēma kādreiz. 931 00:39:58,060 --> 00:40:00,967 Tagad jums ir pārāk daudz piena jo tas ir gatavojas iet skābs. 932 00:40:00,967 --> 00:40:03,050 Un jums patīk pienu, bet jūs nav īsti patīk pienu. 933 00:40:03,050 --> 00:40:06,730 >> Tāpēc tagad, tas bija dārgs kļūda, jo jums abiem 934 00:40:06,730 --> 00:40:09,870 pieņēma lēmumu, pamatojoties uz stāvoklis kādu mainīgā ka 935 00:40:09,870 --> 00:40:12,660 bija procesā tiek mainīts ar jums, 936 00:40:12,660 --> 00:40:14,560 iniciators gatavojas iegūt pienu. 937 00:40:14,560 --> 00:40:17,785 Tātad, kas ir iespējams, cilvēka risinājums šai problēmai? 938 00:40:17,785 --> 00:40:18,660 Mērķauditorija: [dzirdams] 939 00:40:18,660 --> 00:40:19,430 DAVID Malan: Leave piezīmi, vai ne? 940 00:40:19,430 --> 00:40:21,850 Vienmēr atstājiet piezīmi, ja jūs esat iepazinušies ar šo šovu. 941 00:40:21,850 --> 00:40:23,100 Jā, tur ir divi no mums. 942 00:40:23,100 --> 00:40:25,940 Tātad, vienmēr atstājiet piezīmi, vai burtiski bloķētu ledusskapi 943 00:40:25,940 --> 00:40:28,602 ar kādu atslēga vai kaut kas vairāk nekā, piemēram, ka augšā. 944 00:40:28,602 --> 00:40:31,310 Bet tas tiešām būs Galvenā problēma ar datu bāzes projektēšana, 945 00:40:31,310 --> 00:40:34,710 jo īpaši, ja jūs varētu būt vairākiem pārlūkiem, vairākas laptops, 946 00:40:34,710 --> 00:40:37,450 vairāki lietotāji visi cenšas atjaunināt informāciju uzreiz. 947 00:40:37,450 --> 00:40:40,590 Īpaši jutīga informācija piemēram, finanšu informāciju, 948 00:40:40,590 --> 00:40:43,350 ar ko ar akciju tirdzniecību mājas lapā, piemēram, jūs būsiet ēkas, 949 00:40:43,350 --> 00:40:47,270 Ko darīt, ja jūs vēlaties, lai pārbaudītu, cik daudz naudas jums ir, un tad, ja jums ir pietiekami daudz, 950 00:40:47,270 --> 00:40:48,490 nopirkt kādu akciju? 951 00:40:48,490 --> 00:40:50,899 >> Bet ko tad, ja kāds cits, kas ir kopīgs konts ar jums 952 00:40:50,899 --> 00:40:52,690 ir vienlaikus mēģinot nopirkt kādu akciju? 953 00:40:52,690 --> 00:40:55,190 Tātad, viņš vai viņa ir pārbaudīta konta bilance, jums abiem 954 00:40:55,190 --> 00:40:57,540 saņemt atpakaļ pats atbilde, tur nav piens. 955 00:40:57,540 --> 00:41:00,580 Vai jums abiem saņemt atpakaļ atbildi, Jums ir $ 100 kontā. 956 00:41:00,580 --> 00:41:04,680 Abi jūs mēģināt veikt lēmumu nopirkt vienu daļu no kāda uzņēmuma noliktavā. 957 00:41:04,680 --> 00:41:06,130 >> Un tagad, kas notiek? 958 00:41:06,130 --> 00:41:07,140 Jums ir divas daļas? 959 00:41:07,140 --> 00:41:08,420 Jums nav akcijas? 960 00:41:08,420 --> 00:41:10,320 Problēmas, piemēram, kas var rasties. 961 00:41:10,320 --> 00:41:11,755 Tātad, mēs sastopas kas. 962 00:41:11,755 --> 00:41:14,630 SQL injekcijas uzbrukumiem, par laimi, Ir kaut kas, mēs palīdzēsim jums, 963 00:41:14,630 --> 00:41:17,430 bet tie ir atrociously kopējā šajās dienās tomēr. 964 00:41:17,430 --> 00:41:18,680 Tātad, tas ir tikai piemērs. 965 00:41:18,680 --> 00:41:21,290 Man nav nekādas pretenzijas, ka Harvard PIN sistēma ir 966 00:41:21,290 --> 00:41:23,130 neaizsargāti pret šo konkrēto uzbrukumu. 967 00:41:23,130 --> 00:41:24,160 Mēs esam mēģinājuši. 968 00:41:24,160 --> 00:41:26,120 Bet, jūs zināt, ka mēs ir lauks, kā šis. 969 00:41:26,120 --> 00:41:29,620 Un Yale s Net ID ir līdzīga meklē ekrānu šajās dienās. 970 00:41:29,620 --> 00:41:33,190 Un izrādās, ka varbūt PIN sistēma ir ieviesta PHP. 971 00:41:33,190 --> 00:41:37,050 >> Un, ja tas were-- tas not-- viņi varētu būt kods, kas izskatās šādi. 972 00:41:37,050 --> 00:41:38,210 Viņiem ir divi mainīgie. 973 00:41:38,210 --> 00:41:42,495 Dodiet man lietotājvārdu un paroli No amata super globālo mainīgo 974 00:41:42,495 --> 00:41:43,970 ka mēs runājām par agrāk. 975 00:41:43,970 --> 00:41:47,310 Varbūt Harvard ir vaicājumu tāpat SELECT zvaigzne no lietotājiem 976 00:41:47,310 --> 00:41:50,005 kur lietotājvārds ir vienāda un parole vienāda. 977 00:41:50,005 --> 00:41:51,880 Un paziņojums, ka es esmu tikai tapām to lietojot 978 00:41:51,880 --> 00:41:55,050 cirtaini lencēm notācija no otra diena, kas nozīmē vienkārši iespraudiet vērtībā 979 00:41:55,050 --> 00:41:55,550 šeit. 980 00:41:55,550 --> 00:41:57,449 Es neesmu izmantojot jautājuma zīme paņēmiens. 981 00:41:57,449 --> 00:41:59,240 Man nav nekādu sekundi vai trešo argumentus. 982 00:41:59,240 --> 00:42:02,350 Es esmu tikai burtiski būvējot virkni sevi. 983 00:42:02,350 --> 00:42:04,930 >> Problēma, lai gan, ir tas, ka ja kāds patīk scroob, 984 00:42:04,930 --> 00:42:09,020 kas ir atsauce uz filmu, piesakās ar kaut kas līdzīgs šim, 985 00:42:09,020 --> 00:42:11,250 un es esam izņēmuši punkti ka parasti aizsegt 986 00:42:11,250 --> 00:42:14,370 paroles, kas notiks, ja viņš ir īpaši ļaunprātīgs 987 00:42:14,370 --> 00:42:18,860 un viņa parole varbūt ir 12345, vienu filmu ar nosaukumu "Spaceballs," 988 00:42:18,860 --> 00:42:21,970 bet viņš kritiski tipi A single quote pēc pieciem, 989 00:42:21,970 --> 00:42:24,790 tad burtiski vārds vai telpā, un pēc tam quote, 990 00:42:24,790 --> 00:42:29,160 likt pēdiņas beigās viens vienāds quote vienu, bet paziņojums viņš izlaist ko? 991 00:42:29,160 --> 00:42:32,700 Viņš izlaisti citātu labajā pusē un viņš izlaists citātu pa kreisi. 992 00:42:32,700 --> 00:42:35,170 >> Jo, ja šis uzbrucējs scroob ir pieņēmums 993 00:42:35,170 --> 00:42:38,160 ir tas, ka cilvēki, kas rakstīja šis PHP kods nebija tik spilgti, 994 00:42:38,160 --> 00:42:42,990 varbūt viņi vienkārši ir daži single citē ap interpolācijas 995 00:42:42,990 --> 00:42:45,210 ir mainīgs cirtaini lencēm? 996 00:42:45,210 --> 00:42:48,620 Un tāpēc varbūt, viņš varēja laipns par pabeigtu savu domu 997 00:42:48,620 --> 00:42:53,290 par viņiem, bet tādā veidā, kas notiek ļaut viņam ielauzies PIN sistēmā. 998 00:42:53,290 --> 00:42:55,310 Citiem vārdiem sakot, pieņemsim ka tas ir kods 999 00:42:55,310 --> 00:42:57,140 un mēs tagad iespraudiet ko scroob drukāti. 1000 00:42:57,140 --> 00:42:58,770 Un tas ir sarkans, jo tas ir slikti. 1001 00:42:58,770 --> 00:43:01,310 >> Un pamatā teksts ir tas, ko viņš drukāti, 1002 00:43:01,310 --> 00:43:05,510 scroob varētu triks Harvard serveri vērā būvējot SQL vaicājumu 1003 00:43:05,510 --> 00:43:07,440 virkne, kas izskatās šādi. 1004 00:43:07,440 --> 00:43:11,760 Paroles vienāds 12345 vai viens vienāds vienu. 1005 00:43:11,760 --> 00:43:14,820 Rezultāts, kas, loģiski, ir tas, ka šis būs log scroob 1006 00:43:14,820 --> 00:43:18,360 jo, ja viņa parole ir 12345 vai, ja viens Vienāds 1007 00:43:18,360 --> 00:43:22,660 viens, kas, protams, vienmēr ir taisnība, kas nozīmē scroob vienmēr izpaužas. 1008 00:43:22,660 --> 00:43:26,060 >> Un tā, veids, kā noteikt Tas, tāpat kā ir daudz gadījumu, 1009 00:43:26,060 --> 00:43:28,140 būtu rakstīt vairāk koncentrētos aizsardzībai. 1010 00:43:28,140 --> 00:43:30,390 Izmantot kaut ko līdzīgu mūsu Faktiskais query funkcija, kas 1011 00:43:30,390 --> 00:43:33,980 jūs redzēsiet PSet7, kur mēs plug in kaut kas līdzīgs jautājums iezīmē šeit. 1012 00:43:33,980 --> 00:43:35,980 Un skaistums vaicājums funkcija, kas mums 1013 00:43:35,980 --> 00:43:40,010 dot jums tas aizsargā pret šiem tā sauktās SQL injekcijas uzbrukumiem, kur 1014 00:43:40,010 --> 00:43:44,260 kāds ir tricking savu kodu injicēšanas savs SQL kodu. 1015 00:43:44,260 --> 00:43:47,380 Jo tas, ko vaicājumu funkcijas mēs dodam jums būs faktiski darīt, 1016 00:43:47,380 --> 00:43:51,270 ja jūs izmantojat jautājuma zīmi sintakse un otrais un trešais arguments šeit, 1017 00:43:51,270 --> 00:43:54,590 ir tas, kas to darīja pievienot ievade, ka lietotājs sniegta? 1018 00:43:54,590 --> 00:43:56,060 Tie slīpsvītru citē. 1019 00:43:56,060 --> 00:43:58,590 >> Tātad, tas aizbēg jebkurš potenciāli bīstamas rakstzīmes. 1020 00:43:58,590 --> 00:44:01,000 Tas izskatās dīvaini tagad, bet tas nav neaizsargāti 1021 00:44:01,000 --> 00:44:03,260 jo tas nav mainīt loģiku vairs 1022 00:44:03,260 --> 00:44:06,470 jo tas viss parole Tagad viens citāts tas nav, 1023 00:44:06,470 --> 00:44:07,596 Patiesībā, scroob parole. 1024 00:44:07,596 --> 00:44:09,845 Tātad, tur ir bijuši daži joki par šo gadu gaitā. 1025 00:44:09,845 --> 00:44:12,570 Tātad, tas bija nofotografēties Dažu geek kādā autostāvvietā 1026 00:44:12,570 --> 00:44:16,620 ar ko jūs varētu zināt, ka daži pilsētām un valstis mēģināt skenēt savu licenci 1027 00:44:16,620 --> 00:44:19,460 plate ar rēķinu vai to biļeti jūs ja jūs iet cauri bez, piemēram, 1028 00:44:19,460 --> 00:44:20,660 E-Z Pass lieta. 1029 00:44:20,660 --> 00:44:24,490 Tātad, šis cilvēks pieņem, ka varbūt cilvēki rakstot e-Z Pass sistēmu 1030 00:44:24,490 --> 00:44:28,240 nebija tik spilgti, un varbūt viņi tikko saliktās kopā virkne, 1031 00:44:28,240 --> 00:44:32,190 tāpēc, ka viņš vai viņa nevarēja ļaunprātīgi ne tikai pabeigt savu domu, 1032 00:44:32,190 --> 00:44:35,150 bet faktiski izpildīt sliktu komandu, kas mēs esam vēl nav minēts, 1033 00:44:35,150 --> 00:44:36,380 bet jūs varat droši uzminēt. 1034 00:44:36,380 --> 00:44:39,820 Ka papildus izdzēst un ievietot un atjaunināt un izvēlieties, 1035 00:44:39,820 --> 00:44:43,370 tur ir arī atslēgvārdu sauc kritums, kas burtiski izdzēš visu 1036 00:44:43,370 --> 00:44:45,300 datu bāzē, kas ir īpaši slikts. 1037 00:44:45,300 --> 00:44:48,760 >> Mēs varam tuvināt šo, ja tas ir nedaudz grūts, lai redzētu. 1038 00:44:48,760 --> 00:44:52,300 Tas, kas tagad, ir slavens karikatūra tas ir lieliski gudrs tagad 1039 00:44:52,300 --> 00:44:53,145 un saprotams. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [Smiekli] 1042 00:45:04,750 --> 00:45:05,910 >> Jā, atdzesē. 1043 00:45:05,910 --> 00:45:06,800 Veida geeking out. 1044 00:45:06,800 --> 00:45:08,800 Tātad tie, tad ir SQL injekcijas uzbrukumiem. 1045 00:45:08,800 --> 00:45:13,050 Un viņi tik viegli izvairīties, izmantojot pareizais kods vai tiesības bibliotēkas. 1046 00:45:13,050 --> 00:45:15,947 Un jūs redzēsiet PSet7, kas ir kāpēc mēs jums vaicājumu funkciju. 1047 00:45:15,947 --> 00:45:17,780 Tātad, pāris mežģu ka mēs domājam, ka mēs 1048 00:45:17,780 --> 00:45:19,930 dot jums šeit mūsu Atlikušo minūtes kopā. 1049 00:45:19,930 --> 00:45:24,030 Tātad, kā jūs atceraties no nedēļas nulles, mēs ieviesa šos divus spuldzēm, kas 1050 00:45:24,030 --> 00:45:26,610 ir jauki, ne tikai tāpēc, ka viņi diezgan, un ir krāsains, 1051 00:45:26,610 --> 00:45:29,450 bet tāpēc, ka viņi atbalsta kaut ko sauc par API, pieteikumu 1052 00:45:29,450 --> 00:45:31,980 Programming Interface And in CS50 līdz šim, mēs esam 1053 00:45:31,980 --> 00:45:34,440 galvenokārt koncentrējas uz GET un POST, bet izrādās, 1054 00:45:34,440 --> 00:45:37,390 tur ir citi HTTP darbības vārdi, piemēram, izlietošanu. 1055 00:45:37,390 --> 00:45:39,430 >> Un patiesībā, tas bija slaidu no nedēļas nulles 1056 00:45:39,430 --> 00:45:44,930 saskaņā ar kuru, ja jūs rakstīt kodu, kas sūta a la PSet6 HTTP pieprasījumu, kas 1057 00:45:44,930 --> 00:45:49,647 izskatās šādi ar šo rieciens teksta apakšā, ko sauc JSON, 1058 00:45:49,647 --> 00:45:52,230 vai JavaScript Object notācija ka mēs runājam par nākamo nedēļu, 1059 00:45:52,230 --> 00:45:57,030 Jūs varat ieslēgt vai izslēgt vai mainīt krāsu gaismu, piemēram, tiem. 1060 00:45:57,030 --> 00:46:00,480 Tātad, ja CS50 arī ir papildus daži no šīm spuldzēm šeit New Haven 1061 00:46:00,480 --> 00:46:02,480 Ja vēlaties aizņemties viņiem gala projektiem, 1062 00:46:02,480 --> 00:46:04,370 arī daži Microsoft Lentes, kas ir, piemēram, 1063 00:46:04,370 --> 00:46:07,619 pulkstenis, kas jums valkāt ap plaukstas locītavu ka līdzīgi ir arī tā, ka API jums 1064 00:46:07,619 --> 00:46:10,040 var rakstīt savu programmatūru par viņiem. 1065 00:46:10,040 --> 00:46:12,490 >> Mums ir konts Apple iOS kods tik 1066 00:46:12,490 --> 00:46:15,510 ka, ja jums ir Apple Watch vai iPhone vai iPad vai iPod, 1067 00:46:15,510 --> 00:46:17,707 Jūs varat uzrakstīt kodu, kas faktiski darbojas uz tiem. 1068 00:46:17,707 --> 00:46:19,540 Mums ir viss ķekars of Arduinos, kas ir 1069 00:46:19,540 --> 00:46:22,010 tiny maz datori bez gadījumos, būtībā, 1070 00:46:22,010 --> 00:46:25,240 ka jūs varat savienot, izmantojot USB, parasti uz savu Mac vai PC, 1071 00:46:25,240 --> 00:46:28,810 rakstīt kodu, kas darbojas uz šo fizisko ierīces, kas bieži vien ir sensori uz tiem 1072 00:46:28,810 --> 00:46:30,790 lai jūs varētu mijiedarboties ar reālo pasauli. 1073 00:46:30,790 --> 00:46:32,860 Mums ir viss ķekars Garajā Motion ierīcēm, 1074 00:46:32,860 --> 00:46:36,500 kas ir USB ierīces Mac un Datori, šeit un atkal, New Haven. 1075 00:46:36,500 --> 00:46:40,080 Un, ja jūs savienot to ar savu Mac, jūs faktiski var kontrolēt datoru 1076 00:46:40,080 --> 00:46:42,550 rakstot programmatūru ka, izmantojot infrasarkano staru, 1077 00:46:42,550 --> 00:46:46,360 skaitļi, kur jūsu cilvēka rokas ir, pat nepieskaroties tastatūru. 1078 00:46:46,360 --> 00:46:49,135 Mēs domājam, ka mēs gribētu dalīties ātrs ieskatu šajā, piemēram. 1079 00:46:49,135 --> 00:46:51,428 >> [Mūzikas atskaņošanai] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Tātad, mums ir viss ķekars no šīm lietām, 1082 00:47:57,590 --> 00:48:01,040 Arī sauc Myo aproces kas jūs likts pār jūsu apakšdelms 1083 00:48:01,040 --> 00:48:04,595 un tad jūs varat kontrolēt reālo pasaules vai virtuālā pasaule, kā šis. 1084 00:48:04,595 --> 00:48:06,471 >> [Mūzikas atskaņošanai] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Vai mums ir arī dažas Google Kartons, kas ir burtiski, piemēram, 1087 00:49:20,920 --> 00:49:24,841 kartona kastē, jūs varētu likt uz jūsu sejas, bet slaidu tālrunī tajā 1088 00:49:24,841 --> 00:49:27,590 tā, ka jūs varat ievietot glāzi jūsu tālrunis patiešām tuvu acīm. 1089 00:49:27,590 --> 00:49:30,190 Un Google Kartons ir diezgan lēti pie $ 10 vai $ 20. 1090 00:49:30,190 --> 00:49:32,230 Un tas ir maz lēcas ka nedaudz off maiņā 1091 00:49:32,230 --> 00:49:35,900 attēls uz ekrāna jūsu cilvēku acis, lai dotu jums sajūtu dziļums 1092 00:49:35,900 --> 00:49:39,550 tā, ka jums tiešām ir 3D vide priekšā no jums. 1093 00:49:39,550 --> 00:49:42,927 Mums ir arī daži Samsung Gear, kas ir dārgāka versija par šo, 1094 00:49:42,927 --> 00:49:46,010 bet ka var tāpat slaidu izturēties Android telefonu un jums ilūziju 1095 00:49:46,010 --> 00:49:48,309 of-- vai dot pieredzi Virtuālās realitātes. 1096 00:49:48,309 --> 00:49:50,850 Un mūsu divas minūtes gala, mēs domājam, ka mēs cenšamies to darīt. 1097 00:49:50,850 --> 00:49:55,250 Ja es varētu prognozēt, kāda ir Colton šeit tikai, lai apetītes rosināšanai, 1098 00:49:55,250 --> 00:49:58,442 ļaujiet man iet uz priekšu un mest up uz lielā ekrāna šeit. 1099 00:49:58,442 --> 00:49:59,400 Ļaujiet man nogalināt gaismas. 1100 00:49:59,400 --> 00:50:02,290 Colton, jūs vēlaties, lai iet uz priekšu un likts uz jūsu mobilo uz brīdi 1101 00:50:02,290 --> 00:50:05,171 un nāk vairāk nekā uz vidū skatuves? 1102 00:50:05,171 --> 00:50:07,420 Un jūs vēlaties, lai project-- tas ir tas, ko Colton redz. 1103 00:50:07,420 --> 00:50:10,560 >> Tagad, Wi-Fi šeit ir nav tik spēcīga, lai šo ierīci 1104 00:50:10,560 --> 00:50:13,870 ka tas ir super pārliecinoši, bet Colton ir burtiski 1105 00:50:13,870 --> 00:50:15,710 šajā maģiskajā futūristisks vietā. 1106 00:50:15,710 --> 00:50:16,796 Viņš redz tikai vienu attēlu. 1107 00:50:16,796 --> 00:50:19,920 Jūs redzat savu kreiso un labo aci ka viņa smadzenes tiek izšūšanas kopā 1108 00:50:19,920 --> 00:50:22,260 jo trīsdimensiju vide uz viņa sejas. 1109 00:50:22,260 --> 00:50:24,319 Viņš tikko izvēlēts izvēlnes iespēju šeit. 1110 00:50:24,319 --> 00:50:27,360 Un tā atkal, viņš valkā šo austiņas ar Samsung telefonu par to, kas ir 1111 00:50:27,360 --> 00:50:29,080 vadiem projicē uz mūsu izdevumiem. 1112 00:50:29,080 --> 00:50:30,349 Tagad jūs uz Marsa, es domāju? 1113 00:50:30,349 --> 00:50:31,140 COLTON: Es domāju, ka tā. 1114 00:50:31,140 --> 00:50:32,181 Es neesmu pārliecināts, ka [nedzirdama]. 1115 00:50:32,181 --> 00:50:34,250 [Smiekli] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID Malan: Izrādās Marss ir šīs izvēlnes. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [dzirdams] dažas atdzist vietas, ja mēs gribam iet kuri paredzēti, 1118 00:50:41,590 --> 00:50:43,330 >> DAVID Malan: Kur mēs gribam iet? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [nedzirdama] 1120 00:50:45,837 --> 00:50:48,170 DAVID Malan: Un pieņemsim redzēt kur Colton s ņemot mums tagad. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [nedzirdama] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID Malan: Tātad, tur ir tik daudz dažādās vietās jūs varat veikt pats. 1124 00:50:56,380 --> 00:51:00,590 Tur FAPIs, caur kuru jūs varat rakstīt spēles vai mijiedarbība, kas 1125 00:51:00,590 --> 00:51:01,950 palaist, galu galā, pa tālruni. 1126 00:51:01,950 --> 00:51:03,908 Tātad, jūs tiešām vienkārši rakstot mobilā tālruņa app. 1127 00:51:03,908 --> 00:51:06,380 Bet, pateicoties programmatūru un grafikas iespējas, 1128 00:51:06,380 --> 00:51:08,765 Tagad Colton ir šajā tiny maz māja. 1129 00:51:08,765 --> 00:51:10,515 Un pie riska milzīgs sevi, 1130 00:51:10,515 --> 00:51:13,330 Colton un es stick ap bet beigās klasē šodien šeit 1131 00:51:13,330 --> 00:51:14,300 ja vēlaties nākt un spēlēt. 1132 00:51:14,300 --> 00:51:16,350 Un mēs lai tos atpakaļ nākamnedēļ, kā arī. 1133 00:51:16,350 --> 00:51:18,420 Bez tālāk, Ado tas arī šodien. 1134 00:51:18,420 --> 00:51:21,990 Redzēsim tevi nākamnedēļ. 1135 00:51:21,990 --> 00:51:24,140 >> [MUSIC - Ragga TWINS, "BAD MAN"] 1136 00:51:24,140 --> 00:55:23,146