1 00:00:00,000 --> 00:00:02,405 >> [Мусиц плаиинг] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 Давид Малан: Добро, ово је ЦС50. 4 00:00:11,980 --> 00:00:13,740 Ово је крај недеље осам. 5 00:00:13,740 --> 00:00:15,887 И данас, почињемо да попуните у неким комадима 6 00:00:15,887 --> 00:00:17,720 када је у питању изградња ствари на Интернету. 7 00:00:17,720 --> 00:00:20,020 Дакле, сећам се да је у понедељак трошимо много више времена 8 00:00:20,020 --> 00:00:22,530 на ПХП, што је та динамика програмски језик који 9 00:00:22,530 --> 00:00:26,872 летс нам излаз, између осталог ствари, ХТМЛ и друге такав садржај 10 00:00:26,872 --> 00:00:27,830 да ћемо желе да виде. 11 00:00:27,830 --> 00:00:30,871 Али нисмо баш погледао како идемо за складиштење било какву информацију. 12 00:00:30,871 --> 00:00:34,477 Заиста, готово ништа од тога супер занимљиви сајтови сте данас посјетити 13 00:00:34,477 --> 00:00:36,560 имају неку врсту базе података на задњем крају, зар не? 14 00:00:36,560 --> 00:00:39,540 Фацебоок сигурно чува много података о свима нама и Гмаил свим радњама 15 00:00:39,540 --> 00:00:40,210 ваше е-поште. 16 00:00:40,210 --> 00:00:44,150 >> И тако, многи други сајтови нису само Статични Садржај то је информативни. 17 00:00:44,150 --> 00:00:45,640 То је заправо динамичан, на неки начин. 18 00:00:45,640 --> 00:00:48,480 Ти обезбеди улаз, ажурира странице за друге људе. 19 00:00:48,480 --> 00:00:50,620 Можете добити поруке, шаљете поруке, и тако даље. 20 00:00:50,620 --> 00:00:54,250 Дакле, данас гледамо на ближе се темеље пројекта 21 00:00:54,250 --> 00:00:57,330 да ћете зароните у следећу недеља, ЦС50 финансија, који 22 00:00:57,330 --> 00:01:00,509 заправо ће имати да изградите Нешто није у Ц, али у ПХП. 23 00:01:00,509 --> 00:01:02,550 Сајт који Изгледа мало нешто овако 24 00:01:02,550 --> 00:01:05,810 који омогућава да купују и продају акције које су заправо 25 00:01:05,810 --> 00:01:09,044 намеру да на реалном времену стоцк подаци из Иахоо Финанце. 26 00:01:09,044 --> 00:01:11,960 И тако на крају ћете имати илузија за себе и за кориснике 27 00:01:11,960 --> 00:01:14,550 да у ствари куповине и продаје залихе и добијање скоро у реалном времену 28 00:01:14,550 --> 00:01:16,800 исправке, управљање портфолио, од којих 29 00:01:16,800 --> 00:01:20,310 ће се захтевати да, на крају, база података корисника. 30 00:01:20,310 --> 00:01:23,330 >> Дакле, у својим речима, поготово ако ниси 31 00:01:23,330 --> 00:01:25,670 Супер упознат са рачунаром наука или базе података, што 32 00:01:25,670 --> 00:01:30,790 Да ли знате базу података да је сада, у смислу нонтецхницал? 33 00:01:30,790 --> 00:01:32,300 Шта је то? 34 00:01:32,300 --> 00:01:36,882 Како бисте га описали да цимера или пријатеља? 35 00:01:36,882 --> 00:01:40,100 >> ПУБЛИКА: [неразумљиво] Информације [неразумљиво] 36 00:01:40,100 --> 00:01:44,430 >> Давид Малан: Дакле, списак информација, или сторе-- листу информација 37 00:01:44,430 --> 00:01:47,160 да би желите да сачувате о нечему, као корисник. 38 00:01:47,160 --> 00:01:50,190 А шта слави повезан са њима? 39 00:01:50,190 --> 00:01:53,160 Ако сте корисник на Фацебоок-у или Гмаил, које су карактеристике 40 00:01:53,160 --> 00:01:54,940 да сви ми корисници су? 41 00:01:54,940 --> 00:01:58,530 Као, шта би могло бити неке од колоне у табели у којој смо 42 00:01:58,530 --> 00:01:59,390 алудирао последњи пут? 43 00:01:59,390 --> 00:02:01,140 Јер опет, можете Мислим базе података 44 00:02:01,140 --> 00:02:05,810 стварно као фенси Екцел фајл или Гоогле Табела или Аппле Бројеви фајл. 45 00:02:05,810 --> 00:02:08,280 >> Па, шта мислиш о када помислите на корисника? 46 00:02:08,280 --> 00:02:11,290 Шта они имају? 47 00:02:11,290 --> 00:02:11,790 Шта је ово? 48 00:02:11,790 --> 00:02:12,470 >> ПУБЛИКА: Име. 49 00:02:12,470 --> 00:02:13,303 >> Давид Малан: Име. 50 00:02:13,303 --> 00:02:16,840 Дакле, ако је име, као и Давид Малан би бити име неког корисника. 51 00:02:16,840 --> 00:02:17,980 Шта још нема корисник има? 52 00:02:17,980 --> 00:02:18,770 >> ПУБЛИКА: Лична. 53 00:02:18,770 --> 00:02:19,561 >> Давид Малан: Лична. 54 00:02:19,561 --> 00:02:23,320 Дакле, као матичном броју, као твој Харварду ИД или ваш Јејл Нето ИД или слично. 55 00:02:23,320 --> 00:02:24,923 Шта друго може да корисник има? 56 00:02:24,923 --> 00:02:25,890 >> ПУБЛИКА: Лозинка. 57 00:02:25,890 --> 00:02:29,240 >> Давид Малан: Лозинка, можда сат адреса, број телефона, можда, можда 58 00:02:29,240 --> 00:02:30,050 е-маил адреса. 59 00:02:30,050 --> 00:02:32,640 Дакле, постоји гомиле поља и ово могао некако измакне контроли 60 00:02:32,640 --> 00:02:34,760 брзо чим почнете схватајући, ох, хајде да чувате ово 61 00:02:34,760 --> 00:02:36,190 и хајде да чувате ово и оно. 62 00:02:36,190 --> 00:02:37,657 >> Али како смо заправо урадили? 63 00:02:37,657 --> 00:02:39,740 Дакле, поново је ментални модел да за данас као што смо 64 00:02:39,740 --> 00:02:42,320 зарони у стварном СКЛ, Струцтуред Куери Лангуаге, 65 00:02:42,320 --> 00:02:44,186 је база података која изгледа овако. 66 00:02:44,186 --> 00:02:45,310 То је само редове и колоне. 67 00:02:45,310 --> 00:02:48,309 А можете замислити Гоогле Спреадсхеетс или било који број других програма. 68 00:02:48,309 --> 00:02:52,130 Али оно што је кључно за МиСКЛ, која је База података софтвер ћемо користити, 69 00:02:52,130 --> 00:02:54,920 на слободним отворено аваилабле-- Фацебоок употребе 70 00:02:54,920 --> 00:02:59,200 то и било који број осталих вебситес-- База података складишти ствари релатионалли. 71 00:02:59,200 --> 00:03:01,770 И релациона база података само значи онај који буквално 72 00:03:01,770 --> 00:03:03,672 чува своје податке у редовима и колонама. 73 00:03:03,672 --> 00:03:04,630 То је тако једноставно. 74 00:03:04,630 --> 00:03:07,230 >> Дакле, чак и нешто што Орацле можда сте углавном чули 75 00:03:07,230 --> 00:03:08,271 је релациона база података. 76 00:03:08,271 --> 00:03:10,929 А испод хаубе га, складишти податке у редовима и колонама. 77 00:03:10,929 --> 00:03:12,970 И Орацле вам је терети много новца да то уради, 78 00:03:12,970 --> 00:03:15,550 док МиСКЛ оптужби ви ништа за исто. 79 00:03:15,550 --> 00:03:18,790 Дакле, СКЛ ће да нам дају најмање четири операције. 80 00:03:18,790 --> 00:03:23,190 Способност да изабере податке, као што прочитане података, уметак, брисање и ажурирање података. 81 00:03:23,190 --> 00:03:25,525 Другим речима, то су заиста четири кључне операције 82 00:03:25,525 --> 00:03:28,950 који ће нам омогућити да промени ствари у тим редовима и колонама. 83 00:03:28,950 --> 00:03:33,250 >> Алат да ћемо данас користимо посебно да науче СКЛ и да играју са њим 84 00:03:33,250 --> 00:03:34,627 поново зове ПХП МиАдмин. 85 00:03:34,627 --> 00:03:35,460 То је веб басед алат. 86 00:03:35,460 --> 00:03:38,200 Укупно случајност да пише у ПХП. 87 00:03:38,200 --> 00:03:42,400 Али то ће нам дати графички кориснички интерфејс тако да можемо да 88 00:03:42,400 --> 00:03:46,054 креирају ове редове и колоне а потом разговарати са њима преко кода. 89 00:03:46,054 --> 00:03:47,970 Дакле, хајде да сада почињу да оно што мислим да је искрено 90 00:03:47,970 --> 00:03:51,000 врста забаве процеса изградњу задњи крај сајтова, 91 00:03:51,000 --> 00:03:54,580 делови да корисници не види, али сигурно стало до, 92 00:03:54,580 --> 00:03:56,170 јер је то прилично података иде. 93 00:03:56,170 --> 00:03:59,570 Тако, слично Ц и А мало мање као ПХП, 94 00:03:59,570 --> 00:04:04,954 СКЛ или база података која подржава СКЛ има типова бар ови подаци 95 00:04:04,954 --> 00:04:05,870 и гомиле других. 96 00:04:05,870 --> 00:04:08,107 ЗНАК, ВАРЦХАР, ИНТ, БИГИНТ, ДЕЦИМАЛ, и ДАТЕТИМЕ. 97 00:04:08,107 --> 00:04:09,940 И ту је цела гомила других карактеристика, 98 00:04:09,940 --> 00:04:11,940 али хајде да урадимо тако што начин стварног пример. 99 00:04:11,940 --> 00:04:16,450 >> Ја идем у ЦС50 ИДЕ где, унапред сам пријављени 100 00:04:16,450 --> 00:04:19,372 и ја исто сам посетио УРЛ за овај алат се зове ПХП-МиАдмин. 101 00:04:19,372 --> 00:04:22,580 И у Проблем сет седам, ми ћемо рећи сте тачно како доћи до овог интерфејса 102 00:04:22,580 --> 00:04:23,200 као. 103 00:04:23,200 --> 00:04:25,640 На горњем левом углу, приметити пише предавање. 104 00:04:25,640 --> 00:04:27,610 И то само значи да унапред, сам створио 105 00:04:27,610 --> 00:04:31,360 празан база података под називом Предавање да нема табеле у њему још. 106 00:04:31,360 --> 00:04:32,600 Нема редова и колона. 107 00:04:32,600 --> 00:04:34,308 Јер, први ствар коју ћемо да радимо 108 00:04:34,308 --> 00:04:37,100 се почињу да направите табелу који ће да складиште наше кориснике. 109 00:04:37,100 --> 00:04:39,100 >> Дакле, буквално преко овде на десно, ја сам 110 00:04:39,100 --> 00:04:42,070 ће рећи базе података Желим сто се зове Усерс. 111 00:04:42,070 --> 00:04:44,845 Дакле, ово је као да сам фајл желите да сачувате све моје податке у. 112 00:04:44,845 --> 00:04:45,720 А колико колона? 113 00:04:45,720 --> 00:04:47,740 Па, хајде да буде једноставно за сада. 114 00:04:47,740 --> 00:04:51,855 Само желим да сачувате као да је корисничко име и име за корисника. 115 00:04:51,855 --> 00:04:53,020 Ми ћемо почети мали. 116 00:04:53,020 --> 00:04:55,370 Дакле, желим две колоне укупно. 117 00:04:55,370 --> 00:04:57,360 И ја ћу ићи напред и кликните на Го. 118 00:04:57,360 --> 00:04:59,210 А онда, за њих колоне, шта ћу 119 00:04:59,210 --> 00:05:04,576 да Па-- ако овај интернет цооператес-- све у реду, 120 00:05:04,576 --> 00:05:05,950 па ћемо да пробамо поново. 121 00:05:05,950 --> 00:05:09,180 Идем да створе сто под називом Корисници са две колоне, кликните на Го, у реду. 122 00:05:09,180 --> 00:05:10,520 Сада имамо стварно брзо. 123 00:05:10,520 --> 00:05:12,065 Хвала вам, јако добро. 124 00:05:12,065 --> 00:05:14,440 У реду, па шта желимо Ове колоне да се зове? 125 00:05:14,440 --> 00:05:16,080 >> Дакле, један ће се звати име. 126 00:05:16,080 --> 00:05:19,480 Дакле, све што видим овде-- и интерфејс искрено се мало ружно крају, 127 00:05:19,480 --> 00:05:21,270 Када почнете да куцате у свим овим подацима. 128 00:05:21,270 --> 00:05:27,450 Али, оно што је лепо је таква врста парадоксално, ја стварање колоне, 129 00:05:27,450 --> 00:05:29,977 али алат има лакомислено положио их у редовима 130 00:05:29,977 --> 00:05:31,560 тако да можете подесити ове колоне. 131 00:05:31,560 --> 00:05:33,550 Дакле, ту нема два недовршена под називом. 132 00:05:33,550 --> 00:05:36,180 А једна од тих области и Желим да се зове име, 133 00:05:36,180 --> 00:05:38,000 а други поље желим да позовем име. 134 00:05:38,000 --> 00:05:40,340 >> А сад морам да бирам врсте података за ове ствари. 135 00:05:40,340 --> 00:05:42,330 Тако, док је у Екцел и Гоогле табеле, 136 00:05:42,330 --> 00:05:45,531 ако желите колону, буквално само укуцајте име или име, притисните Ентер. 137 00:05:45,531 --> 00:05:48,030 Можда је то храбар лице да Само да разјаснимо, али то је то. 138 00:05:48,030 --> 00:05:50,140 Ви не наведете типови стубова. 139 00:05:50,140 --> 00:05:53,790 Сада у Гоогле табеле или Екцел, иоу Можда одредите како ће подаци изречена. 140 00:05:53,790 --> 00:05:58,120 Могао би у менију Формат, а ви Можете одредити показати као знак долара, 141 00:05:58,120 --> 00:05:59,900 покажемо као покретним зарезом вредности. 142 00:05:59,900 --> 00:06:01,990 >> Дакле, то је слично у духу да је оно што смо урадити, 143 00:06:01,990 --> 00:06:04,740 али ово је стварно неће приморавати подаци да буде одређени тип. 144 00:06:04,740 --> 00:06:07,750 Сада, иако сам малопре је рекао да постоји само неколико врста података, 145 00:06:07,750 --> 00:06:11,120 заправо постоји много, и они су 146 00:06:11,120 --> 00:06:12,910 у различитом степену специфичности. 147 00:06:12,910 --> 00:06:14,970 И успут, ти могу ни фенси ствари 148 00:06:14,970 --> 00:06:17,520 као геометрије за складиштење унутар базе података. 149 00:06:17,520 --> 00:06:19,250 Можете сместити ствари као ГПС координате 150 00:06:19,250 --> 00:06:22,420 и заправо наћи, математички, тачке које су у непосредној близини другима. 151 00:06:22,420 --> 00:06:24,128 Али ћемо ово остане супер једноставна 152 00:06:24,128 --> 00:06:26,800 и идите до овде, све тзв врсте стринг. 153 00:06:26,800 --> 00:06:29,240 >> Дакле, овде је списак олуја са гомила опција. 154 00:06:29,240 --> 00:06:32,740 ЗНАК, ВАРЦХАР, ТИНИТЕКСТ, МЕДИУМТЕКСТ, ЛОНГТЕКСТ. 155 00:06:32,740 --> 00:06:34,110 И то је некако огромна. 156 00:06:34,110 --> 00:06:37,610 И, нажалост, донекле парадоксално до Ц, 157 00:06:37,610 --> 00:06:40,120 цхар није стварно ЗНАК. 158 00:06:40,120 --> 00:06:44,170 Ако наведете у бази података да је ваш тип података је ЗНАК, 159 00:06:44,170 --> 00:06:47,390 то значи да да, то је ЗНАК, али је један или више знакова. 160 00:06:47,390 --> 00:06:49,630 И мораш да наведете колико Цхарс желите. 161 00:06:49,630 --> 00:06:51,636 Дакле, шта је типичан Дужина за корисничко име? 162 00:06:51,636 --> 00:06:52,760 Да ли постоји типично лимит? 163 00:06:52,760 --> 00:06:53,920 >> ПУБЛИКА: [неразумљиво] 164 00:06:53,920 --> 00:06:55,050 >> Давид Малан: 16 можда? 165 00:06:55,050 --> 00:06:55,990 Нешто налик томе. 166 00:06:55,990 --> 00:06:57,948 Знате, у дан, што је било осам. 167 00:06:57,948 --> 00:07:00,289 Понекад је 16, а понекад то је чак и више од тога. 168 00:07:00,289 --> 00:07:02,080 И тако, ово не Мислим дај ми један знак. 169 00:07:02,080 --> 00:07:04,730 То значи да морам да прецизира дужина поља, 170 00:07:04,730 --> 00:07:07,402 и сада могу рећи нешто као 16. 171 00:07:07,402 --> 00:07:08,610 И ту је компромис овде. 172 00:07:08,610 --> 00:07:11,360 Дакле, видећемо у тренутку да то значи једну, 173 00:07:11,360 --> 00:07:14,620 свака корисничко име мора да буде 16 знакова. 174 00:07:14,620 --> 00:07:18,720 Али чекај мало, М-А-Л-А-Н. Ако је то моје име и ја користим само пет, 175 00:07:18,720 --> 00:07:23,070 шта би ви предлажете да је база података да раде за друге 11 знакова да 176 00:07:23,070 --> 00:07:24,471 Ја сам резервисан простор за? 177 00:07:24,471 --> 00:07:25,220 Шта би ти урадио? 178 00:07:25,220 --> 00:07:26,480 >> ПУБЛИКА: [неразумљиво] 179 00:07:26,480 --> 00:07:27,160 >> Давид Малан: Да, само да их све нулл. 180 00:07:27,160 --> 00:07:28,290 Нека им простора. 181 00:07:28,290 --> 00:07:30,816 Али вероватно нула, тако да Много Бацксласх нула. 182 00:07:30,816 --> 00:07:33,190 Дакле, с једне стране, имамо Сада се побринуо да моје корисничко име 183 00:07:33,190 --> 00:07:34,780 не може бити више од 16 карактера. 184 00:07:34,780 --> 00:07:37,590 И друга страна је то да ако сам имао јако дуго име 185 00:07:37,590 --> 00:07:39,940 или хтели стварно дуго усернаме као неки од вас 186 00:07:39,940 --> 00:07:44,840 момци можда има у том колеџу или у Иале.еду, не можете имати. 187 00:07:44,840 --> 00:07:47,177 И тако, у ствари, ако сте икада регистрован за веб сајт 188 00:07:47,177 --> 00:07:49,385 и галамити да говоре лозинка је предугачак 189 00:07:49,385 --> 00:07:52,710 или ваше корисничко име је предуго, то је једноставно зато што програмер, када 190 00:07:52,710 --> 00:07:55,500 конфигурисање своју базу података, одлучио да ће ово поље 191 00:07:55,500 --> 00:07:57,150 бити дужи од те дужине. 192 00:07:57,150 --> 00:08:00,580 >> У реду, па шта ако је наставимо да наведемо? 193 00:08:00,580 --> 00:08:05,240 Колико дуго Уколико Име типичног хуману бити? 194 00:08:05,240 --> 00:08:07,492 Колико ликови, 16? 195 00:08:07,492 --> 00:08:09,450 Претпостављам да би могли наћи неког у овој соби 196 00:08:09,450 --> 00:08:13,210 где од његовог првог плус задњи Име је дуже од 16 знакова. 197 00:08:13,210 --> 00:08:14,850 Дакле, шта је боље од тога, 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 Већи? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> ПУБЛИКА: [неразумљиво] 203 00:08:21,855 --> 00:08:23,700 Давид Малан: 5.000, о мој Боже. 204 00:08:23,700 --> 00:08:26,309 Дакле, то је вероватно пристојно горње границе, рећи ћемо. 205 00:08:26,309 --> 00:08:28,350 И ту смо некако има донијети пресуду позив. 206 00:08:28,350 --> 00:08:30,400 Као, нема прави одговор овде. 207 00:08:30,400 --> 00:08:32,740 Бесконачни није сасвим могуће, јер смо на крају смо 208 00:08:32,740 --> 00:08:34,781 да бих-- смо ће остати без меморије. 209 00:08:34,781 --> 00:08:36,909 Дакле, морамо да се направи пресуда позива у неком тренутку. 210 00:08:36,909 --> 00:08:41,010 >> Веома честа би, на пример, да Користи, и дозволите ми да одредите ЦХАР овде 211 00:08:41,010 --> 00:08:46,050 као пре-- 255 је буквално горња граница на овом софтвера за базе података 212 00:08:46,050 --> 00:08:46,700 пре много година. 213 00:08:46,700 --> 00:08:48,575 И тако, доста људи би само рећи, у реду. 214 00:08:48,575 --> 00:08:49,420 255 је граница. 215 00:08:49,420 --> 00:08:50,620 Хајде да користи максимум. 216 00:08:50,620 --> 00:08:51,870 А ово је прилично смешно. 217 00:08:51,870 --> 00:08:55,060 Као, ако је неко куцање наме фор 200 плус карактера, 218 00:08:55,060 --> 00:08:56,140 то мало смешно. 219 00:08:56,140 --> 00:08:59,624 >> Али, запамтите да АСЦИИ није једини систем за ликове. 220 00:08:59,624 --> 00:09:01,540 И тако, посебно у Много азијских језика 221 00:09:01,540 --> 00:09:04,248 где има знакова не можемо изражавају на клавијатурама попут мог САД 222 00:09:04,248 --> 00:09:08,209 тастатура, неки ликови заправо заузимају 16 бита, уместо осам битова. 223 00:09:08,209 --> 00:09:10,250 И тако, ово стварно није све то неразумно 224 00:09:10,250 --> 00:09:12,250 да нам је потребно више Простор ако желимо да се уклопи 225 00:09:12,250 --> 00:09:16,252 већи ликови од самог САД центриц оне које смо склони да разговарају. 226 00:09:16,252 --> 00:09:17,460 Дакле, треба нам неки горња граница. 227 00:09:17,460 --> 00:09:21,470 Ја не знам шта је најбоља је, али 255 је генерално честа. 228 00:09:21,470 --> 00:09:22,700 25 осећа низак. 229 00:09:22,700 --> 00:09:23,857 16, 32 осећа низак. 230 00:09:23,857 --> 00:09:25,690 Ја бих грешку на страни нешто већи. 231 00:09:25,690 --> 00:09:27,330 Али постоји компромис, као и увек. 232 00:09:27,330 --> 00:09:31,902 Шта је, можда, очигледно Трговина офф резервисања 255 знакова 233 00:09:31,902 --> 00:09:33,360 за име свачији у мом базе података? 234 00:09:33,360 --> 00:09:34,230 >> ПУБЛИКА: [неразумљиво] 235 00:09:34,230 --> 00:09:34,510 >> Давид Малан: Шта је то? 236 00:09:34,510 --> 00:09:35,430 >> ПУБЛИКА: [неразумљиво] 237 00:09:35,430 --> 00:09:37,138 >> Давид Малан: То је Пуно сећања, зар не? 238 00:09:37,138 --> 00:09:42,280 М-А-Л-А-Н. Управо сам узалуд 250 ликови само да чувате своје име 239 00:09:42,280 --> 00:09:46,000 одбрана, само у случају да неко у класи има стварно дуг назив. 240 00:09:46,000 --> 00:09:47,940 То изгледа као непотребног компромису. 241 00:09:47,940 --> 00:09:52,040 >> Дакле, испоставља се да СКЛ, овај језик база података, 242 00:09:52,040 --> 00:09:55,480 заправо подржава нешто назива ВАРЦХАР, или променљива ЗНАК. 243 00:09:55,480 --> 00:09:59,390 И ово је лепо у томе ова Омогућава вам да одредите није фиксна 244 00:09:59,390 --> 00:10:01,900 ширина, већ, променљива ширина. 245 00:10:01,900 --> 00:10:05,060 И још специфичније, максимална ширина поља. 246 00:10:05,060 --> 00:10:08,901 Дакле, то значи да име може бити више од 250 карактера, 247 00:10:08,901 --> 00:10:10,150 али свакако може бити мање. 248 00:10:10,150 --> 00:10:11,733 А база података ће бити паметан. 249 00:10:11,733 --> 00:10:14,860 Ако не ставите у М-А-Л-А-Н, то ће само да користи пет, 250 00:10:14,860 --> 00:10:18,120 можда шест бајтова за слично пратећи нулл карактер, 251 00:10:18,120 --> 00:10:23,330 а не троше додатна 249 или 250 бајтова непотребно. 252 00:10:23,330 --> 00:10:27,380 >> Дакле, ово изгледа као да би требало почели су са овом причом. 253 00:10:27,380 --> 00:10:29,140 Али увек постоји компромис. 254 00:10:29,140 --> 00:10:33,024 Дакле, с једне стране, име корисника имам наведено да се тешко кодиран на 16, 255 00:10:33,024 --> 00:10:34,940 а можда то није било право позив, можда га 256 00:10:34,940 --> 00:10:40,040 је, али зашто не користити ВАРЦХАРс за све? 257 00:10:40,040 --> 00:10:42,020 >> Она постоји са разлогом. 258 00:10:42,020 --> 00:10:46,200 Зашто не користите ВАРЦХАРс за сваку област чија је дужина не знате унапред 259 00:10:46,200 --> 00:10:48,180 ако изгледа да је велика ствар, зар не? 260 00:10:48,180 --> 00:10:50,482 Користите само онолико простора колико треба до те границе? 261 00:10:50,482 --> 00:10:51,271 >> ПУБЛИКА: Спорије. 262 00:10:51,271 --> 00:10:52,146 Давид Малан: Спеллер? 263 00:10:52,146 --> 00:10:53,120 ПУБЛИКА: Чини спорије? 264 00:10:53,120 --> 00:10:53,970 Давид Малан: Ох, то је спорији. 265 00:10:53,970 --> 00:10:55,720 Добро, то је скоро увек одговор, искрено. 266 00:10:55,720 --> 00:10:56,520 Као, шта је компромис? 267 00:10:56,520 --> 00:10:58,570 То ни кошта више простора или то кошта више времена. 268 00:10:58,570 --> 00:11:00,111 Дакле, у овом случају, можда ће бити спорија. 269 00:11:00,111 --> 00:11:00,920 Zašto? 270 00:11:00,920 --> 00:11:05,830 >> ПУБЛИКА: [неразумљиво] одређивање [неразумљиво]. 271 00:11:05,830 --> 00:11:06,640 >> Давид Малан: Добро. 272 00:11:06,640 --> 00:11:09,670 Дакле, можда се сећате чак и од ПСЕД5, играње са својим приступом 273 00:11:09,670 --> 00:11:12,750 у речник, ако имате да доделите меморију динамички или задржати 274 00:11:12,750 --> 00:11:14,630 расте пуфер, који може заправо бити спор. 275 00:11:14,630 --> 00:11:16,963 Ако имате да позовете маллоц испод хаубе и можда 276 00:11:16,963 --> 00:11:19,610 то је оно МиСКЛ ради, тако сигурно да бити случај. 277 00:11:19,610 --> 00:11:22,430 А ако мислите начин Назад на ПСет-- или чак 278 00:11:22,430 --> 00:11:26,340 Недеља два, када смо радили ствари као што су бинарна претрага или чак линеарна претрага, 279 00:11:26,340 --> 00:11:30,690 једна од лепих ствари о свакој речи у базе података или сваке речи у колони 280 00:11:30,690 --> 00:11:33,690 као потпуно исте дужине, чак и ако гомила тих знакова 281 00:11:33,690 --> 00:11:37,390 су празне, да можете користити директног приступа на вашим подацима, зар не? 282 00:11:37,390 --> 00:11:40,310 >> Ако знате да је сваки Реч је удаљена 16 карактера, 283 00:11:40,310 --> 00:11:46,460 можете да користите поинтер аритметику, тако да говоре, и идите на нас 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 и можете само скочити одмах користећи аритметику 285 00:11:49,589 --> 00:11:51,130 било речи у вашој бази података. 286 00:11:51,130 --> 00:11:54,280 Док ако је ВАРЦХАР, шта мислиш, уместо да урадим? 287 00:11:54,280 --> 00:11:55,960 >> [Пхоне Рингинг] 288 00:11:55,960 --> 00:11:58,680 >> Ако је то ВАРЦХАР, ви Не могу да користим случајан приступ. 289 00:11:58,680 --> 00:12:01,341 Оно што треба тражити или учинити? 290 00:12:01,341 --> 00:12:01,840 Да? 291 00:12:01,840 --> 00:12:03,240 >> ПУБЛИКА: [неразумљиво] 292 00:12:03,240 --> 00:12:04,310 >> Давид Малан: Лоок кроз вхоле-- трага 293 00:12:04,310 --> 00:12:06,518 целу листу у потрази за шта, највероватније? 294 00:12:06,518 --> 00:12:08,356 Какав посебну вриједност? 295 00:12:08,356 --> 00:12:09,230 ПУБЛИКА: [неразумљиво] 296 00:12:09,230 --> 00:12:11,105 Давид Малан: Лоокинг за нулл терминатори 297 00:12:11,105 --> 00:12:13,637 да одредите одвајање речи. 298 00:12:13,637 --> 00:12:15,720 Дакле, опет, компромис, и нема прави одговор. 299 00:12:15,720 --> 00:12:18,380 Али ово је место где, посебно када ваши корисници добијају да буде много 300 00:12:18,380 --> 00:12:21,700 а ваш терет на својим серверима, Број људи који користе постаје висока, 301 00:12:21,700 --> 00:12:23,650 То су заправо нетривијална одлуке. 302 00:12:23,650 --> 00:12:26,640 Дакле, можемо оставити их као ово, али хајде да спустимо у десно 303 00:12:26,640 --> 00:12:27,332 овде. 304 00:12:27,332 --> 00:12:30,290 Сада, постоји неколико колона где морамо да направимо пресуду позив. 305 00:12:30,290 --> 00:12:35,170 Има ли смисла да дозволи корисник је име, корисничко име једног корисника или се корисник је 306 00:12:35,170 --> 00:12:36,370 Име, да буде нула? 307 00:12:36,370 --> 00:12:37,610 То је само празно. 308 00:12:37,610 --> 00:12:40,360 Осећа мало бесмислена, па сам неће да проверимо те кутије. 309 00:12:40,360 --> 00:12:42,670 Али испоставља се у А база података, можете рећи, 310 00:12:42,670 --> 00:12:44,620 неко може најповољније, да имају ову вредност. 311 00:12:44,620 --> 00:12:47,180 Ова колона нема да стварно бити тамо. 312 00:12:47,180 --> 00:12:48,570 >> Сада, ту је падајући мени. 313 00:12:48,570 --> 00:12:50,810 И приметио сам и даље тамо у првом реду, 314 00:12:50,810 --> 00:12:52,520 тако да говорим о корисничким именом сада. 315 00:12:52,520 --> 00:12:56,290 И испоставило се да база података, за разлику од простог пука табеле, 316 00:12:56,290 --> 00:12:58,520 има моћне функције називају индекси. 317 00:12:58,520 --> 00:13:02,600 И индекс је начин говори база података у унапред да сам ја људском 318 00:13:02,600 --> 00:13:03,900 сам паметнији од тебе. 319 00:13:03,900 --> 00:13:10,430 >> Знам шта врсте упита, изаберите или убаците или брисање или ажурирање, 320 00:13:10,430 --> 00:13:13,182 да је мој код ће се завршити до радили на овој бази података. 321 00:13:13,182 --> 00:13:14,390 Желим да прочитам доста података. 322 00:13:14,390 --> 00:13:15,681 Желим да убаците доста података. 323 00:13:15,681 --> 00:13:17,530 Желим да се стално делете много података. 324 00:13:17,530 --> 00:13:21,520 Ако знам да ћу бити приступа поље као име пуно, 325 00:13:21,520 --> 00:13:24,770 Ја превентивно могу рећи база података, знам више од тебе, 326 00:13:24,770 --> 00:13:29,220 и желим да декретом који требало би индекс ову област. 327 00:13:29,220 --> 00:13:33,200 Где индексирање поље или колону значи да је база података у унапред 328 00:13:33,200 --> 00:13:37,040 треба да позајмим неке идеје из, рецимо, недеље четири и пет и шест из ЦС50 329 00:13:37,040 --> 00:13:39,240 и заправо изградити нешто као бинарни потрази 330 00:13:39,240 --> 00:13:41,560 дрво или нешто генерално назива Б дрво 331 00:13:41,560 --> 00:13:43,410 да учите у класи као ЦС124 332 00:13:43,410 --> 00:13:46,710 на Харварду, један алгоритми класа, или било који број других места. 333 00:13:46,710 --> 00:13:49,570 >> База података и паметна људи који га спроводе 334 00:13:49,570 --> 00:13:53,880 ће схватити како да сачувате тај сто информација 335 00:13:53,880 --> 00:13:57,061 у меморији тако да претреси и друге операције су супер брзо. 336 00:13:57,061 --> 00:13:58,060 Не морате то да урадим. 337 00:13:58,060 --> 00:14:00,640 Не морате да имплементирају линеарна претрес или бинарна претрага 338 00:14:00,640 --> 00:14:03,300 или спојити врсту или избор врста, ништа од тога. 339 00:14:03,300 --> 00:14:06,590 База то ради за вас ако кажеш да превентивно да индексу ово поље. 340 00:14:06,590 --> 00:14:09,100 >> И можете превише види, ту је неке друге карактеристике 341 00:14:09,100 --> 00:14:11,010 можемо рећи база података да спроведе. 342 00:14:11,010 --> 00:14:16,431 Шта би то значило да изаберем Уникуе Из овог менија, само интуитивно? 343 00:14:16,431 --> 00:14:16,930 Да? 344 00:14:16,930 --> 00:14:17,889 >> ПУБЛИКА: [неразумљиво] 345 00:14:17,889 --> 00:14:19,930 Давид Малан: Да, корисничко име мора да буде јединствена. 346 00:14:19,930 --> 00:14:23,330 Да ли је то добро или лоше за база података, за веб сајт са корисницима? 347 00:14:23,330 --> 00:14:24,965 Уколико корисничка бити јединствен? 348 00:14:24,965 --> 00:14:25,880 Да, вероватно. 349 00:14:25,880 --> 00:14:27,800 Ако је то оно што је поље користимо да се пријавите, 350 00:14:27,800 --> 00:14:31,867 не заиста желите да људи имају исти осећај или исто корисничко име. 351 00:14:31,867 --> 00:14:33,700 Дакле, можемо имати База спроводи тако 352 00:14:33,700 --> 00:14:37,880 да сада у мом ПХП код или било ком језику, Ја не морам да, на пример, проверите 353 00:14:37,880 --> 00:14:41,490 нужно ради ово корисничко име постоје, пре него што је неко регистровати? 354 00:14:41,490 --> 00:14:46,690 База података неће дозволити да двоје људи по имену Давид или Маланс региструју у овом случају. 355 00:14:46,690 --> 00:14:50,030 >> И као по страни, иако је ово Мени само вам омогућава да изаберете једну, 356 00:14:50,030 --> 00:14:54,550 јединствено индекс је онај који је индексиран за супер брзим перформансама, 357 00:14:54,550 --> 00:14:56,100 али и спроводи јединственост. 358 00:14:56,100 --> 00:14:58,850 И ми ћемо се вратити на оно што је Друга два значи за тренутак. 359 00:14:58,850 --> 00:15:00,930 У међувремену, ако одем у мој други ред, који 360 00:15:00,930 --> 00:15:06,230 је име корисника, треба да одредите да би име бити јединствен? 361 00:15:06,230 --> 00:15:09,550 Не, зато што свакако могао бих-- нема два Дејвид 362 00:15:09,550 --> 00:15:11,050 Маланс у овој соби, највероватније. 363 00:15:11,050 --> 00:15:14,290 Али, ако смо изабрали друго име, можемо сигурно имати судара. 364 00:15:14,290 --> 00:15:16,130 >> Сетите се хасх табеле и слично. 365 00:15:16,130 --> 00:15:18,604 Дакле, ми сигурно не желимо да је поље име јединствен. 366 00:15:18,604 --> 00:15:21,270 Дакле, ми ћемо само отићи да као цртицом, цртица, повлака, ништа. 367 00:15:21,270 --> 00:15:22,660 И ја ћу да одем све остало сам. 368 00:15:22,660 --> 00:15:25,035 Заиста, већина ових области нећемо морати да бринемо о томе. 369 00:15:25,035 --> 00:15:27,830 И када сам спреман да би сачували, Ако Интернет сарађује, 370 00:15:27,830 --> 00:15:35,032 Кликнем Саве, и веома, веома, веома полако се база података спашени. 371 00:15:35,032 --> 00:15:37,240 И сад сам се вратио на ово интерфејс, који се, истина, 372 00:15:37,240 --> 00:15:38,680 је огромна на први поглед. 373 00:15:38,680 --> 00:15:42,450 Али све ћу да урадите је да кликнете на реч корисницима у горњем левом углу. 374 00:15:42,450 --> 00:15:47,630 Ја идем горе, кликните на дугме Корисници, а подразумевано, то 375 00:15:47,630 --> 00:15:50,180 је извршено неко СКЛ, али више о томе у овом тренутку. 376 00:15:50,180 --> 00:15:52,654 Ево само резиме онога што сам урадио. 377 00:15:52,654 --> 00:15:55,320 И да се не бринем да видиш споменути латинског и шведски овде. 378 00:15:55,320 --> 00:16:00,490 То су само подразумевани подешавања, јер МиСКЛ првобитно, 379 00:16:00,490 --> 00:16:04,000 или ПХП МиАдмин, један од њих двојице догодило да се напише неки шведских људи. 380 00:16:04,000 --> 00:16:06,100 Али то је небитно у нашем случају овде. 381 00:16:06,100 --> 00:16:08,280 >> У реду, па зашто је све ово интересантно? 382 00:16:08,280 --> 00:16:13,050 Испоставило се, могу уметнути податке у базу података од стране писања кода. 383 00:16:13,050 --> 00:16:15,940 И ја идем напријед и у мом досијеу овде, ја сам 384 00:16:15,940 --> 00:16:19,000 отићи напред и претварати се ово је повезан на ту базу података, која 385 00:16:19,000 --> 00:16:23,040 није у овом тренутку, али ће бити када дођемо до проблема сет седам. 386 00:16:23,040 --> 00:16:25,640 И ја ћу ићи напред и извршава функцију која се зове упит, 387 00:16:25,640 --> 00:16:28,730 коју ћемо вам дати у проблему сет седам је дистрибутивни кодекс, који 388 00:16:28,730 --> 00:16:31,490 Потребно је најмање један аргумент, што је само низ. 389 00:16:31,490 --> 00:16:33,460 Низ СКЛ кода. 390 00:16:33,460 --> 00:16:36,700 Дакле, ти си хтео да науче како да напиши Струцтуред Куери Лангуаге. 391 00:16:36,700 --> 00:16:41,270 >> Ако желите да унесете нови ред у моју база података јер је неко поднео 392 00:16:41,270 --> 00:16:47,600 облик мом коду, буквално бих напиши ИНСЕРТ ИНТО корисницима следеће 393 00:16:47,600 --> 00:16:52,800 поља: корисничко име, зарез, име, вредностима, 394 00:16:52,800 --> 00:16:57,480 и сада морам да убаците нешто као Малан, и цитирам, 395 00:16:57,480 --> 00:17:01,490 Крај цитата 'Давид Малан.' А сада чак и за оне који нису упознати са СКЛ, 396 00:17:01,490 --> 00:17:07,830 Зато сам ја користећи једноструке наводнике унутар овог зеленог низа? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Шта би могао бити овде разлог? 399 00:17:13,040 --> 00:17:14,609 >> Обратите пажњу Ја сам ко-дружење два језика. 400 00:17:14,609 --> 00:17:18,099 Упит је ПХП функција, али је потребно аргумент. 401 00:17:18,099 --> 00:17:21,740 И тај аргумент мора да буде себи написан на другом језику зове 402 00:17:21,740 --> 00:17:23,500 СКЛ Струцтуред Куери Лангуаге. 403 00:17:23,500 --> 00:17:27,940 Дакле, све што сам Управо је истакао овде 404 00:17:27,940 --> 00:17:30,380 је тај језик зове СКЛ. 405 00:17:30,380 --> 00:17:36,290 Дакле, шта је са појединачним наводнике, баш као брз проверу исправности? 406 00:17:36,290 --> 00:17:37,324 Хајде. 407 00:17:37,324 --> 00:17:37,990 Они су жице. 408 00:17:37,990 --> 00:17:41,590 Дакле, цитат, под знацима навода Малан и цитата, под знацима навода Дејвид Малан су жице. 409 00:17:41,590 --> 00:17:45,210 И само размишљам интуитивно сада, знајући шта знате о Ц и ПХП, 410 00:17:45,210 --> 00:17:50,220 зашто нисам ово, које сам обично Половни двоструки наводници за стрингове? 411 00:17:50,220 --> 00:17:52,310 Зашто ја не желим то да урадим? 412 00:17:52,310 --> 00:17:52,810 Да? 413 00:17:52,810 --> 00:17:53,685 >> ПУБЛИКА: [неразумљиво] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 Давид Малан: Управо тако. 416 00:17:57,570 --> 00:17:59,653 Зато што сам већ користим Двоструки наводници на путу 417 00:17:59,653 --> 00:18:01,929 изван аргумента на ПХП функција, 418 00:18:01,929 --> 00:18:03,470 Ја бих само збунити преводиоца. 419 00:18:03,470 --> 00:18:04,860 Неће знати, да они иду заједно? 420 00:18:04,860 --> 00:18:05,735 Да ли ово иде заједно? 421 00:18:05,735 --> 00:18:06,810 Да ли ово иде заједно? 422 00:18:06,810 --> 00:18:08,070 Дакле, уместо наизменично. 423 00:18:08,070 --> 00:18:11,784 >> Или сам могао да урадим овако нешто, обрнута коса црта цитат или косу црту цитат. 424 00:18:11,784 --> 00:18:14,200 Искрено, да тек почиње да бити веома нечитљива и ружно. 425 00:18:14,200 --> 00:18:16,790 Али то би постигли исти резултат као добро. 426 00:18:16,790 --> 00:18:19,760 >> Дакле, ако сам био да изврши ово упит сада, хајде да видимо шта се дешава. 427 00:18:19,760 --> 00:18:22,740 Ја ћу да наставим сада и прилично него изврши ПХП код који 428 00:18:22,740 --> 00:18:24,610 је место где ћете играти у проблему сет седам, 429 00:18:24,610 --> 00:18:27,200 Идем да уместо иде у ПХП МиАдмин. 430 00:18:27,200 --> 00:18:29,770 И ручно идем да иде на картицу СКЛ, 431 00:18:29,770 --> 00:18:31,580 и дозволите ми да зумира интерфејсу. 432 00:18:31,580 --> 00:18:34,007 И ја ћу да налепите у оно што сам сам откуцао. 433 00:18:34,007 --> 00:18:36,090 А кодирање боја има променио сада мало, 434 00:18:36,090 --> 00:18:38,750 само зато што су формати програм ствари мало другачије. 435 00:18:38,750 --> 00:18:41,960 Али приметити да све што сам урадио је сам рекао, убаците у Корисницима. 436 00:18:41,960 --> 00:18:45,790 Ја сам наведено, онда, у зарез одвојена парентхесизед листа два 437 00:18:45,790 --> 00:18:48,850 поља које желим да убаците, и онда сам буквално сам рекао вредности 438 00:18:48,850 --> 00:18:51,510 затим другог парен, па онда две вредности 439 00:18:51,510 --> 00:18:53,520 Желим да плуг-ин, и сада за сваки случај, 440 00:18:53,520 --> 00:18:55,010 Ја ћу ставити зарез на крају. 441 00:18:55,010 --> 00:18:56,570 Дакле, то није Ц. Ово није ПХП. 442 00:18:56,570 --> 00:18:59,970 Ово је сада СКЛ и ја га лијепити у овој веб базирани интерфејс који је 443 00:18:59,970 --> 00:19:02,710 само да ме пусти, чим кликните на Го, 444 00:19:02,710 --> 00:19:08,060 изврши овај упит на бази ради унутар ЦС50 ИДЕ. 445 00:19:08,060 --> 00:19:09,470 >> Дакле, ово је добро. 446 00:19:09,470 --> 00:19:12,520 Приметимо да је рекао један ред убачена, је супер брз, 447 00:19:12,520 --> 00:19:15,190 0.0054 секунди да убаците те податке. 448 00:19:15,190 --> 00:19:16,610 Дакле, то звучи прилично здраво. 449 00:19:16,610 --> 00:19:19,350 То реформаттед мој упит за мене овде само да га видим 450 00:19:19,350 --> 00:19:21,730 у врсти боје кодирани верзије. 451 00:19:21,730 --> 00:19:24,540 Али сада, ако кликнем Бровсе, приметити да, чак и 452 00:19:24,540 --> 00:19:29,070 мада има доста нереда на екран, мој сто сада има два реда. 453 00:19:29,070 --> 00:19:30,700 >> Дакле, пусти ме иди и уради друго. 454 00:19:30,700 --> 00:19:33,760 Уместо тога, нека ме идите на картицу СКЛ поново. 455 00:19:33,760 --> 00:19:40,723 И овај пут ћу убацити нешто Роб и његово име ће бити роб Боуден. 456 00:19:40,723 --> 00:19:42,330 Боуден. 457 00:19:42,330 --> 00:19:44,040 Идемо кликните Саве. 458 00:19:44,040 --> 00:19:46,140 Упс, радије. 459 00:19:46,140 --> 00:19:48,890 >> Кликните на дугме Потражи опет, и сада приметити Имам два реда. 460 00:19:48,890 --> 00:19:52,390 Дакле, ово је само начин сложенији начин отварања Гоогле табеле 461 00:19:52,390 --> 00:19:54,010 и само куцањем ред у колони. 462 00:19:54,010 --> 00:19:57,070 Али, оно што је кључно јесте да сада имамо синтаксу 463 00:19:57,070 --> 00:20:00,220 са којима се пишу код тако да на крају крајева, ми заправо могли 464 00:20:00,220 --> 00:20:01,790 урадите нешто и то. 465 00:20:01,790 --> 00:20:05,380 Подсетимо да ПХП подржава Супер глобалне променљиве. 466 00:20:05,380 --> 00:20:08,415 >> Шта је унутар долар потписати подвлаку ГЕТ у ПХП? 467 00:20:08,415 --> 00:20:10,290 Узели смо поглед на један или два једноставна примера. 468 00:20:10,290 --> 00:20:15,640 И у ПСет6, сећате ли здраво тачка ПХП који користи ову променљиву. 469 00:20:15,640 --> 00:20:17,870 Шта иде тамо? 470 00:20:17,870 --> 00:20:21,015 Или шта је то? 471 00:20:21,015 --> 00:20:22,522 Мало гласније. 472 00:20:22,522 --> 00:20:23,790 >> ПУБЛИКА: [неразумљиво] 473 00:20:23,790 --> 00:20:25,030 >> Давид Малан: То је снег семе низа, који 474 00:20:25,030 --> 00:20:27,714 је само фенси начин да се каже низ који има кључне вредности парова. 475 00:20:27,714 --> 00:20:28,880 И тастери нису нумерички. 476 00:20:28,880 --> 00:20:30,420 Они су речи или жице. 477 00:20:30,420 --> 00:20:32,750 Конкретно, шта су оне кључне вредности парова? 478 00:20:32,750 --> 00:20:35,110 Одакле долазе? 479 00:20:35,110 --> 00:20:35,620 Молим? 480 00:20:35,620 --> 00:20:36,994 >> ПУБЛИКА: [неразумљиво] 481 00:20:36,994 --> 00:20:37,660 Давид Малан: Не? 482 00:20:37,660 --> 00:20:40,700 Где оним кључним вредност паровима долазе? 483 00:20:40,700 --> 00:20:42,490 Kaži ponovo? 484 00:20:42,490 --> 00:20:44,610 Опет? 485 00:20:44,610 --> 00:20:46,472 Јесам ли ја једина расправа нешто? 486 00:20:46,472 --> 00:20:47,810 >> [СМЕХ] 487 00:20:47,810 --> 00:20:49,042 >> Тако је, зар не? 488 00:20:49,042 --> 00:20:50,435 >> ПУБЛИКА: [неразумљиво] 489 00:20:50,435 --> 00:20:52,560 Давид Малан: Да, долазе из стринг упита. 490 00:20:52,560 --> 00:20:55,380 Дакле, ако ревинд на време да када смо одиграли са Гоогле 491 00:20:55,380 --> 00:20:59,600 и ми смо отишли ​​у Гоогле.цом сласх претрага знак питања К једнако мачке, 492 00:20:59,600 --> 00:21:03,550 ако бих ударио Ентер а ако Гоогле је имплементиран у ПХП-у, 493 00:21:03,550 --> 00:21:07,017 ПХП код које Гоогле написао ће имати приступ долар знак 494 00:21:07,017 --> 00:21:11,600 наглашавају да будем у којима је кључни зове К и вредност 495 00:21:11,600 --> 00:21:17,680 тзв мачке које онда могу користити радили стварни претрагу са. 496 00:21:17,680 --> 00:21:20,860 >> Дакле, у ствари, шта ћу сад је се вратим у ПХП цоде 497 00:21:20,860 --> 00:21:23,140 да опет ћете видети више у ПСет7. 498 00:21:23,140 --> 00:21:25,440 И уместо да зачепљења у тешким кодираним вредностима које 499 00:21:25,440 --> 00:21:27,630 не изгледа као да је веома динамичан сајт, 500 00:21:27,630 --> 00:21:30,680 Ја ћу вам дати теасер од шта је ваш стварни број би урадио. 501 00:21:30,680 --> 00:21:32,854 Ти би ставио у два Питање обележава овако. 502 00:21:32,854 --> 00:21:34,270 Ја не знам шта је корисничко име је. 503 00:21:34,270 --> 00:21:37,390 Ја не знам шта је Име ће бити, 504 00:21:37,390 --> 00:21:39,470 али знам да могу да их динамички. 505 00:21:39,470 --> 00:21:43,420 >> Дакле, ако код смо сада писање је код ради на Гоогле-овим серверима, 506 00:21:43,420 --> 00:21:46,940 или ако је то здраво тачка ПХП који долази са ПСет6, 507 00:21:46,940 --> 00:21:48,650 Идем да пређе у функција упит 508 00:21:48,650 --> 00:21:51,450 баш као принтф, друга два аргумента. 509 00:21:51,450 --> 00:21:57,120 ГЕТ, цитат, под знацима навода корисничко име, и ГЕТ, цитат, под знацима навода име. 510 00:21:57,120 --> 00:22:00,720 А сада, приметио шта се Општа структура је овде. 511 00:22:00,720 --> 00:22:03,320 Имам на левој стране позива, 512 00:22:03,320 --> 00:22:05,480 Ова функција се зове упит у ПХП. 513 00:22:05,480 --> 00:22:08,160 Још увек имам као први Аргумент, само низ текста. 514 00:22:08,160 --> 00:22:11,000 >> Али то низ текста написана на језику који се зове СКЛ. 515 00:22:11,000 --> 00:22:12,616 И искрено, то није велики језик. 516 00:22:12,616 --> 00:22:14,990 Идемо само да разговарамо о формално данас, заиста. 517 00:22:14,990 --> 00:22:17,031 А онда у проблему сет седам, релативно има 518 00:22:17,031 --> 00:22:18,800 неке карактеристике које ми смо да искористи. 519 00:22:18,800 --> 00:22:22,530 Оцене питање, међутим, значи прикључите вредност овде и утикач у другом вредности 520 00:22:22,530 --> 00:22:23,130 овде. 521 00:22:23,130 --> 00:22:26,010 И обавештење, ја сам изоставио оно из целог куоте-- дамн 522 00:22:26,010 --> 00:22:30,470 То-- око цитат обележава овај пут. 523 00:22:30,470 --> 00:22:34,930 Ја сам изоставио цитат знаци око знаком питања, 524 00:22:34,930 --> 00:22:36,410 Жао ми је, овај пут. 525 00:22:36,410 --> 00:22:38,870 >> Дакле, шта је лепо о томе Питање карактеристика знак који 526 00:22:38,870 --> 00:22:42,830 ПХП тежи да подржи, Руби и Питхон и други језици, 527 00:22:42,830 --> 00:22:45,730 ово само значи утикач у неким вреднују овде и знаш шта? 528 00:22:45,730 --> 00:22:48,300 Ви схватити да ли ћете користити појединачни цитати или двоструки наводници. 529 00:22:48,300 --> 00:22:50,966 Не гњави ме са онима интелектуално незанимљиве детаљи. 530 00:22:50,966 --> 00:22:53,780 Али, уверите се да је тачно тако да је мој код је коначно 531 00:22:53,780 --> 00:22:57,010 оперативно и безбедно, који ће имати значење пре времена. 532 00:22:57,010 --> 00:23:00,460 >> Сада, колико аргументи укупно, само да буде јасно, да ли је упит функција узимање? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Свако ко жели да гласа за више од два? 535 00:23:07,581 --> 00:23:08,080 Три? 536 00:23:08,080 --> 00:23:10,001 Наравно, зашто? 537 00:23:10,001 --> 00:23:10,920 Зашто три? 538 00:23:10,920 --> 00:23:12,305 >> ПУБЛИКА: [неразумљиво] 539 00:23:12,305 --> 00:23:13,180 Давид Малан: Управо тако. 540 00:23:13,180 --> 00:23:14,610 Први део је стринг. 541 00:23:14,610 --> 00:23:18,640 Други аргумент је знак долара наглашавају ГЕТ конзоле корисничко име. 542 00:23:18,640 --> 00:23:21,950 И трећи аргумент је иста ствар, али само име. 543 00:23:21,950 --> 00:23:24,590 Другим речима, сада ако сам имао веб формулар 544 00:23:24,590 --> 00:23:27,149 која је морала да текстуална поља, један за корисничко име корисника, 545 00:23:27,149 --> 00:23:29,690 један за његово име, само Као што можете видети на сајту 546 00:23:29,690 --> 00:23:32,120 када се региструјете за неки сајт, ово би могло 547 00:23:32,120 --> 00:23:35,450 бити код на задњем крају да заправо ради уметање сада 548 00:23:35,450 --> 00:23:37,220 у базу података. 549 00:23:37,220 --> 00:23:40,870 >> Сада с друге стране, да пустимо брзо напред. 550 00:23:40,870 --> 00:23:43,840 Претпоставимо да је корисник сада улогујете и желите 551 00:23:43,840 --> 00:23:48,860 да напишете ПХП код који проверава да ли особа која је управо пријављени 552 00:23:48,860 --> 00:23:52,250 је заправо корисник, можете користе прилично једноставну синтаксу. 553 00:23:52,250 --> 00:23:55,832 Можете рећи СЕЛЕЦТ, рецимо стар, где звезда значи све. 554 00:23:55,832 --> 00:23:57,540 Ја не знам шта Желим, тако да само ми дај 555 00:23:57,540 --> 00:24:01,585 све колоне из табеле зове корисници где, и то је лепо. 556 00:24:01,585 --> 00:24:03,710 Избор подржава оно што је зове предикат, која је 557 00:24:03,710 --> 00:24:06,630 као начин квалификација оно што желите. 558 00:24:06,630 --> 00:24:10,590 Где корисничко име једнако цитат, под знацима навода Малан. 559 00:24:10,590 --> 00:24:13,680 Дакле овде сам ембеддед унутар аргумент 560 00:24:13,680 --> 00:24:16,110 на ПХП функција, а линије СКЛ кода. 561 00:24:16,110 --> 00:24:18,680 И то СКЛ кода ово Време је буквално 562 00:24:18,680 --> 00:24:21,790 да тражи цитатом, под знацима навода Малан. 563 00:24:21,790 --> 00:24:24,420 >> Сада то није све што корисно, тако да ћу прескочити да 564 00:24:24,420 --> 00:24:28,650 и ја ћу склонити Овај савет од Бради, и идите 565 00:24:28,650 --> 00:24:30,990 и плуг-ин уместо упитник овде. 566 00:24:30,990 --> 00:24:33,290 Дакле, само да буде јасно, шта треба ми други аргумент 567 00:24:33,290 --> 00:24:37,480 бити ако је неко само пријављени и ја желите да проверите да ли је он или она је заправо 568 00:24:37,480 --> 00:24:39,265 корисник? 569 00:24:39,265 --> 00:24:40,140 ПУБЛИКА: [неразумљиво] 570 00:24:40,140 --> 00:24:40,890 Давид Малан: Да. 571 00:24:40,890 --> 00:24:44,120 Чујем знак долара црте ГЕТ цитат, Крај цитата име. 572 00:24:44,120 --> 00:24:50,040 И то треба да се врати мени било који од редова у мом базе 573 00:24:50,040 --> 00:24:51,986 који имају име за Малан. 574 00:24:51,986 --> 00:24:54,860 Сада надам се, ја ћу да се вратим нула ако никада Малан је био овде, 575 00:24:54,860 --> 00:24:56,290 или један ако има. 576 00:24:56,290 --> 00:24:59,026 Не би требало да се вратим два или три или четири. 577 00:24:59,026 --> 00:24:59,526 Zašto? 578 00:24:59,526 --> 00:25:00,220 >> ПУБЛИКА: [неразумљиво] 579 00:25:00,220 --> 00:25:01,120 >> Давид Малан: Рекао сам јединствена, зар не? 580 00:25:01,120 --> 00:25:01,750 Једноставан разлог. 581 00:25:01,750 --> 00:25:04,030 Зато сам рекао да мора да бити јединствени, само логично, 582 00:25:04,030 --> 00:25:07,940 можете имати само нула или један Маланс у овом таблице базе података. 583 00:25:07,940 --> 00:25:10,965 Сада као на страну, само да сте видели да, иако сам стално користи ГЕТ 584 00:25:10,965 --> 00:25:14,350 и иако ПСет6 само користи ГЕТ, сигурно може имати ПОСТ. 585 00:25:14,350 --> 00:25:17,212 И сећам се да је друга порука техника за достављање информација 586 00:25:17,212 --> 00:25:19,170 из неког облика, али је не појави у УРЛ. 587 00:25:19,170 --> 00:25:22,690 То је мало сигурније, свакако за ствари попут корисничких имена и лозинки, 588 00:25:22,690 --> 00:25:25,210 који ПСет7 ће, у ствари, укључују. 589 00:25:25,210 --> 00:25:28,130 >> Дакле, хајде да урадимо ово у ПХП МиАдмин и види шта се дешава. 590 00:25:28,130 --> 00:25:30,020 Ја ћу да идем на таб МиСКЛ. 591 00:25:30,020 --> 00:25:34,450 И приметите да затезна вредност за ПХП МиАдмин, само да покуша да буде од помоћи, 592 00:25:34,450 --> 00:25:37,050 је да изаберете звезду од корисника где је један. 593 00:25:37,050 --> 00:25:39,430 Па, један је увек истина, тако ово има глупо ефикасна 594 00:25:39,430 --> 00:25:40,400 од само изаберите све. 595 00:25:40,400 --> 00:25:42,691 Али ја ћу бити мало више педантно и ручно 596 00:25:42,691 --> 00:25:45,920 откуцати СЕЛЕЦТ звезду од корисника. 597 00:25:45,920 --> 00:25:48,294 >> Сада технички, можете цитирам име столовима. 598 00:25:48,294 --> 00:25:50,460 То је реткост да морате да, али то нису приметили 599 00:25:50,460 --> 00:25:52,240 Ваше нормалне цитати на америчком тастатуре. 600 00:25:52,240 --> 00:25:54,760 Ово је такозвана бацктицк, која је генерално у горњем левом руком 601 00:25:54,760 --> 00:25:56,000 угао тастатури. 602 00:25:56,000 --> 00:25:58,500 Али то је реткост да ћеш заправо треба да смета са тим, 603 00:25:58,500 --> 00:25:59,950 па ћу их прескочити у сваком случају. 604 00:25:59,950 --> 00:26:02,280 Дакле, сада, пусти ме само напред и ударио иде. 605 00:26:02,280 --> 00:26:06,616 И колико редова треба да добијем када сам изаберите звезду од корисника? 606 00:26:06,616 --> 00:26:08,407 >> ПУБЛИКА: [неразумљиво] 607 00:26:08,407 --> 00:26:09,990 Давид Малан: Број редова, наравно. 608 00:26:09,990 --> 00:26:12,390 Али колико у томе бетон прича сада? 609 00:26:12,390 --> 00:26:14,640 Два, јер је ја и ту је Роб. 610 00:26:14,640 --> 00:26:19,370 Дакле, ако кликнем идем, визуелно да видим Ја сам се вратила, заиста, два реда. 611 00:26:19,370 --> 00:26:22,060 Има доста нереда на екран, али ја видим само два реда. 612 00:26:22,060 --> 00:26:28,580 Насупрот томе, ако то поново уради и ИЗАБЕРИ звездице од корисника, где корисничко име 613 00:26:28,580 --> 00:26:31,840 једнако куоте, под знацима навода Малан, сада, ако кликнем Го, 614 00:26:31,840 --> 00:26:33,970 Само ћу да се вратим један ред. 615 00:26:33,970 --> 00:26:36,499 И на крају, ако то урадим овако нешто, претпостављам 616 00:26:36,499 --> 00:26:38,290 да не стало узимајући све, 617 00:26:38,290 --> 00:26:41,020 која је врста бесмислено сада, јер постоје само две колоне. 618 00:26:41,020 --> 00:26:43,103 Није да сам одабира огромна количина података. 619 00:26:43,103 --> 00:26:46,720 Претпоставимо да идем напред и не СЕЛЕЦТ име ФРОМ 620 00:26:46,720 --> 00:26:51,990 корисници, где корисничко име једнако Малан, оно што је лепо о СКЛ искрено, 621 00:26:51,990 --> 00:26:54,290 је да се заиста ради само ста ти то кажем. 622 00:26:54,290 --> 00:26:57,550 То је прилично сажет, али буквално само реците шта желите да урадите. 623 00:26:57,550 --> 00:27:01,130 Одаберите име од корисника гдје корисничко име једнако Малан. 624 00:27:01,130 --> 00:27:03,440 И стварно је то експлицитно. 625 00:27:03,440 --> 00:27:08,410 Дакле, сада ако сам погодио Иди, колико редови ћу да се вратим? 626 00:27:08,410 --> 00:27:10,770 Један, јер то је само Малан, надам се. 627 00:27:10,770 --> 00:27:13,100 Или нула ако није тамо, али један максимално. 628 00:27:13,100 --> 00:27:17,610 >> А колико колона ће се вратим? 629 00:27:17,610 --> 00:27:18,450 Колико колоне? 630 00:27:18,450 --> 00:27:20,658 Овај пут, ја ћу да се један, јер нисам 631 00:27:20,658 --> 00:27:22,380 изаберите звезду, која је све. 632 00:27:22,380 --> 00:27:27,900 Сада сам избором само име, па сам само да се вратимо једну колону и један ред. 633 00:27:27,900 --> 00:27:31,730 И некако изгледа на одговарајући начин смешно, само гледам Супер 634 00:27:31,730 --> 00:27:33,060 мали овако. 635 00:27:33,060 --> 00:27:34,290 Дакле, шта се стварно дешава? 636 00:27:34,290 --> 00:27:36,890 Када изврши СКЛ упит користећи изаберите, 637 00:27:36,890 --> 00:27:38,700 на шта циљаш вратила из базе података 638 00:27:38,700 --> 00:27:42,970 је као привремени сто са редова и колона, можда, 639 00:27:42,970 --> 00:27:46,260 али да ништа изоставити да није заправо изабран од тебе. 640 00:27:46,260 --> 00:27:49,010 Дакле, то је као да је неко имао велики табелу свих ученика 641 00:27:49,010 --> 00:27:51,610 регистрован за неке група студената, а ви кажете, 642 00:27:51,610 --> 00:27:55,097 дај ми све од бруцоша који су регистрован за нашу студентску групу, шта 643 00:27:55,097 --> 00:27:56,930 ваш колега у група студената може да уради 644 00:27:56,930 --> 00:27:58,430 се они могли предати само сте целу табелу. 645 00:27:58,430 --> 00:27:59,742 То је као да кажеш изаберите звезду. 646 00:27:59,742 --> 00:28:02,200 И то је мало досадан ако можете само желео бруцош. 647 00:28:02,200 --> 00:28:05,640 И тако, ако уместо тога рекао, изаберите звезда из базе података табеле 648 00:28:05,640 --> 00:28:08,470 где год једнако цитат, под знацима навода бруцош, 649 00:28:08,470 --> 00:28:10,810 то је као да твој пријатељ у студентској групи 650 00:28:10,810 --> 00:28:13,770 буквално је нагласио и копирати само бруцоша редова, 651 00:28:13,770 --> 00:28:16,780 налепљен их у новом Гоогле Табела или Екцел датотека, 652 00:28:16,780 --> 00:28:18,860 и предао вас Бацк резултира само фајл. 653 00:28:18,860 --> 00:28:21,710 То је све што се дешава на концептуално овде. 654 00:28:21,710 --> 00:28:23,920 >> Дакле, на крају, можемо да урадимо неке прилично фанци ствари 655 00:28:23,920 --> 00:28:26,560 чувањем ствари као што су корисничка имена и лозинке и слично. 656 00:28:26,560 --> 00:28:30,310 Али, испоставило се, треба да урадимо мало другачије од овога. 657 00:28:30,310 --> 00:28:34,750 Није тако паметан да само сачувате корисничко име и лозинку. 658 00:28:34,750 --> 00:28:37,790 Неко раније, мислим доле, предложио ИД. 659 00:28:37,790 --> 00:28:40,787 Сада лична би могао бити као Харварда ИД или Иале нето ИД, 660 00:28:40,787 --> 00:28:42,870 али би могло бити још једноставнија у нашем случају базе. 661 00:28:42,870 --> 00:28:45,120 И заиста, чест случај је још један колону. 662 00:28:45,120 --> 00:28:46,953 И ја ћу да одем напред и изменим свој сто. 663 00:28:46,953 --> 00:28:49,521 А ако играте са овај интерфејс за ПСет7, 664 00:28:49,521 --> 00:28:51,770 видећете да можете да проверите ово дугме овде и додајте 665 00:28:51,770 --> 00:28:53,750 поље на почетку табеле. 666 00:28:53,750 --> 00:28:56,720 И сада, ако ја кликните на Го, иде да ми даш једну од оних облика 667 00:28:56,720 --> 00:28:57,600 од раније. 668 00:28:57,600 --> 00:29:00,170 Ја ћу да додам поље под називом личну карту. 669 00:29:00,170 --> 00:29:03,070 И ја ћу се нумеричка тип направити. 670 00:29:03,070 --> 00:29:05,362 >> Имам гомилу од вредности за нумерици. 671 00:29:05,362 --> 00:29:08,677 Ја ћу само да одаберете ИНТ и Не брините о различитим величинама. 672 00:29:08,677 --> 00:29:10,510 Ја не морам да одредите дужина или вредност, 673 00:29:10,510 --> 00:29:13,710 јер ће бити 32 бита без обзира на све. 674 00:29:13,710 --> 00:29:16,070 Атрибути, нисмо видели раније. 675 00:29:16,070 --> 00:29:18,410 Било интерес за било који од ових опције менија ово време? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 За ИНТ? 678 00:29:23,745 --> 00:29:24,620 Шта предлажете? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 Ne? 681 00:29:28,445 --> 00:29:29,570 Да ли неко од њих има смисла? 682 00:29:29,570 --> 00:29:30,536 Да. 683 00:29:30,536 --> 00:29:31,900 Да, непотписани, зар не? 684 00:29:31,900 --> 00:29:35,930 >> Генерално, ако ћемо дати сви јединствени број, који 685 00:29:35,930 --> 00:29:38,200 где је ова прича иде, ја заиста само желим 686 00:29:38,200 --> 00:29:41,919 особа има број као нуле И један и два и три и четири. 687 00:29:41,919 --> 00:29:43,710 Не треба да се са негативним бројевима. 688 00:29:43,710 --> 00:29:45,210 Изгледа као непотребног сложености. 689 00:29:45,210 --> 00:29:48,470 Желим четири милијарде могуће вредности, не четири милијарде могућих вредности, 690 00:29:48,470 --> 00:29:50,699 па сам дуплирала Капацитет мог ИНТ. 691 00:29:50,699 --> 00:29:53,490 Као страну, ако желите да се односе то нешто као Фацебоок, 692 00:29:53,490 --> 00:29:56,190 поново у врсти мом дану када Фацебоок први пут изашао, 693 00:29:56,190 --> 00:29:59,510 Верујем шта су користећи у њиховој бази података МиСКЛ 694 00:29:59,510 --> 00:30:02,856 да сачувате корисник је идентификатор, је био само ИНТ. 695 00:30:02,856 --> 00:30:05,230 Али наравно, има пуно реалних људи у свету. 696 00:30:05,230 --> 00:30:07,438 Има доста лажне Фацебоок рачуне у свету. 697 00:30:07,438 --> 00:30:11,701 И тако на крају, на Фацебоок прелило величина једног ИНТ, четири милијарде 698 00:30:11,701 --> 00:30:12,200 вредност. 699 00:30:12,200 --> 00:30:15,032 Зато, ако се осврнемо около и ту је сајтова 700 00:30:15,032 --> 00:30:16,740 који могу да вам кажем шта Ваш јединствени ИД је. 701 00:30:16,740 --> 00:30:19,781 А ако никада изабрао име у Фацебоок, видећете свој идентификациони број. 702 00:30:19,781 --> 00:30:23,080 Мислим да је профил тачка тект знак питања ИД износи нешто. 703 00:30:23,080 --> 00:30:27,210 То је сада нешто као велики ИНТ, или дуго дуго ако хоћете, 704 00:30:27,210 --> 00:30:29,700 што је 64-битна вредност или нешто упоредиви. 705 00:30:29,700 --> 00:30:33,620 >> Дакле, чак и у стварном свету раде ови питања на крају понекад битно. 706 00:30:33,620 --> 00:30:37,600 И испоставило се овде, ако сам дајући све од мојих корисника единствен број, 707 00:30:37,600 --> 00:30:41,750 Желим да будемо супер експлицитна и минимално чине ово поље јединственим. 708 00:30:41,750 --> 00:30:44,750 Али испоставило се да постоји једна комад номенклатуре и данас 709 00:30:44,750 --> 00:30:46,470 то је примарни кључ. 710 00:30:46,470 --> 00:30:49,800 Ако дизајнирање базе података сто и знате унапред 711 00:30:49,800 --> 00:30:55,580 да је један од колона у тој табели треба и да ће јединствено идентификује редове 712 00:30:55,580 --> 00:30:58,500 у табели, желите да навести га и реците базу података, 713 00:30:58,500 --> 00:31:00,250 ово је мој примарни кључ. 714 00:31:00,250 --> 00:31:02,110 Ту би могло бити дупликати у другим областима, 715 00:31:02,110 --> 00:31:06,330 али ја говорим да је ово базу података је мој примарни, моја најважнија област, 716 00:31:06,330 --> 00:31:08,420 то је гарантовано да буду јединствени. 717 00:31:08,420 --> 00:31:09,660 >> Дакле, ово изгледа сувишна. 718 00:31:09,660 --> 00:31:13,830 Ја сам сада предлаже да смо додати кликом овде Саве, 719 00:31:13,830 --> 00:31:17,210 поље цаллед-- и ја ћу да иде напред и кликните АИ, 720 00:31:17,210 --> 00:31:19,720 ћемо се вратити на да у једном тренутку, Саве. 721 00:31:19,720 --> 00:31:22,540 Ја сам сада да предложи мој сто изгледа овако. 722 00:31:22,540 --> 00:31:26,305 Имам ИНТ поље под називом ИД, цхар поље зове име, 723 00:31:26,305 --> 00:31:31,100 ВАРЦХАР поље зове име, али ИД, ако је примарни и самим тим јединствен, 724 00:31:31,100 --> 00:31:33,760 Зато сам само троше Време увођење шта 725 00:31:33,760 --> 00:31:39,140 ефикасно је други јединствен поље назвао ИД који је ИНТ? 726 00:31:39,140 --> 00:31:41,980 >> Корисничко име, опозив, било већ јединствена, рекли смо. 727 00:31:41,980 --> 00:31:45,350 Дакле, само логично, не треба свака база искуство разлога 728 00:31:45,350 --> 00:31:47,570 кроз ово, зашто Можда сам унео 729 00:31:47,570 --> 00:31:50,065 инт као мој јединствени идентификатор, као? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Шта је ово-- поновим? 732 00:31:53,930 --> 00:31:55,580 >> ПУБЛИКА: [неразумљиво] 733 00:31:55,580 --> 00:31:59,534 >> Давид Малан Рандом Приступ је лакше, зашто? 734 00:31:59,534 --> 00:32:00,410 >> ПУБЛИКА: [неразумљиво] 735 00:32:00,410 --> 00:32:02,367 Давид Малан: Да, то је само приступ бројева. 736 00:32:02,367 --> 00:32:04,750 Дакле, ако ви мислите о овоме истински је табела, као низа, 737 00:32:04,750 --> 00:32:07,690 Сада имам јединствене идентификаторе да могу јумп ароунд. 738 00:32:07,690 --> 00:32:11,520 И боље од тога још увек је то колика је инт ће опет бити? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 бита или четири бајта. 741 00:32:15,800 --> 00:32:17,750 >> Колика је моје корисничко име ће бити? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Максимално? 744 00:32:21,990 --> 00:32:22,880 16 бајта. 745 00:32:22,880 --> 00:32:26,080 >> Дакле, ако сте заиста брину о перформансе вашег кода, 746 00:32:26,080 --> 00:32:31,390 Сетите се ПСет5, да ли би радије да тражи четири бајтова вредности или 16 747 00:32:31,390 --> 00:32:32,240 бајт вредност, зар не? 748 00:32:32,240 --> 00:32:33,810 То је заиста тако једноставно. 749 00:32:33,810 --> 00:32:38,060 Морате да урадите четири пута више посла тражити корисничка имена, јер оне 750 00:32:38,060 --> 00:32:38,830 су 16 бајтова. 751 00:32:38,830 --> 00:32:41,320 Дакле, морате да буквално упореди свих 16 бајтова буде 752 00:32:41,320 --> 00:32:43,140 Сигурно да, ово је корисничко име желим. 753 00:32:43,140 --> 00:32:46,610 Док за ИНТ, можете урадите то са само четири бајта. 754 00:32:46,610 --> 00:32:49,212 >> И као по страни за оне занима рачунарског хардвера, 755 00:32:49,212 --> 00:32:52,420 Испоставило се да може да стане нешто инт или 32-битна вредност у нечему 756 00:32:52,420 --> 00:32:55,330 назива регистар у рачунару Процесор, што значи да је супер, 757 00:32:55,330 --> 00:32:58,400 супер брзо, чак и на најнижи Ниво хардвера рачунара. 758 00:32:58,400 --> 00:33:00,530 Дакле, ту је свуда само предности. 759 00:33:00,530 --> 00:33:01,530 Дакле, шта то значи? 760 00:33:01,530 --> 00:33:04,850 У ствари, када се пројектује таблица у бази података, готово све време 761 00:33:04,850 --> 00:33:07,170 ћеш да нема Само подаци вам је стало, 762 00:33:07,170 --> 00:33:09,280 али и нешто слично јединствени идентификатор 763 00:33:09,280 --> 00:33:11,280 јер ће се Пустите нас да радимо друге ствари. 764 00:33:11,280 --> 00:33:13,160 И да саплете један проблем овде. 765 00:33:13,160 --> 00:33:15,990 >> Претпоставимо да корисници имају не Само корисничка имена и, 766 00:33:15,990 --> 00:33:19,540 али они такође имају такве ствари градова и државе и ЗИП кодова, најмање 767 00:33:19,540 --> 00:33:20,432 овде у САД. 768 00:33:20,432 --> 00:33:22,390 Дакле, ја идем напријед и само брзо реци, 769 00:33:22,390 --> 00:33:26,180 дај ми још три колоне на крају стола. 770 00:33:26,180 --> 00:33:28,900 И то ће бити Град, ово ће бити држава, 771 00:33:28,900 --> 00:33:30,400 и то ће бити Поштански. 772 00:33:30,400 --> 00:33:32,710 >> Сада врсте Град, које податке треба то бити, можда? 773 00:33:32,710 --> 00:33:35,460 774 00:33:35,460 --> 00:33:35,989 ВАРЦХАР? 775 00:33:35,989 --> 00:33:37,780 Ја не знам шта је Најдуже име града је. 776 00:33:37,780 --> 00:33:40,571 Негде у Америци, ту је Вероватно неке смешно дуго реч, 777 00:33:40,571 --> 00:33:43,605 па идемо са 255, донекле историјски или произвољно. 778 00:33:43,605 --> 00:33:44,730 Држава, шта желите да урадите? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Пресуда позив, зар не? 781 00:33:50,367 --> 00:33:51,700 Шта је можда најефикаснији? 782 00:33:51,700 --> 00:33:53,500 Колико знакова? 783 00:33:53,500 --> 00:33:55,950 Можда само два, ако можемо извући са радим само, 784 00:33:55,950 --> 00:33:58,250 као, МА за Масачусетс и тако даље. 785 00:33:58,250 --> 00:34:00,520 Дакле, ја идем цхар вредност два. 786 00:34:00,520 --> 00:34:03,080 >> Поштански код је занимљив. 787 00:34:03,080 --> 00:34:06,679 Овде смо у 02138, тако да је предлаже да би требало да искористи оно? 788 00:34:06,679 --> 00:34:07,470 То је ИНТ, зар не? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 ИНТ, ИНТ, кратко? 791 00:34:12,800 --> 00:34:14,521 Кратки ће радити. 792 00:34:14,521 --> 00:34:15,020 Ne? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 ЗНАК или пет, али желим инт. 795 00:34:20,870 --> 00:34:23,710 Зашто потисне на ИНТ? 796 00:34:23,710 --> 00:34:26,820 Убеди ме од овога. 797 00:34:26,820 --> 00:34:29,210 Оно што је глупо о неком ИНТ, моја идеја? 798 00:34:29,210 --> 00:34:29,871 Да. 799 00:34:29,871 --> 00:34:31,199 >> ПУБЛИКА: Узми више меморије. 800 00:34:31,199 --> 00:34:32,909 >> Давид Малан: Узми више меморије. 801 00:34:32,909 --> 00:34:35,310 Четири бајтова, али ти си предлагање зип код 802 00:34:35,310 --> 00:34:39,000 као пет бајтова или је неко био као знак, што се осећа као Ех, то није стварно 803 00:34:39,000 --> 00:34:39,620 случај. 804 00:34:39,620 --> 00:34:40,489 >> Па, забавно прича. 805 00:34:40,489 --> 00:34:43,179 Пре неколико година, када сам користио Мицрософт Оутлоок за мој е-маил, 806 00:34:43,179 --> 00:34:45,150 На крају сам хтео да бисте прешли на Гмаил. 807 00:34:45,150 --> 00:34:48,949 И тако, извози сам све моје контакте са Оутлоок као ЦСВ датотеку. 808 00:34:48,949 --> 00:34:50,699 Цомма сепаратед валуес, који је управо мислио 809 00:34:50,699 --> 00:34:54,060 Сви моји пријатељи су имали имена и прошле имена и телефонске бројеве и ЗИП кодова 810 00:34:54,060 --> 00:34:54,747 и све то. 811 00:34:54,747 --> 00:34:56,580 И онда сам извршена грешка отварања ит уп 812 00:34:56,580 --> 00:34:58,640 у Екцел, који је табеларни програм који 813 00:34:58,640 --> 00:35:00,289 схвата ЦСВ датотеке као што смо видели. 814 00:35:00,289 --> 00:35:03,080 Али онда, мора да сам погодио, као, Командовања или контроле М у једном тренутку. 815 00:35:03,080 --> 00:35:06,250 И Екцел очигледно у вријеме имао функцију којом било ком тренутку 816 00:35:06,250 --> 00:35:08,100 Видела број, је покушао да буде од помоћи. 817 00:35:08,100 --> 00:35:11,610 И ако тај број је почео са нуле, само би их се отараси. 818 00:35:11,610 --> 00:35:13,420 Зашто ти треба водећа нуле на целих? 819 00:35:13,420 --> 00:35:15,140 Они су бесмислене, математички. 820 00:35:15,140 --> 00:35:17,530 Они нису безначајна у УС Постал система. 821 00:35:17,530 --> 00:35:19,954 Дакле, ја сам имао годинама, до данашњег дана, и даље 822 00:35:19,954 --> 00:35:22,370 Имам пријатеље да када редак случај да ми треба неко 823 00:35:22,370 --> 00:35:24,078 решавање ових дана, И даље ћемо видети да сам 824 00:35:24,078 --> 00:35:26,767 имам пријатеља у Кембриџу, Масачусетс, 2138. 825 00:35:26,767 --> 00:35:29,350 И то је досадан ако сте Покушавам да те некако програмски 826 00:35:29,350 --> 00:35:30,975 генерисати коверте или само записати. 827 00:35:30,975 --> 00:35:33,599 А то је због овог разлога, Изабрао сам погрешан тип података. 828 00:35:33,599 --> 00:35:34,490 Дакле, ја волим своју идеју. 829 00:35:34,490 --> 00:35:35,650 Хајде да користите ЦХАР поље. 830 00:35:35,650 --> 00:35:38,340 Пет знакова, осим постоје корнер случај. 831 00:35:38,340 --> 00:35:42,220 Ако и даље слање поште, Понекад зип кодове ових дана, 832 00:35:42,220 --> 00:35:45,360 они су, као, плус четири. 833 00:35:45,360 --> 00:35:48,200 Дакле, морамо цртицу, а затим треба нам још четири броја. 834 00:35:48,200 --> 00:35:50,330 Дакле, да будем искрен, могао би го много различитих начина. 835 00:35:50,330 --> 00:35:52,371 >> За сада, ја ћу задржати је једноставна и само сам 836 00:35:52,371 --> 00:35:54,780 хтео да кажем да је то пет ЗНАК вредност и ми смо 837 00:35:54,780 --> 00:35:56,739 да прескочите цео цртица плус четири. 838 00:35:56,739 --> 00:35:58,280 Али ово су врсте компромиса. 839 00:35:58,280 --> 00:36:00,196 И можете мислити на исти проблеми који произлазе 840 00:36:00,196 --> 00:36:01,860 са бројевима или другим областима. 841 00:36:01,860 --> 00:36:04,350 >> И сада, ово је уствари будаласта пут да иде доле. 842 00:36:04,350 --> 00:36:08,000 Претпоставимо како Роб и ја и Ханнах и Марија и [? Давон?] И Анди 843 00:36:08,000 --> 00:36:12,820 и други на особље све живе у Кембриџу, Масачусетс, 02138. 844 00:36:12,820 --> 00:36:17,970 То је заправо осећају глупо да сам додајући да моји корисници столу, град, држава, 845 00:36:17,970 --> 00:36:18,630 и зип. 846 00:36:18,630 --> 00:36:20,980 Zašto? 847 00:36:20,980 --> 00:36:21,960 >> ПУБЛИКА: [неразумљиво] 848 00:36:21,960 --> 00:36:22,918 >> Давид Малан: Понови? 849 00:36:22,918 --> 00:36:24,310 ПУБЛИКА: [неразумљиво] 850 00:36:24,310 --> 00:36:25,850 >> Давид Малан: Увек су да иду заједно, зар не? 851 00:36:25,850 --> 00:36:28,660 Када се испоставило, користили смо да мислимо ово је био случај док се не исцрпно 852 00:36:28,660 --> 00:36:30,570 претресли целу САД, и испада да постоји 853 00:36:30,570 --> 00:36:32,653 неке недоследности где више градова има 854 00:36:32,653 --> 00:36:35,060 исто ЗИП, што је чудно. 855 00:36:35,060 --> 00:36:40,580 Али, ако се предвиђају за сада то 02138 је увек Кембриџ, Масачусетс, 856 00:36:40,580 --> 00:36:44,910 Зашто у свету би складиштити у Ваша база података Кембриџ и мр и 02138 857 00:36:44,910 --> 00:36:49,357 за мене и за Ханнах и Роб и за [? Давон?] И за друге који живе 858 00:36:49,357 --> 00:36:51,190 овде у Кембриџу, то је савршено сувишан. 859 00:36:51,190 --> 00:36:54,480 >> Требало би да одем са само чување шта? 860 00:36:54,480 --> 00:36:55,610 Само поштански број. 861 00:36:55,610 --> 00:36:58,660 Али онда, ако се само складишти Зип Цоде, желим, вероватно, 862 00:36:58,660 --> 00:37:02,160 за мој сајт да знам где је 02138. 863 00:37:02,160 --> 00:37:03,910 Дакле, треба ми још један сто. 864 00:37:03,910 --> 00:37:04,697 И то је у реду. 865 00:37:04,697 --> 00:37:07,530 И у ствари, ово је један од дизајн процеса пројектовања столова 866 00:37:07,530 --> 00:37:11,472 да ћете радити у ПСет7 као и при желите да фактор од заједничке податке. 867 00:37:11,472 --> 00:37:14,430 Као смо факторинг се уобичајена код и факторинг од заједничког 868 00:37:14,430 --> 00:37:17,380 стилови из ЦСС, овде превише у бази података, 869 00:37:17,380 --> 00:37:21,180 ако треба само да јединствено 02138 идентификује нечије родни град, 870 00:37:21,180 --> 00:37:25,020 немојте складиштити Цамбридге, Масс за сваки дарн корисник у вашој табели. 871 00:37:25,020 --> 00:37:29,770 >> Уместо тога, имају посебан сто се зове Зипс да имају оно колоне? 872 00:37:29,770 --> 00:37:33,490 Вероватно је поље ИД, само зато, за принципи говоримо о сада. 873 00:37:33,490 --> 00:37:35,720 Вероватно зип поље за 02138. 874 00:37:35,720 --> 00:37:38,400 А онда вероватно шта друго колоне? 875 00:37:38,400 --> 00:37:42,950 Град и држава, али само један ред за 02138, један ред за 02139, 876 00:37:42,950 --> 00:37:44,772 један ред за 90210. 877 00:37:44,772 --> 00:37:46,730 И то је буквално све зип кодови знам. 878 00:37:46,730 --> 00:37:49,012 >> Дакле, сада, шта можете да урадите? 879 00:37:49,012 --> 00:37:51,220 Ово је проблематично, јер Сада имам два стола. 880 00:37:51,220 --> 00:37:54,660 Дакле, моји корисници су углавном овде, али њихов град-држава је информације 881 00:37:54,660 --> 00:37:55,390 овде. 882 00:37:55,390 --> 00:37:58,635 Дакле, испада са СКЛ, ту је заправо начин да се придруже информације, 883 00:37:58,635 --> 00:38:00,470 и видећете то у ПСет. 884 00:38:00,470 --> 00:38:03,000 >> Али испоставило се да можеш урадите нешто овако. 885 00:38:03,000 --> 00:38:10,501 ИЗАБЕРИ звезда ФРОМ усерс, ЈОИН зипује НА корисници дот рар једнако без икаквих дот зип. 886 00:38:10,501 --> 00:38:13,360 Који је мало Ворди, додуше, али ово само 887 00:38:13,360 --> 00:38:17,590 значи изаберите све из Процес узимања моји корисници сто 888 00:38:17,590 --> 00:38:19,580 и мој икаквих таблица. 889 00:38:19,580 --> 00:38:22,120 Придружите им се на један поље имају у колони. 890 00:38:22,120 --> 00:38:24,780 Дакле, буквално раде нешто овако, и врати ми 891 00:38:24,780 --> 00:38:27,360 нова привремена табела То је шири, то је већи, 892 00:38:27,360 --> 00:38:29,450 која има све од колоне из оба. 893 00:38:29,450 --> 00:38:33,510 И то, једноставно, био би Синтакса за радиш нешто овако. 894 00:38:33,510 --> 00:38:35,540 >> Дакле, ту је овај испред, али иде 895 00:38:35,540 --> 00:38:38,950 да се и друге одлуке дизајн ви ћете морати да, не само са индексима 896 00:38:38,950 --> 00:38:40,550 али и ради у изазовима. 897 00:38:40,550 --> 00:38:43,360 У ствари, постоји изазов у сваком дизајну базе података 898 00:38:43,360 --> 00:38:47,930 при чему понекад двоје људи желети да приступите исте редове базе података 899 00:38:47,930 --> 00:38:48,530 сто. 900 00:38:48,530 --> 00:38:51,450 Дакле, то је нешто што ћемо сусрећу у ПСет7 као добро. 901 00:38:51,450 --> 00:38:54,686 >> Али сам мислио да погледате један Напад је то могуће у СКЛ. 902 00:38:54,686 --> 00:38:56,560 Које су неке од Проблеми који могу настати? 903 00:38:56,560 --> 00:38:58,170 Тако ћете наићи на ово ПСет7. 904 00:38:58,170 --> 00:39:01,874 И ми вам рећи отворено шта кодирање решење за овај проблем је. 905 00:39:01,874 --> 00:39:04,790 Али, ако узмете вишег разреда нивоу, нарочито у оперативним системима, 906 00:39:04,790 --> 00:39:06,950 ћеш срести питање атомски, 907 00:39:06,950 --> 00:39:10,080 проблем покушава да уради више ствари одједном 908 00:39:10,080 --> 00:39:11,000 bez prekida. 909 00:39:11,000 --> 00:39:14,560 >> А ја сам мислио да ћу представити ово Идеја за ПСет7 са метафором 910 00:39:14,560 --> 00:39:18,160 сазнао сам себе у Марго СЕЛТЗЕР је ЦС164 оперативни системи 911 00:39:18,160 --> 00:39:18,990 пре цласс година. 912 00:39:18,990 --> 00:39:22,230 Претпоставимо да имате један од ових дому фрижидери у вашој соби у студентском дому или кући, 913 00:39:22,230 --> 00:39:24,474 и имате праву склоност за млеко. 914 00:39:24,474 --> 00:39:27,140 И тако, ти дођеш кући са часова Једног дана, када отворите фрижидер. 915 00:39:27,140 --> 00:39:27,620 О, проклетство. 916 00:39:27,620 --> 00:39:28,870 Нема млека у фрижидеру. 917 00:39:28,870 --> 00:39:32,470 Дакле, затворите фрижидер, закључали врата, закључали спрата, 918 00:39:32,470 --> 00:39:34,770 хода иза угла да ЦВС, стани у ред, 919 00:39:34,770 --> 00:39:36,312 и почети проверава по мало млека. 920 00:39:36,312 --> 00:39:38,978 И то ће потрајати, јер оне проклете селфцхецкоут 921 00:39:38,978 --> 00:39:40,570 бројачи се заувек у сваком случају користити. 922 00:39:40,570 --> 00:39:41,950 Тако је у међувремену, твој цимер дође кући. 923 00:39:41,950 --> 00:39:43,470 Он или она стварно воли млеко као добро. 924 00:39:43,470 --> 00:39:45,520 Они долазе у собу, отворите фрижидер, ох Проклетство. 925 00:39:45,520 --> 00:39:46,490 Нема више млека. 926 00:39:46,490 --> 00:39:49,040 >> Дакле, он или она такође иде иза угла. 927 00:39:49,040 --> 00:39:51,670 Али сада, с обзиром да је као два или у близини три или четири ЦВСес, 928 00:39:51,670 --> 00:39:53,800 они се десити да оду у један од другачији на тргу. 929 00:39:53,800 --> 00:39:55,830 И сада, неколико минута касније, обоје 930 00:39:55,830 --> 00:39:58,060 дође кући и ух, највећи проблем икада. 931 00:39:58,060 --> 00:40:00,967 Сада имате превише млека јер ће то ићи кисело. 932 00:40:00,967 --> 00:40:03,050 А ти се свиђа млеко, али не волим млеко. 933 00:40:03,050 --> 00:40:06,730 >> Дакле, сада, ово је био скуп грешка јер обоје 934 00:40:06,730 --> 00:40:09,870 донео одлуку засновану на стање неке променљиве које 935 00:40:09,870 --> 00:40:12,660 био у поступку се мења од вас, 936 00:40:12,660 --> 00:40:14,560 иницијатор ће добити млеко. 937 00:40:14,560 --> 00:40:17,785 Дакле, оно што је можда човек решење за тај проблем? 938 00:40:17,785 --> 00:40:18,660 ПУБЛИКА: [неразумљиво] 939 00:40:18,660 --> 00:40:19,430 Давид Малан: Оставите поруку, зар не? 940 00:40:19,430 --> 00:40:21,850 Увек оставите поруку, ако сте упознат са тим емисији. 941 00:40:21,850 --> 00:40:23,100 Да, постоје нас двоје. 942 00:40:23,100 --> 00:40:25,940 Дакле, увек оставите поруку, или дословно закључали фрижидер 943 00:40:25,940 --> 00:40:28,602 са неком врстом катанца или нешто преко врха тако. 944 00:40:28,602 --> 00:40:31,310 Али то је заправо ће бити Кључни проблем са дизајном базе података, 945 00:40:31,310 --> 00:40:34,710 посебно када можда има више прегледача, више лаптопови, 946 00:40:34,710 --> 00:40:37,450 више корисника сви покушавају да ажурирају информације одједном. 947 00:40:37,450 --> 00:40:40,590 Посебно осетљиве информације као финансијских информација, 948 00:40:40,590 --> 00:40:43,350 при чему са Стоцк Традинг сајт попут тебе ћу да градим, 949 00:40:43,350 --> 00:40:47,270 шта ако желите да проверите колико новца имате и онда ако довољно, 950 00:40:47,270 --> 00:40:48,490 купити акције? 951 00:40:48,490 --> 00:40:50,899 >> Али шта ако неко други ко има заједнички рачун са вама 952 00:40:50,899 --> 00:40:52,690 истовремено покушавајући је да купиш акције? 953 00:40:52,690 --> 00:40:55,190 Дакле, он или она проверава стање на рачуну, обоје 954 00:40:55,190 --> 00:40:57,540 вратимо исти одговор, нема млека. 955 00:40:57,540 --> 00:41:00,580 Или обоје вратимо одговор, имате 100 $ на рачуну. 956 00:41:00,580 --> 00:41:04,680 Обојица покушавају да донесе одлуку купити једну акцију неког предузећа лагеру. 957 00:41:04,680 --> 00:41:06,130 >> И сад, шта се дешава? 958 00:41:06,130 --> 00:41:07,140 Имате две акције? 959 00:41:07,140 --> 00:41:08,420 Немате акције? 960 00:41:08,420 --> 00:41:10,320 Проблеми као што је то могу настати. 961 00:41:10,320 --> 00:41:11,755 Дакле, ми ћемо наићи тога. 962 00:41:11,755 --> 00:41:14,630 СКЛ ињецтион напада, на срећу, су нешто што ћу ти помогнем, 963 00:41:14,630 --> 00:41:17,430 али ово су атроциоусли заједничких ових дана и даље. 964 00:41:17,430 --> 00:41:18,680 Дакле, ово је само један пример. 965 00:41:18,680 --> 00:41:21,290 Ја не тврдимо да Харварда ПИН-систем 966 00:41:21,290 --> 00:41:23,130 рањива на овом нападу. 967 00:41:23,130 --> 00:41:24,160 Покушали смо. 968 00:41:24,160 --> 00:41:26,120 Али, знате да смо ми терен овако. 969 00:41:26,120 --> 00:41:29,620 И Јејл нето ИД има сличан гледајући екран ових дана. 970 00:41:29,620 --> 00:41:33,190 И испоставило се, да је можда Системски ПИН је имплементиран у ПХП. 971 00:41:33,190 --> 00:41:37,050 >> И ако је смо-- је није-- они можда има код који изгледа овако. 972 00:41:37,050 --> 00:41:38,210 Имају две варијабле. 973 00:41:38,210 --> 00:41:42,495 Дај ми име и лозинку од пост супер глобалне променљиве 974 00:41:42,495 --> 00:41:43,970 да смо причали раније. 975 00:41:43,970 --> 00:41:47,310 Можда Харварда има упит као СЕЛЕЦТ стар Фром корисника 976 00:41:47,310 --> 00:41:50,005 где корисничко име једнако је и лозинку једнако томе. 977 00:41:50,005 --> 00:41:51,880 И приметио да сам само прикључите га у коришћењу 978 00:41:51,880 --> 00:41:55,050 таласасту Браце нотација од другог дан, што значи само укључите у вредности 979 00:41:55,050 --> 00:41:55,550 овде. 980 00:41:55,550 --> 00:41:57,449 Нисам коришћењем знак питања техника. 981 00:41:57,449 --> 00:41:59,240 Немам сваког тренутка или трећим аргументи. 982 00:41:59,240 --> 00:42:02,350 Ја сам само буквално изградњом миселф стринг. 983 00:42:02,350 --> 00:42:04,930 >> Проблем је, међутим, да ако неко волим сцрооб, 984 00:42:04,930 --> 00:42:09,020 која је референца на филму, пријављује са овако нешто, 985 00:42:09,020 --> 00:42:11,250 и ја сам уклонити тачкице која обично заташкају 986 00:42:11,250 --> 00:42:14,370 лозинке, шта ако је он Посебно злонамерни 987 00:42:14,370 --> 00:42:18,860 и његова лозинка можда је 12345, по филму под називом "Спацебаллс" 988 00:42:18,860 --> 00:42:21,970 али је критички се унесе знак апостроф након пет, 989 00:42:21,970 --> 00:42:24,790 онда буквално реч или у простору, а затим цитат, 990 00:42:24,790 --> 00:42:29,160 под знацима навода један једнако куоте једну, не приметим да је изостављено шта? 991 00:42:29,160 --> 00:42:32,700 Он је изостављен цитат са десне стране и он је изоставио цитат са леве стране. 992 00:42:32,700 --> 00:42:35,170 >> Јер ако нападач сцрооб је претпоставка 993 00:42:35,170 --> 00:42:38,160 је да су људи који су писали ово ПХП код нису били тако светле, 994 00:42:38,160 --> 00:42:42,990 Можда они само имају неке сингл цитира око интерполацијом 995 00:42:42,990 --> 00:42:45,210 променљиве у заграда? 996 00:42:45,210 --> 00:42:48,620 И тако, можда, могао је некако од заврше своје мисли 997 00:42:48,620 --> 00:42:53,290 за њих, али на начин који ће да му је упао у ПИН система. 998 00:42:53,290 --> 00:42:55,310 Другим речима, претпостављам да је ово шифра 999 00:42:55,310 --> 00:42:57,140 и сада прикључите шта сцрооб откуцала. 1000 00:42:57,140 --> 00:42:58,770 И то је црвено, јер је то лоше. 1001 00:42:58,770 --> 00:43:01,310 >> А основни текст је оно што је откуцао у, 1002 00:43:01,310 --> 00:43:05,510 сцрооб могу преварити Харвард серверу у изградњи СКЛ упит 1003 00:43:05,510 --> 00:43:07,440 стринг који изгледа овако. 1004 00:43:07,440 --> 00:43:11,760 Лозинка једнако 12345 или један једнако један. 1005 00:43:11,760 --> 00:43:14,820 Резултат који, логично, је да ће овај лог сцрооб 1006 00:43:14,820 --> 00:43:18,360 у ако му је лозинка 12345 или ако један једнако 1007 00:43:18,360 --> 00:43:22,660 један, што је наравно увек истина, што значи сцрооб увек добија у. 1008 00:43:22,660 --> 00:43:26,060 >> И тако, начин да се поправи овом, као иу много случајева, 1009 00:43:26,060 --> 00:43:28,140 би било да пишем више у одбрани. 1010 00:43:28,140 --> 00:43:30,390 Да бисте користили нешто попут наше стварна функција упит, који 1011 00:43:30,390 --> 00:43:33,980 видећете у ПСет7, где смо у плуг нешто слично питање обележава овде. 1012 00:43:33,980 --> 00:43:35,980 И лепоти Функција упит да 1013 00:43:35,980 --> 00:43:40,010 дати је да брани против ових Такозвани СКЛ ињецтион напада, где 1014 00:43:40,010 --> 00:43:44,260 неко преварио своју шифру у убризгавањем свој сопствени СКЛ код. 1015 00:43:44,260 --> 00:43:47,380 Јер оно што функцији упита дајемо ви заправо ће учинити, 1016 00:43:47,380 --> 00:43:51,270 ако користите упитник синтаксу а други и трећи аргумент овде, 1017 00:43:51,270 --> 00:43:54,590 је оно што се то додате у улаз да корисник под условом? 1018 00:43:54,590 --> 00:43:56,060 Они обрнута коса црта цитира. 1019 00:43:56,060 --> 00:43:58,590 >> Дакле, измиче било потенцијално опасне карактера. 1020 00:43:58,590 --> 00:44:01,000 Ово изгледа чудно сада, али то није рањива 1021 00:44:01,000 --> 00:44:03,260 јер не више променити логику 1022 00:44:03,260 --> 00:44:06,470 јер је цела лозинка Сада један цитат који није, 1023 00:44:06,470 --> 00:44:07,596 у ствари, лозинком сцрооб екипе. 1024 00:44:07,596 --> 00:44:09,845 Дакле, дошло је до неких вицева о томе током година. 1025 00:44:09,845 --> 00:44:12,570 Дакле, ово је била фотографија снимљена неке геек на паркингу 1026 00:44:12,570 --> 00:44:16,620 где можете знати да неке градове и државе покушавају да скенира лиценцу 1027 00:44:16,620 --> 00:44:19,460 Плоча вама или карту Билл Треба ако идете кроз без, као, 1028 00:44:19,460 --> 00:44:20,660 Е-З Пасс ствар. 1029 00:44:20,660 --> 00:44:24,490 Дакле, та особа претпоставља да можда људи пишу Е З Пасс систем 1030 00:44:24,490 --> 00:44:28,240 нису били тако светле, а можда су Само спојени заједно стринг, 1031 00:44:28,240 --> 00:44:32,190 тако да он или она није могла злонамерно не само своју мисао заврши, 1032 00:44:32,190 --> 00:44:35,150 али заправо изврши лош команду, коју нисам још споменуо, 1033 00:44:35,150 --> 00:44:36,380 али вероватно да претпоставим. 1034 00:44:36,380 --> 00:44:39,820 То поред избрисати и убаците и ажурирање и изаберите, 1035 00:44:39,820 --> 00:44:43,370 ту је кључна реч се зове кап, који буквално брише све 1036 00:44:43,370 --> 00:44:45,300 у бази података, која Посебно је лоше. 1037 00:44:45,300 --> 00:44:48,760 >> Можемо зумирати на ово ако то је мало тешко да се види. 1038 00:44:48,760 --> 00:44:52,300 Ова, сада је чувени цртани филм То је дивно паметно сада 1039 00:44:52,300 --> 00:44:53,145 и разумљиво. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [СМЕХ] 1042 00:45:04,750 --> 00:45:05,910 >> Да, кул. 1043 00:45:05,910 --> 00:45:06,800 Некако геекинг напоље. 1044 00:45:06,800 --> 00:45:08,800 Дакле, то су, дакле, СКЛ ињецтион напада. 1045 00:45:08,800 --> 00:45:13,050 И они су тако лако да се избегне помоћу право код или праве библиотеке. 1046 00:45:13,050 --> 00:45:15,947 И видећете у ПСет7, то је Зато смо вам функцију упита. 1047 00:45:15,947 --> 00:45:17,780 Дакле, неколико теасерс да смо мислили да 1048 00:45:17,780 --> 00:45:19,930 дај те овде у нашем Преосталих минута заједно. 1049 00:45:19,930 --> 00:45:24,030 Дакле, као што се сећате из седмице нула, ми уведен ове две сијалице које 1050 00:45:24,030 --> 00:45:26,610 су лепе, а не само зато што они су прилично и шарене су, 1051 00:45:26,610 --> 00:45:29,450 већ зато што подржавају нешто назива АПИ, апликација 1052 00:45:29,450 --> 00:45:31,980 Програмски интерфејс И у ЦС50 до сада, имамо 1053 00:45:31,980 --> 00:45:34,440 углавном фокусирана на ГЕТ и ПОСТ, али се испоставило 1054 00:45:34,440 --> 00:45:37,390 нема друге ХТТП глаголи попут ПУТ. 1055 00:45:37,390 --> 00:45:39,430 >> И у ствари, ово је био слајд из седмице нула 1056 00:45:39,430 --> 00:45:44,930 при чему ако сте написали код који шаље ла ПСет6 ХТТП захтев који 1057 00:45:44,930 --> 00:45:49,647 изгледа овако са том комаду текста на дну, који се зове ЈСОН, 1058 00:45:49,647 --> 00:45:52,230 или ЈаваСцрипт објекат нотација да ћемо причати о следеће недеље, 1059 00:45:52,230 --> 00:45:57,030 можете да укључите или искључите или промена боја светла попут оних. 1060 00:45:57,030 --> 00:46:00,480 Дакле, ако ЦС50 има уз неким тих сијалица овде у Нев Хавен 1061 00:46:00,480 --> 00:46:02,480 Ако желите да позајмим их за завршне пројекте, 1062 00:46:02,480 --> 00:46:04,370 Такође Неки Мицрософт Бендови, који су као 1063 00:46:04,370 --> 00:46:07,619 ватцхес да носите око зглоба да на сличан начин имају АПИ тако да 1064 00:46:07,619 --> 00:46:10,040 може да напише свој софтвер за њих. 1065 00:46:10,040 --> 00:46:12,490 >> Имамо налог са Апплеов иПхоне код тако 1066 00:46:12,490 --> 00:46:15,510 да ако имате Аппле Гледај или иПхонеа или иПад или иПод, 1067 00:46:15,510 --> 00:46:17,707 можете написати код који заправо ради о онима. 1068 00:46:17,707 --> 00:46:19,540 Имамо гомилу оф Ардуинос, који су 1069 00:46:19,540 --> 00:46:22,010 ситним рачунари без случајевима, у суштини, 1070 00:46:22,010 --> 00:46:25,240 да можете да се повежете преко УСБ-а, обично на своју Мац или ПЦ, 1071 00:46:25,240 --> 00:46:28,810 писање кода који ради на овим физичким уређаји који често имају сензоре на њих 1072 00:46:28,810 --> 00:46:30,790 тако да можете комуницирати са реалном свету. 1073 00:46:30,790 --> 00:46:32,860 Имамо гомилу ЛЕАП-Мотион уређаја, 1074 00:46:32,860 --> 00:46:36,500 који су УСБ уређаји за Мац-а Рачунари, овде и опет, у Нев Хавен. 1075 00:46:36,500 --> 00:46:40,080 А ако га повежете са Мац, заправо можете да контролишете рачунар 1076 00:46:40,080 --> 00:46:42,550 пишући софтвер да преко ИЦ зрацима, 1077 00:46:42,550 --> 00:46:46,360 схвати где су вам људске руке су, чак и без додиривања тастатуре. 1078 00:46:46,360 --> 00:46:49,135 Мислили смо да делимо брзо Осврт на ово, на пример. 1079 00:46:49,135 --> 00:46:51,428 >> [Мусиц плаиинг] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Дакле, имамо једну целину гомила тих ствари, 1082 00:47:57,590 --> 00:48:01,040 такође, позвао Мио руке траке који сте ставили преко подлактице 1083 00:48:01,040 --> 00:48:04,595 и онда можете да контролишете прави свет или виртуелни свет овако. 1084 00:48:04,595 --> 00:48:06,471 >> [Мусиц плаиинг] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Или, имамо и неке Гоогле Картон, која је буквално, као, 1087 00:49:20,920 --> 00:49:24,841 картонска кутија можете да ставите на вашем лице, али слајд у вашем телефону у њу 1088 00:49:24,841 --> 00:49:27,590 тако да стави чашу ваше телефон заиста близу вашим очима. 1089 00:49:27,590 --> 00:49:30,190 И Гоогле картон је прилично јефтино на 10 $ или $ 20. 1090 00:49:30,190 --> 00:49:32,230 И има мало сочива да мало ван смене 1091 00:49:32,230 --> 00:49:35,900 слика на екрану ваша људска очи да вам дају осећај дубине 1092 00:49:35,900 --> 00:49:39,550 тако да заправо имају 3Д средина пред вама. 1093 00:49:39,550 --> 00:49:42,927 Такође имамо неке Самсунг Геар, која је скупљи верзија овога, 1094 00:49:42,927 --> 00:49:46,010 али да исто тако може да клизи у Андроид телефон и дати вам илузију 1095 00:49:46,010 --> 00:49:48,309 од-- или дати искуство виртуелне реалности. 1096 00:49:48,309 --> 00:49:50,850 И у нашим коначним два минута, смо мислили да покушамо да урадимо ово. 1097 00:49:50,850 --> 00:49:55,250 Ако могу пројектовати шта Колтон има овде само да вхет апетит, 1098 00:49:55,250 --> 00:49:58,442 пусти ме само напред и баци се на великом екрану овде. 1099 00:49:58,442 --> 00:49:59,400 Пусти ме да убијем светла. 1100 00:49:59,400 --> 00:50:02,290 Колтон, да ли желиш да идеш напред и стави на своју ћелију за тренутак 1101 00:50:02,290 --> 00:50:05,171 и долазила до средини бине? 1102 00:50:05,171 --> 00:50:07,420 А да ли желите да пројецт-- то је оно што Колтон види. 1103 00:50:07,420 --> 00:50:10,560 >> Сада, Ви-Фи овдје је није толико јак за овај уређај 1104 00:50:10,560 --> 00:50:13,870 да је ово супер убедљив, али Колтон је буквално 1105 00:50:13,870 --> 00:50:15,710 у овом магичном футуристички месту. 1106 00:50:15,710 --> 00:50:16,796 Он види само једну слику. 1107 00:50:16,796 --> 00:50:19,920 Ви видите свој леви и десни око да је његов мозак се заједно ститцхинг 1108 00:50:19,920 --> 00:50:22,260 у три димензионални животна средина на лицу. 1109 00:50:22,260 --> 00:50:24,319 Управо је изабрао опцију овде. 1110 00:50:24,319 --> 00:50:27,360 И тако опет, он носи овај хеадсет са Самсунг телефона на њему да је 1111 00:50:27,360 --> 00:50:29,080 бежично пројектовање нашем над главом. 1112 00:50:29,080 --> 00:50:30,349 Сада сте на Марсу, мислим? 1113 00:50:30,349 --> 00:50:31,140 ЦОЛТОН: Мислим да јесте. 1114 00:50:31,140 --> 00:50:32,181 Нисам сигуран [неразумљиво]. 1115 00:50:32,181 --> 00:50:34,250 [СМЕХ] 1116 00:50:34,250 --> 00:50:36,374 >> Давид Малан: Испада Марс има те меније. 1117 00:50:36,374 --> 00:50:41,590 >> ЦОЛТОН: [неразумљиво] неки кул мјеста ако желимо да идемо да-- 1118 00:50:41,590 --> 00:50:43,330 >> Давид Малан: Гдје желимо да идемо? 1119 00:50:43,330 --> 00:50:45,837 >> ЦОЛТОН: [неразумљиво] 1120 00:50:45,837 --> 00:50:48,170 Давид Малан: И да видимо где је Колтон нас води сада. 1121 00:50:48,170 --> 00:50:48,961 ЦОЛТОН: [неразумљиво] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> Давид Малан: Па, ту је толико различита места можете сами узети. 1124 00:50:56,380 --> 00:51:00,590 Постоји ФАПИс преко којих можете напиши игре или интеракције које 1125 00:51:00,590 --> 00:51:01,950 рун, на крају, на телефону. 1126 00:51:01,950 --> 00:51:03,908 Па, ти заиста само писања апликацију за мобилни телефон. 1127 00:51:03,908 --> 00:51:06,380 Али захваљујући софтверу и графичке могућности, 1128 00:51:06,380 --> 00:51:08,765 Сада Колтон је у томе мала мала колиба. 1129 00:51:08,765 --> 00:51:10,515 И на ризик преплављују себе, 1130 00:51:10,515 --> 00:51:13,330 Колтон а ја ћу остати за док је на крају часа данас овде 1131 00:51:13,330 --> 00:51:14,300 Ако желите да се и играти. 1132 00:51:14,300 --> 00:51:16,350 И ми ћемо их следеће недеље као добро. 1133 00:51:16,350 --> 00:51:18,420 Без даље, адо То је све за данас. 1134 00:51:18,420 --> 00:51:21,990 Видимо се следеће недеље. 1135 00:51:21,990 --> 00:51:24,140 >> [МУЗИКА - Рагга Твинс, "лош човек"] 1136 00:51:24,140 --> 00:55:23,146