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 Дэвід малая: Добра, гэта CS50. 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 на PHP, які з'яўляецца гэтая дынаміка мова праграмавання, які 9 00:00:22,530 --> 00:00:26,872 дазваляе нам выхад, сярод іншых рэчы, HTML і іншыя такія матэрыялы 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 Facebook, безумоўна, захоўвае мноства дадзеных пра ўсіх нас і Gmail крамах усё 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 што вы будзеце апускацца ў наступным тыдзень, CS50 Фінансы, якія 22 00:00:57,330 --> 00:01:00,509 на самай справе адбываецца, каб вы пабудаваць нешта не ў C, але ў PHP. 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 збіраецца прыцягнуць на рэальным часе дадзеныя аб запасах ад Yahoo Finance. 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 >> Дэвід малая: Такім чынам, пералік інфармацыі, або store-- пералік інфармацыі, 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 Калі вы карыстальнік Facebook або на Gmail, якія характарыстыкі 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 сапраўды, як фантазіі Excel файла або Google Табліца або Apple, нумары файлаў. 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 >> АЎДЫТОРЫЯ: ID. 53 00:02:18,770 --> 00:02:19,561 >> Дэвід малая: ID. 54 00:02:19,561 --> 00:02:23,320 Так што, як ідэнтыфікацыйны нумар, як ваш Гарвардзе ID ці ваш Ельскага Net ID і да таго падобнае. 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 пагрузіцца ў рэальнай SQL, Structured Query Language, 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 І вы можаце сабе ўявіць Google Spreadsheets або любую колькасць іншых праграм. 68 00:02:48,309 --> 00:02:52,130 Але тое, што з'яўляецца ключавым аб MySQL, якая з'яўляецца праграмнае забеспячэнне базы дадзеных мы будзем выкарыстоўваць, 69 00:02:52,130 --> 00:02:54,920 свабодна адкрыта available-- выкарыстання Facebook 70 00:02:54,920 --> 00:02:59,200 гэта і любую колькасць іншых websites-- база дадзеных захоўвае рэчы рэляцыйныя. 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 >> Такім чынам, нават нешта накшталт Oracle, што Вы, магчыма, як правіла, чулі 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 І Oracle вінаваціць Вас у шмат грошай, каб зрабіць гэта, 78 00:03:12,970 --> 00:03:15,550 у той час як абвінавачванні MySQL ня вы нічога за тое ж самае. 79 00:03:15,550 --> 00:03:18,790 Так, у SQL збіраецца даць нам па меншай меры, чатырох аперацый. 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 >> Інструмент, які мы выкарыстоўваем сёння, асабліва даведацца SQL і гуляць з ім 84 00:03:33,250 --> 00:03:34,627 зноў заклікаў PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 Гэта інструмент на аснове вэб-. 86 00:03:35,460 --> 00:03:38,200 Усяго выпадкова гэта напісана ў PHP. 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 Так, падобна С і трохі менш, як PHP, 94 00:03:59,570 --> 00:04:04,954 SQL, або базы дадзеных, якая падтрымлівае SQL, мае віды на гэтыя дадзеныя не менш 95 00:04:04,954 --> 00:04:05,870 і гронкі іншых. 96 00:04:05,870 --> 00:04:08,107 ЗНАК, VARCHAR, INT, BIGINT, Дзесятковай і DateTime. 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 >> Я збіраюся пайсці ў CS50 IDE дзе загадзя, я ўвайшлі ў 100 00:04:16,450 --> 00:04:19,372 і я таксама наведаў URL для гэты інструмент называецца PHP MyAdmin. 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 І я збіраюся ісці наперад і націсніце Go. 118 00:04:57,360 --> 00:04:59,210 А потым, за гэтыя калоны, што я збіраюся 119 00:04:59,210 --> 00:05:04,576 каб do-- калі гэтага Інтэрнэце cooperates-- ўсе правы, 120 00:05:04,576 --> 00:05:05,950 так што мы збіраемся, каб паспрабаваць гэта зноў. 121 00:05:05,950 --> 00:05:09,180 Я збіраюся стварыць табліцу з імем Людзі з двума калонамі, націсніце Go, ОК. 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 Такім чынам, усё я бачу here-- і інтэрфейс адкрыта становіцца трохі непрыгожа ў рэшце рэшт, 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 Так, у той час як у Excel і Табліцы Google, 136 00:05:42,330 --> 00:05:45,531 калі вы хочаце слупок, вы ў літаральным сэнсе проста увядзіце імя або імя карыстальніка, націсніце Enter. 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 Зараз у Google Spreadsheets або Excel, вы можа паказаць, як аказваецца дадзеныя. 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 Вы можаце захоўваць рэчы як каардынатаў GPS 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 ЗНАК, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 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 Калі вы пакажа ў базе дадзеных што ваш тып дадзеных CHAR, 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 Але пачакайце хвіліну, M-A-L-A-N. Калі гэта маё імя карыстальніка і я толькі з дапамогай пяці, 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 хлопцы, можа мець у гэтым каледжы або у Yale.edu, вы не можаце мець адзін. 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 Дэвід малая: 5000, божа мой. 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 збіраецца have-- мы збіраецца бегчы з памяці. 209 00:08:34,781 --> 00:08:36,909 Такім чынам, мы павінны зрабіць рашэнне выкліку ў некаторай кропцы. 210 00:08:36,909 --> 00:08:41,010 >> Вельмі часта будзе, напрыклад, каб use-- і дазвольце мне задаць CHAR тут 211 00:08:41,010 --> 00:08:46,050 а before-- 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 >> Але, памятаеце, што гэта не ASCII- адзіная сістэма для персанажаў. 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 >> Такім чынам, атрымліваецца, што SQL, гэта мова баз дадзеных, 242 00:09:52,040 --> 00:09:55,480 на самай справе нешта падтрымлівае называецца VARCHAR або CHAR зменнай. 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 Калі вы пакласці ў М-А-Л-А-N, гэта толькі збіраецца выкарыстоўваць пяць, 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 ёсць, але чаму б не выкарыстоўваць VARCHARS за ўсё? 257 00:10:40,040 --> 00:10:42,020 >> Яна існуе па прычыне. 258 00:10:42,020 --> 00:10:46,200 Чаму б не выкарыстоўваць VARCHARS для кожнага поля даўжыня якога вы не ведаеце загадзя, 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 Чаму? 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 Такім чынам, вы, магчыма, памятаеце з нават PSED5, гуляючы з вашым падыходам 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 гэта тое, што MySQL робіць, так вядома, што можа быць так. 277 00:11:19,610 --> 00:11:22,430 І калі вы думаеце, шлях Вярнуцца да PSet-- ці нават 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 У той час як, калі гэта VARCHAR, што вы замест таго, каб рабіць? 287 00:11:54,280 --> 00:11:55,960 >> [Тэлефон тэлефануе] 288 00:11:55,960 --> 00:11:58,680 >> Калі гэта VARCHAR, вы не можа выкарыстоўваць адвольны доступ. 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 >> Дэвід малая: Паглядзіце праз whole-- следу 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 І індэкс з'яўляецца спосаб сказаць базы дадзеных загадзя, што I чалавечага 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 павінны пазычаць некаторыя ідэі з, як, тыдзень чатыры і пяць, і шэсць з CS50 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 што вы даведаецеся у класе, як CS124 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 што цяпер у маім кодзе PHP або любой мове, Я не павінен, напрыклад, праверыць 353 00:14:37,880 --> 00:14:41,490 абавязкова робіць гэта імя карыстальніка існуюць, перш чым я хай хтосьці зарэгістравацца? 354 00:14:41,490 --> 00:14:46,690 База дадзеных не дазволіць два чалавекі, названыя Дэвід або зарэгіструйцеся Malans ў гэтым выпадку. 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 Не, таму што вы, безумоўна, have-- няма двух Дэвід 362 00:15:09,550 --> 00:15:11,050 Malans ў гэтым пакоі, хутчэй за ўсё. 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 выканаў некаторыя SQL, але больш падрабязна пра гэта ў дадзены момант. 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 Такія толькі па змаўчанні Налады, таму што MySQL першапачаткова, 379 00:16:00,490 --> 00:16:04,000 або PHP MyAdmin, адзін з двух адбылося быць напісаны ў некаторых шведскіх людзей. 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 Радок кода SQL. 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 форма для майго кода, я б у літаральным сэнсе напісаць INSERT INTO карыстальнікаў наступнае 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 канец цытаты "Дэвід малая. А цяпер нават для тых, хто незнаёмы з SQL, 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 Запыт з'яўляецца функцыяй PHP, але прымае аргумент. 401 00:17:18,099 --> 00:17:21,740 І гэты аргумент павінен быць сам па сабе напісана на іншай мове, званым 402 00:17:21,740 --> 00:17:23,500 SQL, Structured Query Language. 403 00:17:23,500 --> 00:17:27,940 Так, усё, што я толькі выдзелены тут 404 00:17:27,940 --> 00:17:30,380 гэта мова, званы SQL. 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 І толькі думаць інтуітыўна зараз, ведаючы, што вы ведаеце аб З і PHP, 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 за межамі аргументу функцыі PHP, 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 Я збіраюся ісці наперад, а цяпер і ня выконваць код PHP, які 428 00:18:22,740 --> 00:18:24,610 дзе вы будзеце гуляць ў задачы ўсталяваць сем, 429 00:18:24,610 --> 00:18:27,200 Я збіраюся замест ісці ў PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 І я збіраюся ўручную каб перайсці да ўкладцы SQL, 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 рушыў услед яшчэ адзін Paren, а затым гэтыя два значэння 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 Такім чынам, гэта не С. Гэта не PHP. 442 00:18:56,570 --> 00:18:59,970 Зараз гэта SQL, і я ўставіць яго у гэтым вэб-інтэрфейс, што гэта 443 00:18:59,970 --> 00:19:02,710 толькі збіраецца дазволіць мне, як толькі я націскаю Go, 444 00:19:02,710 --> 00:19:08,060 выканаць гэты запыт у базе дадзеных працуе ўнутры CS50 IDE. 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 Замест гэтага, дазвольце мне перайдзіце на ўкладку SQL зноў. 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 Нам, хутчэй за Go. 459 00:19:46,140 --> 00:19:48,890 >> Націсніце кнопку Агляд зноў, і Зараз звернеце ўвагу, я два шэрагу. 460 00:19:48,890 --> 00:19:52,390 Такім чынам, гэта проста спосаб больш складаны спосаб адкрыцця табліц Google 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 Нагадаем, што апоры PHP супер глабальныя зменныя. 466 00:20:05,380 --> 00:20:08,415 >> Што знаходзіцца ўнутры даляра увайдзіце падкрэслення GET ў PHP? 467 00:20:08,415 --> 00:20:10,290 Мы разгледзелі ў адным ці два простых прыкладу. 468 00:20:10,290 --> 00:20:15,640 І ў PSet6, успамінаю вас ёсць прывітанне кропка PHP, які выкарыстоўвае гэтую зменную. 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 Зноў сказаць? 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 Так што, калі вы ў таму час калі мы гулялі з Google 491 00:20:55,380 --> 00:20:59,600 і мы пайшлі ў Google.com слэш Пошук пытальнік Q роўны котак, 492 00:20:59,600 --> 00:21:03,550 калі б я ўдарыў Увядзіце і калі Google былі рэалізаваны ў PHP, 493 00:21:03,550 --> 00:21:07,017 PHP код, які напісаў Google будуць мець доступ да знак даляра 494 00:21:07,017 --> 00:21:11,600 падкрэсліваюць GET, усярэдзіне якога з'яўляецца ключавым называецца Q і значэнне 495 00:21:11,600 --> 00:21:17,680 званыя кошкі, якія ён можа затым выкарыстоўваць выкарыстоўваецца, каб зрабіць фактычны пошук з. 496 00:21:17,680 --> 00:21:20,860 >> Так, на самай справе, што я збіраюся зараз зрабіць, гэта вярнуцца да маёй PHP кода 497 00:21:20,860 --> 00:21:23,140 што вы будзеце зноў бачыць больш у PSet7. 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 >> Такім чынам, калі код мы пішам зараз код працуе на серверах Google, 506 00:21:43,420 --> 00:21:46,940 або, калі гэта прывітанне кропка PHP, які пастаўляецца з PSet6, 507 00:21:46,940 --> 00:21:48,650 Я збіраюся перайсці ў функцыя запыту 508 00:21:48,650 --> 00:21:51,450 гэтак жа, як Printf, два іншыя аргументы. 509 00:21:51,450 --> 00:21:57,120 GET, цытата, канец цытаты імя карыстальніка, і GET, цытата, канец цытаты імя. 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 гэтая функцыя называецца запыт у PHP. 513 00:22:05,480 --> 00:22:08,160 Я да гэтага часу ў якасці першага Аргумент, проста радок тэксту. 514 00:22:08,160 --> 00:22:11,000 >> Але што радок тэксту напісана на мове, званым SQL. 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 І заўважце, я апусціў, што па ўсім quote-- пракляты 522 00:22:26,010 --> 00:22:30,470 it-- вакол цытаты адзначае на гэты раз. 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 PHP, як правіла, падтрымліваюць, Сячы і Python і іншыя мовы, 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 Другім аргументам з'яўляецца знак даляра падкрэсліваюць GET кранштэйн карыстальніка. 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 напісаць PHP код, які правярае, ці з'яўляецца чалавек, які толькі што ўвайшлі ў 552 00:23:48,860 --> 00:23:52,250 на самай справе карыстальнік, вы можаце выкарыстоўваць даволі просты сінтаксіс. 553 00:23:52,250 --> 00:23:55,832 Вы можаце сказаць, SELECT, скажам зорка, зорка, дзе азначае, што ўсе. 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 у функцыі PHP, радкі кода SQL. 561 00:24:16,110 --> 00:24:18,680 І, што код SQL гэта Час літаральна збіраецца 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 і я збіраюся прыбраць гэты савет ад Brady, і ісці 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 калі хто-то будзе толькі ўвайшлі ў і I хочаце праверыць, калі ён ці яна на самай справе 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 Чаму? 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 вы можаце мець толькі нуль або адзін Malans у дадзеным табліцы базы дадзеных. 583 00:25:07,940 --> 00:25:10,965 Цяпер, як у бок, толькі так вы бачылі гэта, хоць я працягваць выкарыстоўваць GET 584 00:25:10,965 --> 00:25:14,350 і хоць PSet6 толькі GET, можна, вядома, ёсць POST. 585 00:25:14,350 --> 00:25:17,212 І памятайце, што паведамленне з'яўляецца яшчэ адным тэхніка для прадстаўлення інфармацыі 586 00:25:17,212 --> 00:25:19,170 з формы, але не з'яўляецца ў URL. 587 00:25:19,170 --> 00:25:22,690 Гэта крыху больш бяспечным, вядома, для такія рэчы, як імёны карыстальнікаў і паролі, 588 00:25:22,690 --> 00:25:25,210 якія PSet7 будзе, на самай справе, звязаныя. 589 00:25:25,210 --> 00:25:28,130 >> Такім чынам, давайце рабіць гэта ў PHP MyAdmin і паглядзець, што адбываецца. 590 00:25:28,130 --> 00:25:30,020 Я збіраюся пайсці на ўкладку MySQL. 591 00:25:30,020 --> 00:25:34,450 І заўважце, што значэнне па змаўчанні для PHP MyAdmin, проста каб паспрабаваць, каб быць карысным, 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 тыпу з SELECT, зорка з карыстальнікаў. 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 карыстальнікі, дзе імя карыстальніка раўняецца малая, тое, што прыемна пра SQL, шчыра кажучы, 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 Пры выкананні SQL запыт з выкарыстаннем выберыце, 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 ўставіць іх у новы Google Табліца або файл Excel, 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 Хто-то раней, я думаю, сюды, прапанаваў ID. 659 00:28:37,790 --> 00:28:40,787 Цяпер ідэнтыфікатар можа быць як Гарвардскі ID або Ельскага Net ID, 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 І калі вы пагуляць з гэта інтэрфейс для PSet7, 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 Я збіраюся дадаць поле з імем ID. 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 Я проста хачу, каб выбраць INT і Не турбуйцеся аб разрозненых памераў. 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 Для INT? 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 Няма? 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 так што я проста падвоілі магутнасць майго INT. 691 00:29:50,699 --> 00:29:53,490 Як у баку, калі вы хочаце, каб звязаць гэта нешта накшталт Facebook, 692 00:29:53,490 --> 00:29:56,190 таму ў той дзень, калі мой Facebook упершыню выйшаў, 693 00:29:56,190 --> 00:29:59,510 Я лічу, што яны былі выкарыстоўваюць у сваёй базе дадзеных MySQL 694 00:29:59,510 --> 00:30:02,856 Каб захаваць карыстальніка Ідэнтыфікатар, быў проста INT. 695 00:30:02,856 --> 00:30:05,230 Але, вядома, ёсць шмат рэальных людзей у свеце. 696 00:30:05,230 --> 00:30:07,438 Там вельмі шмат падробленых Facebook рахункі ў свеце. 697 00:30:07,438 --> 00:30:11,701 І так у рэшце рэшт, Facebook захліснула памер у INT, А чатыры мільярды 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 І калі вы ніколі не абралі імя карыстальніка ў Facebook, вы ўбачыце свой унікальны ID. 702 00:30:19,781 --> 00:30:23,080 Я думаю, што гэта кропка PHP профіль знак пытання ID роўны то. 703 00:30:23,080 --> 00:30:27,210 Гэта значыць цяпер нешта накшталт вялікай INT або доўга доўга, калі вы будзеце, 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 поле called--, і я збіраюся ісці наперад і націсніце AI, 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 У мяне ёсць полі пад назвай INT ID, поле CHAR называецца Імя карыстальніка, 723 00:31:26,305 --> 00:31:31,100 поле VARCHAR называецца імя, але ID, калі гэта асноўны і, такім чынам, унікальны, 724 00:31:31,100 --> 00:31:33,760 чаму я проста марнаваць Час ўвядзення што 725 00:31:33,760 --> 00:31:39,140 эфектыўна гэта Другая унікальная поле называецца ID, што яшчэ больш INT? 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 Што this-- раз сказаць? 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 І лепш, чым да гэтага часу, што як вялікі прыведзены INT будзе зноў? 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 ўспомніце PSet5, вы б аддалі перавагу шукаць па кошту чатырох байтаў або 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 У той час як для INT, вы можаце зрабіць гэта толькі з чатырма байтамі. 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 і гэта будзе Zip. 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 VARCHAR? 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 Такім чынам, я збіраюся пайсці значэнне CHAR два. 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 Гэта INT, праўда? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, кароткія? 791 00:34:12,800 --> 00:34:14,521 Кароткае будзе працаваць. 792 00:34:14,521 --> 00:34:15,020 Няма? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 ЗНАК ці пяць, але я хачу ў INT. 795 00:34:20,870 --> 00:34:23,710 Чаму адсунуць на INT? 796 00:34:23,710 --> 00:34:26,820 Пераканаеце мяне ад гэтага. 797 00:34:26,820 --> 00:34:29,210 Што па-дурному аб INT, маю ідэю? 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 як пяць байтаў або хтосьці быў у CHAR, які адчувае сябе падобна так, гэта на самай справе не 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 Шмат гадоў таму, калі я выкарыстаў, каб выкарыстоўваць Microsoft Outlook для маёй электроннай пошце, 806 00:34:43,179 --> 00:34:45,150 У рэшце рэшт я хацеў, каб перайсці да Gmail. 807 00:34:45,150 --> 00:34:48,949 І так, я экспартаваў ўсе мае кантакты з Outlook, як файл CSV. 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 у Excel, які з'яўляецца табліцы праграма, 813 00:34:58,640 --> 00:35:00,289 разумее CSV файлаў, як мы ўжо бачылі. 814 00:35:00,289 --> 00:35:03,080 Але тады, я павінен патрапілі, як, Каманда або кіравання S ў адным пункце. 815 00:35:03,080 --> 00:35:06,250 І, мабыць, Excel ў той час была асаблівасць: пры любым часу 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 Давайце выкарыстоўваць поле CHAR. 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 хачу сказаць, што гэта пяць значэнне CHAR і мы 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 Выкажам здагадку, як Роб і я, і Ханна і Марыя, і [? Davon?] І Эндзі 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 і ZIP. 846 00:36:18,630 --> 00:36:20,980 Чаму? 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 для мяне і для Ханны і для Адзежа і для [? Davon?], А для іншых, якія жывуць 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 што вы будзеце рабіць у PSet7 а таксама праз Вы хочаце, каб вынесці агульныя дадзеныя. 867 00:37:11,472 --> 00:37:14,430 Гэтак жа, як мы былі факторизации агульны код і факторынг з агульнага 868 00:37:14,430 --> 00:37:17,380 стылі CSS з тут таксама ў базе дадзеных, 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 Такім чынам, атрымліваецца з SQL, ёсць на самай справе шлях, каб далучыцца інфармацыі, 883 00:37:58,635 --> 00:38:00,470 і вы ўбачыце гэта ў Pset. 884 00:38:00,470 --> 00:38:03,000 >> Але, аказваецца, можна зрабіць нешта накшталт гэтага. 885 00:38:03,000 --> 00:38:10,501 ВЫБАР зорка з карыстальнікаў, JOIN маланкі ПА карыстальнікі кропка паштовы роўная маланкі кропка маланку. 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 Такім чынам, гэта тое, што мы будзем сутыкнуцца ў PSet7 таксама. 901 00:38:51,450 --> 00:38:54,686 >> Але я думаў, што я гляджу на аднаго атака, што гэта магчыма ў SQL. 902 00:38:54,686 --> 00:38:56,560 Якія некаторыя з Праблемы, якія могуць узнікнуць? 903 00:38:56,560 --> 00:38:58,170 Такім чынам, вы будзеце сутыкацца ў гэтым PSet7. 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 без перапынку. 909 00:39:11,000 --> 00:39:14,560 >> І я думаў, што я прадставіць гэта Ідэя PSet7 з метафарай 910 00:39:14,560 --> 00:39:18,160 што я пазнаў сябе ў Марго CS164 аперацыйныя сістэмы Зэльцэр ў 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 хадзіць па куце у CVS, патрапіць у лініі, 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 Але цяпер, паколькі ёсць як два ці тры ці чатыры CVSes побач, 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 Атакі ін'екцыі SQL, на шчасце, што-то мы дапаможам вам з, 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 І Ельскага Net ID мае аналагічны гледзячы экран у гэтыя дні. 970 00:41:29,620 --> 00:41:33,190 І аказваецца, што, магчыма, Сістэма ПІН ажыццяўляецца ў PHP. 971 00:41:33,190 --> 00:41:37,050 >> І калі гэта were-- гэта не-- яны можа ёсць код, які выглядае наступным чынам. 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 Можа быць, Гарвардзе запыт як SELECT, зоркі ад карыстальнікаў 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 >> Праблема, аднак, у тым, што калі хто-то падабаецца scroob, 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 >> Таму што, калі гэта зламыснік прэзумпцыя scroob ў 993 00:42:35,170 --> 00:42:38,160 з'яўляецца тое, што людзі, якія пісалі гэта PHP код не так ярка, 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 для іх, але такім чынам, што адбываецца каб дазволіць яму узламаў сістэму PIN-кода. 998 00:42:53,290 --> 00:42:55,310 Іншымі словамі, выкажам здагадку, што гэта код 999 00:42:55,310 --> 00:42:57,140 і зараз мы падключыць, што scroob набралі. 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 scroob можа падмануць сервер Гарвардскага універсітэта ў пабудове SQL запыту 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 Вынік, які, па логіцы, з'яўляецца тое, што гэта будзе ўвайсці scroob 1006 00:43:14,820 --> 00:43:18,360 , Калі яго пароль 12345 або калі адзін роўна 1007 00:43:18,360 --> 00:43:22,660 Адзін з іх, які, вядома, заўсёды дакладна, што азначае scroob заўсёды трапляе ў. 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 вы ўбачыце ў PSet7, дзе мы падключыць ў нешта накшталт пытання азначае тут. 1012 00:43:33,980 --> 00:43:35,980 І прыгажосць Функцыя запыту, што мы 1013 00:43:35,980 --> 00:43:40,010 даць вам гэта абараняе ад іх так званыя атакі ін'екцыі SQL, дзе 1014 00:43:40,010 --> 00:43:44,260 хто падманвае свой код у ін'екцыйных свой уласны код SQL. 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 на самай справе, пароль scroob ст. 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 рэч Е-Z Пасі. 1029 00:44:20,660 --> 00:44:24,490 Такім чынам, гэта асоба, якое, як мяркуецца можа быць, што людзі, якія пішуць сістэмы E-Pass Z 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 Выгляд з geeking. 1044 00:45:06,800 --> 00:45:08,800 Такім чынам, гэтыя, тады, Атакі ін'екцыі SQL. 1045 00:45:08,800 --> 00:45:13,050 І яны так лёгка пазбегнуць з дапамогай права код ці правы бібліятэкі. 1046 00:45:13,050 --> 00:45:15,947 І вы ўбачыце ў PSet7, што гэта Таму мы даем вам функцыю запыту. 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 а таму, што яны падтрымліваюць то называецца API, прыкладанне 1052 00:45:29,450 --> 00:45:31,980 Інтэрфейс праграмавання і у CS50 гэтага часу, мы 1053 00:45:31,980 --> 00:45:34,440 у асноўным сканцэнтраваны на GET і POST, але, аказваецца, 1054 00:45:34,440 --> 00:45:37,390 ёсць іншыя HTTP дзеясловы PUT. 1055 00:45:37,390 --> 00:45:39,430 >> І на самай справе, гэта было слайд ад нуля тыдня 1056 00:45:39,430 --> 00:45:44,930 у выніку чаго, калі вы пішаце код, які пасылае а-ля PSet6-запыт HTTP, што 1057 00:45:44,930 --> 00:45:49,647 Падобна на тое, гэта з гэтым кавалкам тэксту у ніжняй, якая называецца JSON, 1058 00:45:49,647 --> 00:45:52,230 ці JavaScript Object Notation што мы будзем казаць аб наступным тыдні, 1059 00:45:52,230 --> 00:45:57,030 Вы можаце ўключыць або выключыць або змяніць колер агнёў, як такіх. 1060 00:45:57,030 --> 00:46:00,480 Такім чынам, калі CS50 таксама мае ў дадатак да некаторых з тых лямпачак тут у Нью-Хейвене 1061 00:46:00,480 --> 00:46:02,480 калі вы хочаце заняць ім для канчатковых праектаў, 1062 00:46:02,480 --> 00:46:04,370 Таксама некаторыя Microsoft Паласы, якія, як 1063 00:46:04,370 --> 00:46:07,619 сочыць за тым, вы носіце на запясце што аналагічна ёсць API, так што вы 1064 00:46:07,619 --> 00:46:10,040 можаце напісаць ўласнае праграмнае забеспячэнне для іх. 1065 00:46:10,040 --> 00:46:12,490 >> У нас ёсць запіс з Код IOS ад Apple, так 1066 00:46:12,490 --> 00:46:15,510 што калі ў вас ёсць Apple Назіраць або iPhone або IPad або IPod, 1067 00:46:15,510 --> 00:46:17,707 Вы можаце напісаць код, які на самай справе працуе на іх. 1068 00:46:17,707 --> 00:46:19,540 У нас ёсць цэлы букет з Arduinos, якія 1069 00:46:19,540 --> 00:46:22,010 малюсенькія кампутары без выпадкаў, па сутнасці, 1070 00:46:22,010 --> 00:46:25,240 што вы можаце падключыць праз USB, як правіла, на свой уласны Mac ці PC, 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 У нас ёсць цэлы букет прылад Leap Motion, 1074 00:46:32,860 --> 00:46:36,500 якія з'яўляюцца USB прылады для кампутараў Mac і ПК, тут і зноў, у Нью-Хейвене. 1075 00:46:36,500 --> 00:46:40,080 І калі вы падключыце яго да Mac, Вы можаце фактычна кіраваць кампутарам 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 Або, мы таксама ёсць Google Кардон, які ў літаральным сэнсе, як, 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 І Google Кардон вельмі танна ў $ 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 так што вы на самой справе ёсць 3D серада перад вамі. 1093 00:49:39,550 --> 00:49:42,927 У нас таксама ёсць некаторыя Samsung Gear, якая гэта больш дарагі версіі гэтага, 1094 00:49:42,927 --> 00:49:46,010 але гэта можа так жа слізгацення ў Android-тэлефон і даць вам ілюзію 1095 00:49:46,010 --> 00:49:48,309 of-- ці даць вопыт віртуальнай рэальнасці. 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 І вы хочаце, каб project-- гэта тое, што бачыць Колтон. 1103 00:50:07,420 --> 00:50:10,560 >> Цяпер, Wi-Fi у тут не так моцная для гэтага прылады 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 І так зноў, ён носіць гэтую гарнітуру з Samsung тэлефон на ім, што гэта 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 Там гэта FAPIs, праз які вы можаце пісаць гульні або узаемадзеянняў, якія 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 Без далейшага, ADO гэта на сёння. 1134 00:51:18,420 --> 00:51:21,990 Мы будзем бачыць Вас на наступным тыдні. 1135 00:51:21,990 --> 00:51:24,140 >> [МУЗЫКА - Ragga Twins, "дрэнны чалавек"] 1136 00:51:24,140 --> 00:55:23,146