1 00:00:00,000 --> 00:00:03,493 >> [За възпроизвеждане на музика] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 Дъг LLOYD: В нашите видеоклипове по теми, уеб програмиране, 4 00:00:07,100 --> 00:00:10,560 споменахме понятието база данни на няколко пъти, нали? 5 00:00:10,560 --> 00:00:12,700 Така че една база данни, вие сте вероятно са запознати с от 6 00:00:12,700 --> 00:00:15,780 казват, използвайки Microsoft Excel или Google Spreadsheets. 7 00:00:15,780 --> 00:00:20,650 Това е наистина само една организирана комплект от таблици, редове и колони. 8 00:00:20,650 --> 00:00:23,140 >> И на база данни, където е нашите уебсайт магазини 9 00:00:23,140 --> 00:00:26,760 информация, която е важна за нашия сайт, за да работи правилно. 10 00:00:26,760 --> 00:00:30,150 Отново, една наистина обща пример тук е съхраняване на потребителски имена и пароли 11 00:00:30,150 --> 00:00:32,824 в база данни, така че когато даден потребител влезе в нашия сайт, 12 00:00:32,824 --> 00:00:36,690 на базата данни може да бъде заявен за да видите ако съществува този потребител в базата данни. 13 00:00:36,690 --> 00:00:39,260 И ако те са, че проверката паролата е вярна. 14 00:00:39,260 --> 00:00:43,420 И ако паролата е правилна, тогава можем да ги дам каквото страница 15 00:00:43,420 --> 00:00:45,370 те иска. 16 00:00:45,370 --> 00:00:48,590 >> Значи вие сте вероятно, отново, запознати с тази идея от Excel или Google 17 00:00:48,590 --> 00:00:49,430 Spreadsheets. 18 00:00:49,430 --> 00:00:52,980 Ние имаме бази данни, маси, редове и колони. 19 00:00:52,980 --> 00:00:56,450 И това е наистина сортиране на основния сет 20 00:00:56,450 --> 00:00:58,470 на йерархична разбивка тук. 21 00:00:58,470 --> 00:00:59,800 Така че тук е една електронна таблица Excel. 22 00:00:59,800 --> 00:01:02,640 И ако някога сте се отвори тази или друга подобна програма 23 00:01:02,640 --> 00:01:06,780 вие знаете, че те са тук rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Това са колони. 25 00:01:08,760 --> 00:01:11,790 >> Може би тук, въпреки че може да Не използвайте тази функция ужасно much-- 26 00:01:11,790 --> 00:01:15,370 Ще увеличите in-- имаме тази идея на един лист. 27 00:01:15,370 --> 00:01:17,930 Така че може би тези листове, ако Аз се редуват напред и назад, 28 00:01:17,930 --> 00:01:21,600 са различни таблици, които съществуват в моята база данни. 29 00:01:21,600 --> 00:01:25,210 И ако продължим примера всички Между другото, името на тази база данни 30 00:01:25,210 --> 00:01:26,940 е книга 1. 31 00:01:26,940 --> 00:01:28,710 Може би имам Book 2 и 3 Book. 32 00:01:28,710 --> 00:01:33,270 Така че всеки файл Excel е база данни, всеки лист е таблица, 33 00:01:33,270 --> 00:01:39,530 и във вътрешността на всяка маса имам тази идея на редове и колони. 34 00:01:39,530 --> 00:01:41,900 >> Така че как мога да работя с тази база данни? 35 00:01:41,900 --> 00:01:43,630 Как мога да получа информация от нея? 36 00:01:43,630 --> 00:01:47,540 Ами има един език, наречен SQL-- което аз обикновено просто се обадете Sequel-- 37 00:01:47,540 --> 00:01:50,010 и тя стои за Език за структурирани заявки. 38 00:01:50,010 --> 00:01:52,981 И това е език за програмиране, но това е доста ограничено програмиране 39 00:01:52,981 --> 00:01:53,480 език. 40 00:01:53,480 --> 00:01:56,407 Това не е съвсем като другите че ние сме работили с. 41 00:01:56,407 --> 00:01:58,240 Но целите на настоящото език за програмиране 42 00:01:58,240 --> 00:02:01,570 е да задава въпроси на база данни, за да поиска информация от база данни, 43 00:02:01,570 --> 00:02:04,480 намерите информация в база данни, и така нататък. 44 00:02:04,480 --> 00:02:08,449 >> Ние също така, в CS50-- и това е много обща платформа, тя се нарича MySQL. 45 00:02:08,449 --> 00:02:10,600 Това е, което ние използваме в хода. 46 00:02:10,600 --> 00:02:12,880 Това е с отворен код платформа, която установява 47 00:02:12,880 --> 00:02:16,732 т.нар релационни database-- база данни, ефективно. 48 00:02:16,732 --> 00:02:18,440 Ние не се нуждаем, за да получите в прекалено много подробности 49 00:02:18,440 --> 00:02:20,930 върху това, което е релационна база данни е. 50 00:02:20,930 --> 00:02:24,650 Но на езика SQL е много умели в работното 51 00:02:24,650 --> 00:02:29,760 с MySQL и други подобни стилове на релационни бази данни. 52 00:02:29,760 --> 00:02:34,010 >> И много от инсталациите на MySQL дойде с нещо 53 00:02:34,010 --> 00:02:37,760 наречено PhpMyAdmin, които е графичен потребителски 54 00:02:37,760 --> 00:02:40,970 interface-- на GUI-- че дава малко по- 55 00:02:40,970 --> 00:02:44,410 лесна за изпълнение заявки за бази данни, 56 00:02:44,410 --> 00:02:48,980 защото бази данни не са просто използвани от напреднали програмисти, нали? 57 00:02:48,980 --> 00:02:51,510 Понякога има тези малки предприятия, 58 00:02:51,510 --> 00:02:53,900 и те не могат да си позволят да наеме екип от програмисти, 59 00:02:53,900 --> 00:02:56,700 но те все още трябва да се съхранява информация в база данни. 60 00:02:56,700 --> 00:02:59,300 >> Нещо като PhpMyAdmin го прави много лесно за някого 61 00:02:59,300 --> 00:03:03,630 който никога не е програмиран, преди да вдигне и да се запознаят с това как 62 00:03:03,630 --> 00:03:07,710 за работа с база данни. 63 00:03:07,710 --> 00:03:11,800 Проблемът е, PhpMyAdmin, докато това е фантастично средство за учене 64 00:03:11,800 --> 00:03:14,850 за бази данни, че е ръчно. 65 00:03:14,850 --> 00:03:18,050 Вие ще трябва да влезете в тя и изпълнява команди и тип 66 00:03:18,050 --> 00:03:19,910 неща в ръчно. 67 00:03:19,910 --> 00:03:23,160 >> А както знаем от нашия Например на PHP уеб програмиране, 68 00:03:23,160 --> 00:03:26,550 се налага да направите ръчно неща, на нашия уебсайт, 69 00:03:26,550 --> 00:03:30,970 ако искаме динамична, активна отзивчиви уеб сайт, може би не е най-добрият подход. 70 00:03:30,970 --> 00:03:33,980 Бихме искали да се намери начин да може би се автоматизира този някак. 71 00:03:33,980 --> 00:03:37,864 И SQL ще ни даде възможност да направим това. 72 00:03:37,864 --> 00:03:39,780 Така че, когато ние ще започнете работа с SQL, 73 00:03:39,780 --> 00:03:41,220 ние първо трябва да има база данни, да се работи. 74 00:03:41,220 --> 00:03:42,510 Изграждане на база данни е ти нещо вероятно 75 00:03:42,510 --> 00:03:45,350 ще се направи в PhpMyAdmin, защото ще трябва само да го направи веднъж, 76 00:03:45,350 --> 00:03:49,690 и синтаксиса за това е много по-лесно. 77 00:03:49,690 --> 00:03:51,940 Това е много по-лесно да го направя в графичен потребителски интерфейс 78 00:03:51,940 --> 00:03:53,520 отколкото да пишете като команда. 79 00:03:53,520 --> 00:03:55,186 Тази команда може да се получи малко тромава. 80 00:03:55,186 --> 00:03:58,889 По същия начин, създаване на таблица може получите доста тромава, както добре. 81 00:03:58,889 --> 00:04:01,930 И така неща като създаване на база данни и създаване на таблица, която сте 82 00:04:01,930 --> 00:04:06,270 вероятно само ще направим once-- веднъж на маса, веднъж database-- 83 00:04:06,270 --> 00:04:09,040 това е ОК, за да направя, че в графичен интерфейс. 84 00:04:09,040 --> 00:04:11,570 В процеса на създаване на таблица, ще 85 00:04:11,570 --> 00:04:14,840 Също така трябва да посочите всички от колони, които ще бъдат в същата таблица. 86 00:04:14,840 --> 00:04:18,149 Какъв вид информация направя искате да съхранявате в таблицата? 87 00:04:18,149 --> 00:04:24,520 Може би името на потребителя и дата на раждане, парола, потребителско ID номер, а може би 88 00:04:24,520 --> 00:04:26,170 град и щат, нали? 89 00:04:26,170 --> 00:04:30,080 >> И за всеки път, когато искате да добавите потребител до базата данни, искаме да получим всичките шест 90 00:04:30,080 --> 00:04:31,890 на тези елементи. 91 00:04:31,890 --> 00:04:34,840 И правим това чрез добавяне редове в таблицата. 92 00:04:34,840 --> 00:04:37,800 Така че ние първо се създаде база данни, След това ние създаваме една маса. 93 00:04:37,800 --> 00:04:40,100 Като част от създаването маса, ни питат 94 00:04:40,100 --> 00:04:44,280 да се уточни, че всяка колона ние бихме искали в тази таблица. 95 00:04:44,280 --> 00:04:47,247 И след това, тъй като ние започнем да добавите информация в базата данни за 96 00:04:47,247 --> 00:04:49,580 и сверки с базата данни по- generally-- не само добави: 97 00:04:49,580 --> 00:04:51,610 но всичко останало ние do-- ние ще се занимават 98 00:04:51,610 --> 00:04:58,870 с редове от таблицата, която е една информация на потребителя от целия набор. 99 00:04:58,870 --> 00:05:03,210 >> Така всеки SQL колона е способен провеждане на данни от определен тип данни. 100 00:05:03,210 --> 00:05:06,560 Така че ние някак елиминира този представа за типове данни в PHP, 101 00:05:06,560 --> 00:05:08,747 но те са отново тук в SQL. 102 00:05:08,747 --> 00:05:10,080 И има много типове данни. 103 00:05:10,080 --> 00:05:13,420 Ето само 20 от тях, но това не е дори всички от тях. 104 00:05:13,420 --> 00:05:16,240 Така че ние имаме идеи като INTs-- Integers-- ние вероятно знаете 105 00:05:16,240 --> 00:05:17,760 че тази колона може да побере цели числа. 106 00:05:17,760 --> 00:05:21,077 И има вариации thereon-- SMALLINT, TINYINT, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Може би ние не винаги се нуждаят от четири ухапвания. 108 00:05:22,660 --> 00:05:26,800 Може би имаме нужда от осем байта, така и ние да използвате тези вариации на числа 109 00:05:26,800 --> 00:05:28,510 да бъде малко по-голямо пространство за ефективност. 110 00:05:28,510 --> 00:05:31,899 Ние можем да направим десетични числа, ние може да направи числа с плаваща запетая. 111 00:05:31,899 --> 00:05:32,940 Това са доста сходни. 112 00:05:32,940 --> 00:05:34,773 Има някои различия, и ако бихте 113 00:05:34,773 --> 00:05:37,330 искали да се запознаете с SQL вид на ръководство, 114 00:05:37,330 --> 00:05:40,670 може да види какво обидата различия между тях. 115 00:05:40,670 --> 00:05:43,250 >> Може би искате да съхраните информация за дата и час. 116 00:05:43,250 --> 00:05:47,047 Може би ние сме следенето когато потребителят се присъедини нашия уебсайт, 117 00:05:47,047 --> 00:05:48,880 и така че може би ние искаме да има колона, която е 118 00:05:48,880 --> 00:05:52,820 време, дата или времеви индикатор, който показва, когато потребителят действително 119 00:05:52,820 --> 00:05:54,130 регистрирали. 120 00:05:54,130 --> 00:05:56,132 Ние можем да направим геометрии и linestrings. 121 00:05:56,132 --> 00:05:57,340 Това всъщност е много готино. 122 00:05:57,340 --> 00:06:01,410 Бихме могли да се набележат по- географска област, използвайки 123 00:06:01,410 --> 00:06:05,110 GIS координати за парцел от дадена област. 124 00:06:05,110 --> 00:06:08,580 Така че всъщност може да се съхранява, че сортиране на информация в SQL колона. 125 00:06:08,580 --> 00:06:11,390 >> ТЕКСТ, е само на гигантски петна от текст, може би. 126 00:06:11,390 --> 00:06:12,840 ENUMs са вид интересни. 127 00:06:12,840 --> 00:06:16,080 Те действително съществуват в C. Ние не правим говорим за тях, защото те не са 128 00:06:16,080 --> 00:06:19,110 ужасно често се използва, най-малко CS50. 129 00:06:19,110 --> 00:06:22,680 Но това е един номерираните тип данни, които е в състояние да задържа ограничени стойности. 130 00:06:22,680 --> 00:06:25,940 >> Един наистина добър пример тук ще бъде да се създаде ENUM когато седмината 131 00:06:25,940 --> 00:06:29,394 възможни стойности са Неделя, Понеделник, Вторник, сряда, четвъртък, петък, 132 00:06:29,394 --> 00:06:30,060 Събота, нали? 133 00:06:30,060 --> 00:06:33,311 Този вид данни Ден на Седмица не съществува, 134 00:06:33,311 --> 00:06:35,310 но можем да създадем изброени тип данни като 135 00:06:35,310 --> 00:06:39,400 че тази колона може само да задържите един от тези седем възможни стойности. 136 00:06:39,400 --> 00:06:44,300 Ние всички изброени от възможните стойности. 137 00:06:44,300 --> 00:06:47,630 >> Тогава ние имаме CHAR и VARCHAR, и аз съм оцветите тези зелено 138 00:06:47,630 --> 00:06:49,505 защото ние сме всъщност ще отнеме секунди 139 00:06:49,505 --> 00:06:51,950 да се говори за разликата между тези две неща. 140 00:06:51,950 --> 00:06:55,780 Така CHAR, за разлика от C, където CHAR е един символ, 141 00:06:55,780 --> 00:07:00,730 в SQL пепел се отнася до фиксирана дължина низ. 142 00:07:00,730 --> 00:07:02,620 И когато ние създаваме това колона, ние всъщност 143 00:07:02,620 --> 00:07:05,070 да определите дължината на низа. 144 00:07:05,070 --> 00:07:08,080 >> Така в този пример, бихме могли да кажем CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Това означава, че всеки елемент от тази колона 146 00:07:11,190 --> 00:07:13,910 ще се състои от 10 байта информация. 147 00:07:13,910 --> 00:07:15,770 Не повече, нито по-малко. 148 00:07:15,770 --> 00:07:21,780 Така че, ако ние се опитваме и се слага в 15 битов или елемент 15 герой 149 00:07:21,780 --> 00:07:25,340 или стойност в тази колона, ние само се първите 10. 150 00:07:25,340 --> 00:07:27,290 Ако сложим в двете характера дълго стойност, 151 00:07:27,290 --> 00:07:30,700 ние ще имаме двама знаци, а след осем нула ухапвания. 152 00:07:30,700 --> 00:07:34,990 Ние никога няма да бъде по-ефективно от това. 153 00:07:34,990 --> 00:07:37,727 >> A VARCHAR е нещо като представата на низ 154 00:07:37,727 --> 00:07:39,560 че сме запознати с от С или от PHP. 155 00:07:39,560 --> 00:07:40,830 Това е низ с променлива дължина. 156 00:07:40,830 --> 00:07:42,560 И когато създавате тази колона, просто 157 00:07:42,560 --> 00:07:44,860 максималните възможни дължини. 158 00:07:44,860 --> 00:07:49,065 Така че може би 99 или 255-често. 159 00:07:49,065 --> 00:07:50,440 Това ще бъде максималната дължина. 160 00:07:50,440 --> 00:07:52,890 И така, ако бяхме съхраняване 15 символен низ, 161 00:07:52,890 --> 00:07:56,157 щяхме да използваме 15 байта, може би 16 байтове за нищожна терминатор. 162 00:07:56,157 --> 00:07:57,990 Ако бяхме прибирате три символен низ, 163 00:07:57,990 --> 00:08:01,120 щяхме да използваме три или четири байта. 164 00:08:01,120 --> 00:08:03,050 Но ние няма да се използва пълният 99. 165 00:08:03,050 --> 00:08:05,190 >> Така че, защо да имаме и двете? 166 00:08:05,190 --> 00:08:08,210 Е, ако ние трябва да разбера как дълго нещо е с VARCHAR, 167 00:08:08,210 --> 00:08:10,680 ние трябва да се вид обхождане на нея точно като направихме в C 168 00:08:10,680 --> 00:08:12,230 и да разбера къде да го спре. 169 00:08:12,230 --> 00:08:15,920 Като има предвид, ако знаем, че всичко в тази колона е 10 байта, може би 170 00:08:15,920 --> 00:08:19,220 ние знаем, че информацията, ние може да скочи 10 байта, 10 байта, 10 байта, 10 байта, 171 00:08:19,220 --> 00:08:21,790 и винаги ще намериш започваща на низа. 172 00:08:21,790 --> 00:08:25,210 >> Така че ние може да има някои губи пространство с CHAR, 173 00:08:25,210 --> 00:08:28,510 но може би има и търговията на разстояние от с по-добра скорост 174 00:08:28,510 --> 00:08:30,160 в навигацията на базата данни. 175 00:08:30,160 --> 00:08:32,330 Но може би искаме гъвкавостта на VARCHAR 176 00:08:32,330 --> 00:08:36,710 вместо having-- Ако нашият CHAR е 255, но повечето от нашите потребители 177 00:08:36,710 --> 00:08:40,537 бяха само въвеждане на три или четири байта струва на информация или трима или четирима 178 00:08:40,537 --> 00:08:41,870 знака на стойност на информация. 179 00:08:41,870 --> 00:08:44,324 >> Но някои потребители са използвали цялата 255, може би 180 00:08:44,324 --> 00:08:45,990 VARCHAR би било по-подходящо място. 181 00:08:45,990 --> 00:08:49,840 Това е нещо като компромис, и общо за цели на CS50, 182 00:08:49,840 --> 00:08:54,107 не е нужно да се притеснявате твърде много за дали използвате CHAR или VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Но в реалния свят, тези неща са от значение, тъй като всички тези колони 184 00:08:57,190 --> 00:08:59,300 отнеме до реалното физическо пространство. 185 00:08:59,300 --> 00:09:04,150 И физическо пространство, в реалния свят, идва с премия. 186 00:09:04,150 --> 00:09:06,800 >> Така че една друга насрещна престация когато сте изграждане на маса 187 00:09:06,800 --> 00:09:09,840 е да изберете една колона, за да бъде което се нарича първичен ключ. 188 00:09:09,840 --> 00:09:14,350 И първичен ключ е колона където всяка една стойност е уникален. 189 00:09:14,350 --> 00:09:19,980 А това означава, че можете лесно да избирам един ред само като се погледне 190 00:09:19,980 --> 00:09:22,450 на първичния ключ на този ред. 191 00:09:22,450 --> 00:09:24,580 Така например, можете като цяло, с потребители, 192 00:09:24,580 --> 00:09:27,210 не искам двама потребители, които имат същото потребителско ID номер. 193 00:09:27,210 --> 00:09:28,960 И така, може би имате много информация, 194 00:09:28,960 --> 00:09:30,793 а може би и двете потребителите могат имат същото name-- 195 00:09:30,793 --> 00:09:32,650 имате John Smith и John Smith. 196 00:09:32,650 --> 00:09:34,520 Това не е непременно проблем защото има много хора 197 00:09:34,520 --> 00:09:35,830 в света на име Джон Смит. 198 00:09:35,830 --> 00:09:40,766 Но ние имаме само ID номер едно на потребителя 10, един потребител ID номер 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Ние не разполагаме с двама потребители със същия брой, 200 00:09:42,640 --> 00:09:46,010 и така може би потребителското идентификационни номера Би било добра първичен ключ. 201 00:09:46,010 --> 00:09:48,610 >> Ние не разполагаме с дублиране, и сега можем еднозначно 202 00:09:48,610 --> 00:09:52,619 идентифициране на всеки един ред само като погледнете в тази графа. 203 00:09:52,619 --> 00:09:55,410 Изборът първични ключове може действително прави последващи операции трапезни 204 00:09:55,410 --> 00:09:59,710 много по-лесно, защото можете да използвате на факта, че някои редове ще 205 00:09:59,710 --> 00:10:02,720 е уникален, или определена колона на вашата база данни или маса 206 00:10:02,720 --> 00:10:06,030 ще бъде уникален, за да изберете извън конкретните редове. 207 00:10:06,030 --> 00:10:08,790 >> Можете също да имате общ първичен ключ, който може да се намери повод 208 00:10:08,790 --> 00:10:11,720 да се използва, което е само на комбинация на две колони, 209 00:10:11,720 --> 00:10:13,280 е гарантирано да бъде уникален. 210 00:10:13,280 --> 00:10:16,410 Така че може би имате един колона, която е Както и Bs, 211 00:10:16,410 --> 00:10:19,290 една колона, която е една, две, и три, но вие ще само някога 212 00:10:19,290 --> 00:10:23,660 има един A1, единична А2, и така нататък, и така нататък. 213 00:10:23,660 --> 00:10:28,980 Но може да има B2, а С2, или А1, А2, А3, А4. 214 00:10:28,980 --> 00:10:32,840 Така че може да имате няколко As, множествена Bs, множество такива, множество двойки, 215 00:10:32,840 --> 00:10:38,567 но можете да само да имат единичен А1, В2, В3, и така нататък. 216 00:10:38,567 --> 00:10:40,400 Така че, както казах, SQL е език за програмиране, 217 00:10:40,400 --> 00:10:42,024 но това е доста ограничен речников запас. 218 00:10:42,024 --> 00:10:44,880 Това не е чак толкова експанзивен като C и PHP и други езици 219 00:10:44,880 --> 00:10:46,350 че ние говорим в хода. 220 00:10:46,350 --> 00:10:49,960 Тя е по-многословен а език, отколкото това, което сме 221 00:10:49,960 --> 00:10:52,789 Ще говорим за това в видео, тъй като в това видео 222 00:10:52,789 --> 00:10:54,830 ние ще говорим за четири операции, които ние 223 00:10:54,830 --> 00:10:55,720 може да извърши за една маса. 224 00:10:55,720 --> 00:10:56,761 >> Има повече от това. 225 00:10:56,761 --> 00:10:58,730 Ние можем да направим повече от това, но за нашите цели, 226 00:10:58,730 --> 00:11:02,250 ние сме като цяло ще бъде с помощта на само четири operations-- вложка, 227 00:11:02,250 --> 00:11:05,360 изберете, обновяване и изтриване. 228 00:11:05,360 --> 00:11:08,750 И вие можете да вероятно интуитивно предполагам това, което всички тези четири неща направи. 229 00:11:08,750 --> 00:11:12,520 Но ние ще отидем в битов на подробност на всеки един. 230 00:11:12,520 --> 00:11:15,780 >> Така за целите на настоящото видео, нека приемем, 231 00:11:15,780 --> 00:11:18,870 ние сме от следните два маси в единна база данни. 232 00:11:18,870 --> 00:11:23,460 Ние имаме таблица, озаглавена потребители, които допринасят четири columns-- ID номер, потребителско име, 233 00:11:23,460 --> 00:11:25,350 парола и пълните си имена. 234 00:11:25,350 --> 00:11:27,430 И ние имаме втори маса в същата база данни 235 00:11:27,430 --> 00:11:32,129 наречено Moms, че просто съхранява информация за потребителско име и майка. 236 00:11:32,129 --> 00:11:33,920 Така че за всички примери В това видео, ние ще 237 00:11:33,920 --> 00:11:37,945 да се използва тази база данни и последващи актуализации към него. 238 00:11:37,945 --> 00:11:40,070 Така че нека да кажем, ние искаме да добавяне на информация към маса. 239 00:11:40,070 --> 00:11:44,460 Това е, което операцията вложка прави. 240 00:11:44,460 --> 00:11:46,550 Обяснявайки всички тези команди, аз ще 241 00:11:46,550 --> 00:11:48,860 да ви даде обща скелет за използване. 242 00:11:48,860 --> 00:11:51,661 Защото в общи линии, запитванията ще изглеждат доста сходни, 243 00:11:51,661 --> 00:11:54,660 ние просто ще трябва да се променя малко по-различни парчета информация 244 00:11:54,660 --> 00:11:56,750 да правя различни неща, с масата. 245 00:11:56,750 --> 00:11:59,200 >> Така че за INSERT, скелета прилича на вид това. 246 00:11:59,200 --> 00:12:02,230 Искаме да вмъкнете в дадена таблица. 247 00:12:02,230 --> 00:12:05,290 Тогава ние имаме един отворен скоби както и списък на колони 248 00:12:05,290 --> 00:12:08,070 че искаме да се сложи ценности в. 249 00:12:08,070 --> 00:12:10,974 Намали скоби, на следните стойности и след това 250 00:12:10,974 --> 00:12:13,390 отново, ние списък на стойностите ние искаме да се сложи в таблицата. 251 00:12:13,390 --> 00:12:15,950 >> Така че пример за това би било следното. 252 00:12:15,950 --> 00:12:19,170 Искам да вмъкнете в таблицата Потребителите следния columns-- 253 00:12:19,170 --> 00:12:21,010 потребителско име, парола и FULLNAME. 254 00:12:21,010 --> 00:12:25,282 Така че нов ред, където аз съм пускането в тези три колони и ние сме 255 00:12:25,282 --> 00:12:30,030 ще пуснат в стойностите Newman, USMAIL и Нюман. 256 00:12:30,030 --> 00:12:32,730 Така че в този случай, аз съм извеждането на малки букви Нюман 257 00:12:32,730 --> 00:12:38,710 в колоната за потребителско име, парола USMAIL и пълното име столицата N 258 00:12:38,710 --> 00:12:41,940 Нюман в колоната за FULLNAME. 259 00:12:41,940 --> 00:12:44,240 >> Така че тук е това, което на базата данни Приличаше преди. 260 00:12:44,240 --> 00:12:48,250 Ето какво таблицата на потребителите по отношение на отгоре изглеждаше като преди да направи това. 261 00:12:48,250 --> 00:12:50,760 След като изпълните тази заявка, ние се получи това. 262 00:12:50,760 --> 00:12:54,790 Добавихме нов ред в таблицата. 263 00:12:54,790 --> 00:12:56,810 Но забележете това нещо че аз не уточни, 264 00:12:56,810 --> 00:12:59,880 но някак си имам стойност за, която е в този 12-точно тук. 265 00:12:59,880 --> 00:13:02,820 Не съм казал, че искам да сложи ID номер в там. 266 00:13:02,820 --> 00:13:04,900 Исках да сложи потребителско име, парола, FULLNAME. 267 00:13:04,900 --> 00:13:06,440 И аз го направих, че това е добре. 268 00:13:06,440 --> 00:13:07,760 >> Но аз също имам този 12. 269 00:13:07,760 --> 00:13:09,490 Защо получих този 12? 270 00:13:09,490 --> 00:13:12,904 Е, оказва се, че когато дефинирате 271 00:13:12,904 --> 00:13:15,570 колона, която ще ви бъде първичен ключ, който е обикновено, 272 00:13:15,570 --> 00:13:16,510 както казах, идентификационен номер. 273 00:13:16,510 --> 00:13:18,718 Това не винаги е задължително Ще бъде идентификационен номер, 274 00:13:18,718 --> 00:13:22,380 но това е обикновено е добра идея да се да бъде някакъв вид на цяло число. 275 00:13:22,380 --> 00:13:25,950 Имате опция в PhpMyAdmin когато създавате вашата база данни 276 00:13:25,950 --> 00:13:31,130 или масата ви да зададете, че колона като автоматично Нарастваща. 277 00:13:31,130 --> 00:13:34,520 >> Което е наистина добра идея, когато можете да започнете работа с първичен ключ, 278 00:13:34,520 --> 00:13:39,330 защото искате всяка стойност в тази колона да бъде уникален. 279 00:13:39,330 --> 00:13:43,310 И ако сте пропуснали да посочите то в продължение на повече от едно лице, 280 00:13:43,310 --> 00:13:46,240 сега имате ситуация, в която тази колона Вече не е уникална. 281 00:13:46,240 --> 00:13:50,200 Имате две заготовки, така че не може да вече еднозначно идентифициране на column-- 282 00:13:50,200 --> 00:13:54,150 или вече не може еднозначно идентифицира един ред въз основа на тази колона. 283 00:13:54,150 --> 00:13:57,010 Той е загубил всичките си стойност като първичен ключ. 284 00:13:57,010 --> 00:14:02,010 >> И така, очевидно това, което съм направил тук е конфигуриран потребителския идентификатор 285 00:14:02,010 --> 00:14:07,790 колона за автоматично увеличение, така че всеки път I добавите информация в таблицата, 286 00:14:07,790 --> 00:14:12,220 той автоматично ще ми даде стойност за първичния ключ. 287 00:14:12,220 --> 00:14:15,570 Така че аз никога не мога да забравя да го направя, защото базата данни ще го направи вместо мен. 288 00:14:15,570 --> 00:14:16,587 Така че това е вид хубаво. 289 00:14:16,587 --> 00:14:18,670 И така, ето защо ние се 12 там, защото съм 290 00:14:18,670 --> 00:14:21,772 определя, че колона до автоматично увеличаване. 291 00:14:21,772 --> 00:14:23,730 Ако аз добавя някой друг че ще бъде 13, ако аз добавя 292 00:14:23,730 --> 00:14:27,890 някой друг, че ще е 14, и така нататък. 293 00:14:27,890 --> 00:14:30,190 >> Така че нека просто направим още едно вмъкване. 294 00:14:30,190 --> 00:14:34,530 Ние ще вмъкнете в таблицата на майките, в специално, потребителското име и майката 295 00:14:34,530 --> 00:14:37,390 колоните, стойностите Крамер и Babs Крамер. 296 00:14:37,390 --> 00:14:39,140 И така имахме преди. 297 00:14:39,140 --> 00:14:41,800 След като се изпълни, че SQL заявка, ние имаме това. 298 00:14:41,800 --> 00:14:47,290 Добавихме Kramer и Babs Kramer на масата за майките. 299 00:14:47,290 --> 00:14:48,350 >> Така че това е вмъкване. 300 00:14:48,350 --> 00:14:51,850 SELECT е това, което ние използваме за извличане информация от масата. 301 00:14:51,850 --> 00:14:54,390 Така че това е начинът да стигнем информация от базата данни. 302 00:14:54,390 --> 00:14:59,589 И така добави команди ще бъдат много често се използва в програмирането. 303 00:14:59,589 --> 00:15:02,130 Генералът framework-- на обща скелет изглежда по този начин. 304 00:15:02,130 --> 00:15:06,550 Изберете набор от колони от маса, и след това евентуално 305 00:15:06,550 --> 00:15:11,090 можете да укажете condition-- или това, което ние обикновено наричаме предикат, 306 00:15:11,090 --> 00:15:13,010 обикновено е терминът, които използваме в SQL. 307 00:15:13,010 --> 00:15:16,490 >> Но това е основно това, което конкретни редове, които искате да получите. 308 00:15:16,490 --> 00:15:19,100 Ако искате да, вместо да се всичко, стесни го надолу, 309 00:15:19,100 --> 00:15:20,060 Това е мястото, където можете да направите това. 310 00:15:20,060 --> 00:15:22,777 И след това, евентуално, можете също поръчате от определена колона. 311 00:15:22,777 --> 00:15:25,860 Така че може би искате да имате неща сортирани Азбучен основава на една колона 312 00:15:25,860 --> 00:15:27,540 или индекс въз основа на друг. 313 00:15:27,540 --> 00:15:30,610 >> Отново, къде и ORDER BY са задължителни. 314 00:15:30,610 --> 00:15:32,681 Но те вероятно ще бъде useful-- особено 315 00:15:32,681 --> 00:15:34,680 Къде ще бъде полезно да се стесните така че не правим 316 00:15:34,680 --> 00:15:37,460 получите цялата си база данни и обратно трябва да го обработим, вие просто се 317 00:15:37,460 --> 00:15:39,300 парчетата от него, които са важни за вас. 318 00:15:39,300 --> 00:15:44,932 Така например, аз може да искате да изберете ID номер и FULLNAME от потребителите. 319 00:15:44,932 --> 00:15:46,140 Така че това, което може да изглежда това? 320 00:15:46,140 --> 00:15:48,270 Така че тук е моята маса потребители. 321 00:15:48,270 --> 00:15:51,080 Искам да изберете IDNUM и FULLNAME от потребителите. 322 00:15:51,080 --> 00:15:52,300 Какво съм аз ще получа? 323 00:15:52,300 --> 00:15:53,580 Отивам да се получи това. 324 00:15:53,580 --> 00:15:56,930 Аз не го ограничите, така че аз съм получаване ID номер за всеки ред 325 00:15:56,930 --> 00:16:00,850 и аз съм се насита име от всеки ред. 326 00:16:00,850 --> 00:16:02,210 >> ДОБРЕ. 327 00:16:02,210 --> 00:16:05,640 Какво става, ако искате да изберете парола от потребителите WHERE-- така че сега 328 00:16:05,640 --> 00:16:10,370 Аз съм добавяне на състояние, а predicate-- където IDNUM е по-малко от 12. 329 00:16:10,370 --> 00:16:13,660 Така че тук е моята база данни отново, моята маса потребители на върха. 330 00:16:13,660 --> 00:16:17,030 Какво съм аз ще получите, ако искам да изберете тази информация, паролата, 331 00:16:17,030 --> 00:16:21,550 където потребителското ID или IDNUM е по-малко от 12? 332 00:16:21,550 --> 00:16:24,910 Отивам да се получи това информация обратно, нали? 333 00:16:24,910 --> 00:16:29,170 Това се случва, че IDNUM е 10, по-малко от 12, ID номер 11 по-малко от 12. 334 00:16:29,170 --> 00:16:32,160 Аз съм се паролата за тези редове. 335 00:16:32,160 --> 00:16:33,914 Това е, което аз поисках. 336 00:16:33,914 --> 00:16:34,580 Какво за това? 337 00:16:34,580 --> 00:16:39,170 Какво става, ако искате да изберете звезда от майки маса, на която се равнява на потребителско име Джери? 338 00:16:39,170 --> 00:16:43,780 OK, изберете звезда е специалитета нещо като жокер т.нар 339 00:16:43,780 --> 00:16:45,670 която ние използваме, за да се получи всичко. 340 00:16:45,670 --> 00:16:48,620 Така че те да кажеш, изберете потребителско име запетая майка, която 341 00:16:48,620 --> 00:16:51,060 се случи да бъде единствената две колони с тази таблица, 342 00:16:51,060 --> 00:16:53,260 Мога само да изберете звезда и да получите всичко 343 00:16:53,260 --> 00:16:55,030 когато потребителското име равнява Джери. 344 00:16:55,030 --> 00:16:59,380 И така, това е, което аз ще получите ако аз направих тази конкретна заявка. 345 00:16:59,380 --> 00:17:01,810 >> Сега, бази данни са страхотно, защото те позволяват 346 00:17:01,810 --> 00:17:06,074 нас, за да организираме информацията може би малко по-ефективно, отколкото сме 347 00:17:06,074 --> 00:17:06,740 иначе биха могли. 348 00:17:06,740 --> 00:17:10,240 Ние не трябва непременно да се съхранява всяка съответна част от информацията 349 00:17:10,240 --> 00:17:12,230 за употреба в една и съща маса. 350 00:17:12,230 --> 00:17:13,730 Имахме две маси там. 351 00:17:13,730 --> 00:17:15,734 >> Ние трябва да се съхранява име на майката на всеки, 352 00:17:15,734 --> 00:17:18,900 а може би и ние нямаме социално осигуряване номер, имаме тяхната дата на раждане. 353 00:17:18,900 --> 00:17:21,819 Това не винаги се нуждаем да бъде в същата таблица. 354 00:17:21,819 --> 00:17:25,339 Докато можем да определим взаимоотношения между tables-- 355 00:17:25,339 --> 00:17:28,440 и това е, когато тази релационна Терминът база данни вид идва 356 00:17:28,440 --> 00:17:32,130 в play-- толкова дълго, колкото можем да определим връзки между таблиците, 357 00:17:32,130 --> 00:17:35,545 можем да подреди на раздробяват или абстрактни неща по начин, 358 00:17:35,545 --> 00:17:37,670 където имаме само на наистина важна информация 359 00:17:37,670 --> 00:17:39,270 ние се грижим за в таблица на потребителя. 360 00:17:39,270 --> 00:17:43,220 И тогава имаме допълнителна информация или допълнителна информация в други таблици 361 00:17:43,220 --> 00:17:48,260 че можем да се свърже отново на главния маса потребители по определен начин. 362 00:17:48,260 --> 00:17:52,200 >> Така че тук имаме тези две маси, но има връзка между тях, 363 00:17:52,200 --> 00:17:53,010 нали? 364 00:17:53,010 --> 00:17:55,070 Тя изглежда като потребителско име може да е нещо 365 00:17:55,070 --> 00:17:59,909 че съществува общо между тези две различни таблици. 366 00:17:59,909 --> 00:18:01,700 И какво, ако сега ние имаме ситуация, в която ние 367 00:18:01,700 --> 00:18:06,046 искате да получите пълно име на потребител от маса на потребителя, и на майка им 368 00:18:06,046 --> 00:18:07,170 назоват от таблицата на майка? 369 00:18:07,170 --> 00:18:10,960 Ние нямаме начин да се получи че в този си вид, нали? 370 00:18:10,960 --> 00:18:17,790 Няма по една таблица, която съдържа както пълно име и името на майка му. 371 00:18:17,790 --> 00:18:20,400 Ние нямаме тази възможност от това, което сме виждали досега. 372 00:18:20,400 --> 00:18:22,950 >> И така, ние трябва да представим идеята за JOIN. 373 00:18:22,950 --> 00:18:24,857 И се присъединява вероятно са най-complex-- 374 00:18:24,857 --> 00:18:27,940 това е наистина най-сложна операция ние ще говорим за в клипа. 375 00:18:27,940 --> 00:18:30,040 Те са малко по-сложно, но след като се закача за него, 376 00:18:30,040 --> 00:18:31,248 те всъщност не са толкова зле. 377 00:18:31,248 --> 00:18:32,820 Това е просто един специален случай на SELECT. 378 00:18:32,820 --> 00:18:37,120 Отиваме да изберете набор от колони от таблица присъединяват 379 00:18:37,120 --> 00:18:40,650 във втора таблица на някои предикат. 380 00:18:40,650 --> 00:18:45,340 >> В този случай, мисля за това искал this-- маса за един е един кръг тук, 381 00:18:45,340 --> 00:18:47,530 масичка и две е друг кръг тук. 382 00:18:47,530 --> 00:18:49,410 И това предикатното част в средата, това е 383 00:18:49,410 --> 00:18:51,701 нещо като ако смятате като за диаграма на Вен, което 384 00:18:51,701 --> 00:18:52,670 те са по-чести? 385 00:18:52,670 --> 00:18:55,960 Ние искаме да свържем тези две маси въз основа на това, което те са по-чести 386 00:18:55,960 --> 00:19:01,230 и да се създаде тази хипотетична маса това е сливането на двете заедно. 387 00:19:01,230 --> 00:19:03,480 Така че ние ще видим това в Например, и може би това ще помогне 388 00:19:03,480 --> 00:19:04,521 го изясним малко. 389 00:19:04,521 --> 00:19:09,260 Така че може би искате да изберете user.fullname и moms.mother 390 00:19:09,260 --> 00:19:13,220 от потребители се присъединяват в маса за майки във всяка ситуация 391 00:19:13,220 --> 00:19:16,790 където колоната потребителско име е същото между тях. 392 00:19:16,790 --> 00:19:19,240 И това е една нова синтаксис тук, на този потребител. 393 00:19:19,240 --> 00:19:20,460 и майки .. 394 00:19:20,460 --> 00:19:26,697 Ако аз правя много маси заедно, мога да посочите една маса. 395 00:19:26,697 --> 00:19:29,530 Мога да се разграничат по-специално относно че на най-долу там. 396 00:19:29,530 --> 00:19:33,220 Мога да се разграничат потребителско име колона от таблицата на потребителите 397 00:19:33,220 --> 00:19:36,010 от колоната име на майки на маса, които са otherwise-- 398 00:19:36,010 --> 00:19:38,070 ако ние просто каза потребителско име равнява потребителско име, че не е така наистина 399 00:19:38,070 --> 00:19:38,970 означава нищо. 400 00:19:38,970 --> 00:19:41,440 Искаме да го направим, когато те съвпадат. 401 00:19:41,440 --> 00:19:46,080 >> Така че мога да укажете на масата и Име на колона в случай на ситуация, 402 00:19:46,080 --> 00:19:48,370 когато би било неясно това, което аз говоря. 403 00:19:48,370 --> 00:19:51,880 Така че това е всичко, което правя е, че съм Казвайки това колона от таблицата, 404 00:19:51,880 --> 00:19:54,020 и е много ясна. 405 00:19:54,020 --> 00:19:56,810 Така че отново, аз съм изберете пълно име и името на майката 406 00:19:56,810 --> 00:20:00,950 от таблицата на потребителите, свързани заедно таблицата на майките във всяка ситуация 407 00:20:00,950 --> 00:20:05,960 където те споделят, че column-- те споделят, че потребителското име понятие. 408 00:20:05,960 --> 00:20:08,580 >> Така че тук са таблиците, които имахме преди. 409 00:20:08,580 --> 00:20:12,210 Това е състояние на нашите база данни, която съществува в момента. 410 00:20:12,210 --> 00:20:16,390 Информацията, която се извлича е това да се започне с. 411 00:20:16,390 --> 00:20:19,820 Това е най-новата маса отиваме да се създаде съчетаването на двете заедно. 412 00:20:19,820 --> 00:20:23,585 И забележи ние не сме подчертаване Поредни Нюман в таблица на потребителя, 413 00:20:23,585 --> 00:20:25,960 и ние не сме се подчертае Поредни Креймър в таблицата за майки 414 00:20:25,960 --> 00:20:31,250 тъй като нито една съществува в както sets-- в двете таблици. 415 00:20:31,250 --> 00:20:36,260 >> Единствената информация, която е общо между тях е Jerry е в двете таблици 416 00:20:36,260 --> 00:20:39,100 и gcostanza е и в двете таблици. 417 00:20:39,100 --> 00:20:42,620 И така, когато правим на SQL JOIN, това, което ние get-- и ние правим всъщност се получи това. 418 00:20:42,620 --> 00:20:44,830 Това е нещо временно променлива. 419 00:20:44,830 --> 00:20:47,330 Това е като една хипотетична сливане на двете плочи. 420 00:20:47,330 --> 00:20:49,930 Ние всъщност се получи нещо като тази, в която 421 00:20:49,930 --> 00:20:54,730 ние сме обединили таблиците на информация, че те са по-чести. 422 00:20:54,730 --> 00:20:58,334 >> Така че забележите, че users.username и moms.username колона, 423 00:20:58,334 --> 00:20:59,250 това е точно същото. 424 00:20:59,250 --> 00:21:01,820 Това беше информацията, която е в съответствие от потребителите 425 00:21:01,820 --> 00:21:02,890 маса и масата на майките. 426 00:21:02,890 --> 00:21:04,270 И така, ние ги слива заедно. 427 00:21:04,270 --> 00:21:06,919 Ние изхвърли Kramer, защото той не съществува в таблицата на потребителите, 428 00:21:06,919 --> 00:21:09,710 и ние се изхвърли Newman, защото той не съществува в таблицата на майките. 429 00:21:09,710 --> 00:21:16,450 Така че това е хипотетичен сливането използване на операцията JOIN на SELECT. 430 00:21:16,450 --> 00:21:21,250 >> И тогава ние търсехме пълното име на потребителя и майка на потребителя, 431 00:21:21,250 --> 00:21:24,999 и така това е информацията, ние ще получите от цялостната заявката 432 00:21:24,999 --> 00:21:26,040 че ние направихме със SELECT. 433 00:21:26,040 --> 00:21:28,873 Така че ние се присъедини масите заедно и ние се екстрахира тези две колони, 434 00:21:28,873 --> 00:21:31,610 и така че това, което ще получим. 435 00:21:31,610 --> 00:21:33,370 Но SQL присъединява един вид сложно. 436 00:21:33,370 --> 00:21:36,770 Може би няма да ги правя прекалено много, но просто има някаква идея на скелета 437 00:21:36,770 --> 00:21:41,992 които можете да използвате, за да се слеят две маси заедно, ако са необходими за. 438 00:21:41,992 --> 00:21:43,700 Последните две са битов опростена обещавам. 439 00:21:43,700 --> 00:21:48,040 Така актуализиране, ние можем да използваме UPDATE да променя информацията в таблица. 440 00:21:48,040 --> 00:21:53,880 Общият формат е UPDATE някои таблица, се определят някои колона до известна стойност 441 00:21:53,880 --> 00:21:55,540 КЪДЕ някои предикат е изпълнено. 442 00:21:55,540 --> 00:21:57,850 Така например, ние може да искате да актуализира таблицата за потребители 443 00:21:57,850 --> 00:22:04,400 и да зададете парола за бала бала, където ID номер е 10. 444 00:22:04,400 --> 00:22:06,400 >> Така че в този случай, ние сме актуализиране на таблицата на потребителите. 445 00:22:06,400 --> 00:22:08,275 Номерът на ID е 10 за че първия ред там, 446 00:22:08,275 --> 00:22:10,690 и ние искаме да се актуализират парола за ала-бала. 447 00:22:10,690 --> 00:22:12,170 И така, това е, което ще се случи. 448 00:22:12,170 --> 00:22:13,628 Това е доста ясен, нали? 449 00:22:13,628 --> 00:22:17,990 Това е просто един много прост изменение на таблицата. 450 00:22:17,990 --> 00:22:22,250 >> DELETE е операцията сме свикнали да премахване на информация от една маса. 451 00:22:22,250 --> 00:22:24,817 Изтрий от масата, където някои предикат е изпълнено. 452 00:22:24,817 --> 00:22:26,900 Искаме да изтриете от маса потребители, например 453 00:22:26,900 --> 00:22:28,254 когато потребителското име е Нюман. 454 00:22:28,254 --> 00:22:31,420 Вероятно можете да се досетите какво ще се се случи тук, след като се изпълни, че SQL 455 00:22:31,420 --> 00:22:35,790 заявка, Newman е отишъл от масата. 456 00:22:35,790 --> 00:22:40,460 >> Така че всички тези операции, както казах, са много лесно да се направи в PhpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Това е много лесен за използване интерфейс. 458 00:22:43,020 --> 00:22:45,930 Но това изисква ръчно усилие. 459 00:22:45,930 --> 00:22:47,840 Ние не искаме да наемат ръчно усилие. 460 00:22:47,840 --> 00:22:51,280 Ние искаме нашите програми за направите това за нас, нали? 461 00:22:51,280 --> 00:22:53,190 Така че ние може да искате да направите, това програмно. 462 00:22:53,190 --> 00:22:56,410 Искаме да включи SQL и да имат нещо друго да се направи това за нас. 463 00:22:56,410 --> 00:23:02,710 >> Но това, което видяхме, че позволява нас, за да се направи нещо по програмен? 464 00:23:02,710 --> 00:23:03,690 Виждали сме PHP, нали? 465 00:23:03,690 --> 00:23:05,760 С него се въвеждат някои динамика в нашите програми. 466 00:23:05,760 --> 00:23:10,430 И така, за щастие, SQL и PHP играе много добре заедно. 467 00:23:10,430 --> 00:23:13,230 Има една функция в PHP наречен заявка, която може да се използва. 468 00:23:13,230 --> 00:23:15,870 И вие може да премине като параметър или на аргумента 469 00:23:15,870 --> 00:23:19,210 да заявка заявка SQL, че бихте искали да се изпълни. 470 00:23:19,210 --> 00:23:23,250 И PHP ще го направи вместо вас. 471 00:23:23,250 --> 00:23:25,564 >> Така че, след като сте свързали до вашата база данни с PHP, 472 00:23:25,564 --> 00:23:26,980 Има две първични избори, които правите това. 473 00:23:26,980 --> 00:23:29,230 Има нещо, наречено MySQLi и нещо, наречено ЗНП. 474 00:23:29,230 --> 00:23:31,063 Ние няма да влезем в огромен количество подробно там. 475 00:23:31,063 --> 00:23:32,957 В CS50 ние използваме ЗНП. 476 00:23:32,957 --> 00:23:34,790 След като се свържете до вашата база данни, можете 477 00:23:34,790 --> 00:23:40,980 След това може да направи заявки вашата база данни чрез преминаване запитванията като аргументи 478 00:23:40,980 --> 00:23:42,730 да PHP функции. 479 00:23:42,730 --> 00:23:46,460 И когато направите това, вие съхранявате резултатен набор в асоциативен масив. 480 00:23:46,460 --> 00:23:50,290 >> И ние знаем как да работим с асоциативни масиви в PHP. 481 00:23:50,290 --> 00:23:52,630 Така че мога да кажа нещо като this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 това е в PHP-- равнява заявка. 483 00:23:55,470 --> 00:23:57,660 И тогава вътре в функция заявка, че доводът 484 00:23:57,660 --> 00:24:00,130 че аз съм минаваща за запитване който изглежда като SQL. 485 00:24:00,130 --> 00:24:01,160 И в действителност, че е SQL. 486 00:24:01,160 --> 00:24:05,700 Това е низ заявка, че ще искал да изпълни на моята база данни. 487 00:24:05,700 --> 00:24:09,250 >> И така в червено, това е PHP. 488 00:24:09,250 --> 00:24:11,890 Това е SQL, че аз съм интегрира в PHP, като 489 00:24:11,890 --> 00:24:15,020 то на аргумента на функцията по заявка. 490 00:24:15,020 --> 00:24:19,640 Искам да изберете FULLNAME от Потребителите, където ID номер равнява на 10. 491 00:24:19,640 --> 00:24:22,560 И тогава може би след като съм направил това, Мога да кажа нещо подобно. 492 00:24:22,560 --> 00:24:25,550 Искам да разпечатате Благодарение на съобщения за влизане в системата. 493 00:24:25,550 --> 00:24:32,530 >> И аз го искам interpolate-- искам да интерполира $ резултати FULLNAME. 494 00:24:32,530 --> 00:24:36,280 И така, това е как аз работя с този асоциативен масив, че се върнах. 495 00:24:36,280 --> 00:24:39,730 $ резултати FULLNAME би основно се окажете отпечатване, 496 00:24:39,730 --> 00:24:42,870 Благодаря за влизане в системата, Джери Зайнфелд. 497 00:24:42,870 --> 00:24:46,570 Това беше пълното име където IDNUM се равнява на 10. 498 00:24:46,570 --> 00:24:48,850 >> И така, всичко, което правя е аз съм now-- I съхранява 499 00:24:48,850 --> 00:24:52,780 моя въпрос, резултатите от моя въпрос и води до по асоциативен масив, 500 00:24:52,780 --> 00:24:56,330 и FULLNAME е името на колоната аз получавах за. 501 00:24:56,330 --> 00:25:01,010 Така че това е моят ключ в резултатите асоциативен масив, който искам. 502 00:25:01,010 --> 00:25:05,930 Така Благодаря за влизане в системата, $ резултати, FULLNAME ще разпечатате, ще се придържаме 503 00:25:05,930 --> 00:25:08,654 точно в тези, къдрава между тиранти, Джери Зайнфелд. 504 00:25:08,654 --> 00:25:11,820 И аз ще искал да разпечатате съобщението Благодаря за влизане в системата Джери Зайнфелд. 505 00:25:11,820 --> 00:25:16,652 >> Сега, ние вероятно не искате да твърдия кодови такива неща в, нали? 506 00:25:16,652 --> 00:25:19,860 Ние може да искате да направите нещо подобно за печат е, където можем да се замени и може би 507 00:25:19,860 --> 00:25:22,443 събира различна информация, или може би имате процеса на заявка 508 00:25:22,443 --> 00:25:23,370 различна информация. 509 00:25:23,370 --> 00:25:27,920 И така заявка, функция за търсене, има това понятие за сортиране на замествания 510 00:25:27,920 --> 00:25:32,310 много подобен на отпечатване е процента ите и процента в, е въпросителни знаци. 511 00:25:32,310 --> 00:25:34,290 >> И ние можем да използваме въпрос марка много аналогично 512 00:25:34,290 --> 00:25:38,400 да отпечатате е да заместващи променливи. 513 00:25:38,400 --> 00:25:44,120 Така че може би вашето потребителско влезете в профила си по-рано, и сте записали своя идентификационен номер на потребителя 514 00:25:44,120 --> 00:25:51,710 на масива $ _SESSION на PHP супер глобално в ключовата ID. 515 00:25:51,710 --> 00:25:55,947 Така че може би, след като влезете в профила си, зададете $ _SESSION ID равнява на 10, 516 00:25:55,947 --> 00:25:58,280 екстраполиране от примера ние просто видях преди една секунда. 517 00:25:58,280 --> 00:26:01,960 >> И така, когато ние действително изпълнява това въпроси към резултатите сега, 518 00:26:01,960 --> 00:26:08,440 това ще включите в 10, или каквото ID стойност $ _SESSION е. 519 00:26:08,440 --> 00:26:10,790 И така, това ни позволява да да бъде малко по-динамичен. 520 00:26:10,790 --> 00:26:12,699 Ние не сме трудно кодиране неща в повече. 521 00:26:12,699 --> 00:26:14,490 Ние сте спестяване на информация някъде и след това 522 00:26:14,490 --> 00:26:18,924 можем да използваме тази информация отново, за да нещо като обобщим това, което искаме да направим, 523 00:26:18,924 --> 00:26:21,090 и просто плъг-ин и промяна поведението на нашата страница 524 00:26:21,090 --> 00:26:26,489 въз основа на това, което ID номер на потребителя всъщност е, след като са влезли вътре. 525 00:26:26,489 --> 00:26:28,530 Възможно е също така, все пак, които определят вашите резултати 526 00:26:28,530 --> 00:26:30,840 може да се състои от няколко реда. 527 00:26:30,840 --> 00:26:33,990 В този случай, трябва да имате масив от arrays-- 528 00:26:33,990 --> 00:26:35,334 масив от асоциативни масиви. 529 00:26:35,334 --> 00:26:37,000 И просто трябва да превъртите през него. 530 00:26:37,000 --> 00:26:41,950 И ние знаем как да превъртите чрез масив в PHP, нали? 531 00:26:41,950 --> 00:26:45,600 Така че тук е може би най- комплекс нещо, което сме виждали досега. 532 00:26:45,600 --> 00:26:49,640 То всъщност интегрира три езика заедно. 533 00:26:49,640 --> 00:26:52,920 >> Тук, в червено, това е някакъв HTML. 534 00:26:52,920 --> 00:26:56,872 Аз очевидно starting-- това е фрагмент от някои HTML, че имам. 535 00:26:56,872 --> 00:26:59,580 Аз съм се започне нов параграф, който казва майките на Зайнфелд телевизора. 536 00:26:59,580 --> 00:27:02,350 И след това веднага след това Аз съм се започне една маса. 537 00:27:02,350 --> 00:27:06,060 И тогава, след това, аз има някои PHP, нали? 538 00:27:06,060 --> 00:27:08,229 Имам всичко това PHP код в там. 539 00:27:08,229 --> 00:27:09,645 Аз очевидно ще направи заявка. 540 00:27:09,645 --> 00:27:14,180 И за да направи заявката, аз отивам да да се използва SELECT FROM майки майки. 541 00:27:14,180 --> 00:27:15,970 >> Така че това е getting-- това е SQL. 542 00:27:15,970 --> 00:27:17,300 Така че синьото е SQL. 543 00:27:17,300 --> 00:27:19,680 Червеният видяхме втори Преди беше HTML. 544 00:27:19,680 --> 00:27:21,360 И на зелено тук е PHP. 545 00:27:21,360 --> 00:27:23,400 Така че аз съм на заявката в моята база данни, аз съм 546 00:27:23,400 --> 00:27:26,040 избиране на всички от майки в таблицата на майките. 547 00:27:26,040 --> 00:27:30,710 Не само това стесняване на специално ред, аз питам за всички тях. 548 00:27:30,710 --> 00:27:33,290 >> Тогава аз се провери, ако резултатът е не равни равнява неверни. 549 00:27:33,290 --> 00:27:37,410 Това е просто моят начин на проверка на сортиране на резултатите, ако не е равно на нула, 550 00:27:37,410 --> 00:27:40,260 че искаме да видим в например. 551 00:27:40,260 --> 00:27:44,000 Основно това е просто да се направи проверка сигурен, че тя действително има данни за минали периоди. 552 00:27:44,000 --> 00:27:47,041 Защото аз не искам да започвам печат от данни, ако аз не се получи никакви данни. 553 00:27:47,041 --> 00:27:50,690 След това за всеки резултати в резултат на foreach синтаксис от PHP, всичко, което правя 554 00:27:50,690 --> 00:27:53,399 отпечатва $ резултат майки. 555 00:27:53,399 --> 00:27:55,940 И така, аз отивам да получат набор на всички от майките на each-- 556 00:27:55,940 --> 00:27:59,980 това е масив от асоциативен arrays-- и аз съм отпечатване 557 00:27:59,980 --> 00:28:03,649 като всеки отделен ред на таблица. 558 00:28:03,649 --> 00:28:05,690 И това е наистина доста много по всичко там е до него. 559 00:28:05,690 --> 00:28:07,750 Знам, че има малко по- битов става тук 560 00:28:07,750 --> 00:28:13,210 в този последен пример с масиви от arrays-- масиви на асоциативни масиви. 561 00:28:13,210 --> 00:28:17,340 Но това наистина е просто ври предвидени в SQL, за да направи заявка, 562 00:28:17,340 --> 00:28:21,102 Обикновено избора, след като вече сме публикувате информация в таблицата, 563 00:28:21,102 --> 00:28:22,310 и след това просто го издърпате навън. 564 00:28:22,310 --> 00:28:25,710 >> И това е, че ние ще го издърпайте в този конкретен случай. 565 00:28:25,710 --> 00:28:31,120 Ние ще извлече всички на индивида майки от таблицата на майките. 566 00:28:31,120 --> 00:28:35,970 Имаме цял набор от тях, и ние искате да превъртите през и разпечатате 567 00:28:35,970 --> 00:28:37,630 всеки един. 568 00:28:37,630 --> 00:28:40,510 Така че отново, това е може би най-сложната примера 569 00:28:40,510 --> 00:28:44,510 сме виждали, защото ние сме на смесване на три различни езици заедно, нали? 570 00:28:44,510 --> 00:28:50,100 >> Отново имаме HTML тук в червено, смесва с някои SQL тук в синьо, 571 00:28:50,100 --> 00:28:52,049 смесва с някои PHP в зелено. 572 00:28:52,049 --> 00:28:53,840 Но всички те играят добре заедно, това е 573 00:28:53,840 --> 00:28:57,060 само въпрос на развиване добри навици, така че можете да получите 574 00:28:57,060 --> 00:28:58,780 ги да работят заедно, така, както искате. 575 00:28:58,780 --> 00:29:03,790 И единственият начин наистина да направи това е да се отработят, практика, практика. 576 00:29:03,790 --> 00:29:06,740 Аз съм Дъг Лойд, това е CS50. 577 00:29:06,740 --> 00:29:08,647