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. 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 Таблиці. 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 Може бути, у мене є книга 2 і 3 книги. 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 ГІС координати сюжет з області. 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 Перерахування є свого роду цікаво. 127 00:06:12,840 --> 00:06:16,080 Вони насправді існує в С. Ми не говорити про них, тому що вони не 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 >> Дійсно хороший приклад тут буде створити перерахування, де сім 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 >> Тоді у нас є вугілля і 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 Так СИМВОЛ, на відміну від С, де СИМВОЛ був один символ, 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 >> VARCHAR ніби як наше поняття рядка 154 00:07:37,727 --> 00:07:39,560 що ми знайомі з з С або з РНР. 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-- Якщо наша СИМВОЛ був 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 не хочу двох користувачів, мають однакове число ідентифікатора користувача. 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 у вас є Джон Сміт і Джон Сміт. 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 Але у нас є тільки одне ідентифікаційний номер користувача 10, один користувач ідентифікаційний номер 11, 12, 13. 199 00:09:40,766 --> 00:09:42,640 Ми не маємо двох користувачів з такою ж кількістю, 200 00:09:42,640 --> 00:09:46,010 і тому, можливо, ID користувача число буде хороший первинний ключ. 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 Але ви, можливо, В2, А С2, або А1, А2, А3, А4. 214 00:10:28,980 --> 00:10:32,840 Таким чином, ви, можливо, доведеться кілька Так само, наскільки 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 Це не зовсім так, як експансивний С і 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-- ідентифікаційний номер, ім'я користувача, 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 називається мам, які просто зберігає інформацію про імені користувача і матері. 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 збирається поставити в значеннях Ньюман, USMAIL, і Ньюман. 256 00:12:30,030 --> 00:12:32,730 Таким чином, в цьому випадку, я покласти в нижньому регістрі Ньюман 257 00:12:32,730 --> 00:12:38,710 в поле користувача, пароль USMAIL, і повна назва столиці Н 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 Я не кажу, що я хотів поклав ідентифікаційний номер там. 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 стовпець автоматичне прирощення так, щоб кожен раз я додати інформацію в таблиці, 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 стовпців, значення Крамер і Бабс Крамер. 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 Ми додали Крамер і Бабс Крамер таблиці мам. 299 00:14:47,290 --> 00:14:48,350 >> Так що це вставки. 300 00:14:48,350 --> 00:14:51,850 ВИБІР, що ми використовуємо, щоб витягти Інформація з таблиці. 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 Так, наприклад, я міг би хотіти вибрати Ідентифікаційний номер і 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 Я не звузити її, тому я отримання ідентифікаційного номеру для кожного рядка 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 де ідентифікатор користувача або idnum менше 12? 332 00:16:21,550 --> 00:16:24,910 Я збираюся отримати це інформацію назад, вірно? 333 00:16:24,910 --> 00:16:29,170 Буває, що idnum 10, менше ніж 12, ідентифікаційний номер 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 ОК, виберіть зірка спеціальний зразок джокера так званий 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 >> І тому ми повинні ввести Ідея об'єднання. 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 >> Єдина інформація, яка є спільним між ними Джеррі в обох таблицях 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 Ми відкинуті Крамер, тому що він не існує в таблиці користувачів, 428 00:21:06,919 --> 00:21:09,710 і ми відмовилися Ньюман, бо він не існує в таблиці мам. 429 00:21:09,710 --> 00:21:16,450 Так що це гіпотетичний злиття за допомогою операції з'єднання з 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 JOIN і свого роду складним. 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 Загальний формат оновити деякі стіл, встановити деякі колонки до деякого значення 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 і встановити пароль для балаканина Йадав, де ідентифікаційний номер 10. 444 00:22:04,400 --> 00:22:06,400 >> Таким чином, в цьому випадку, ми оновлення таблиці користувачів. 445 00:22:06,400 --> 00:22:08,275 Ідентифікаційний номер 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 DELETE FROM таблиця, в якій деякі предикат виконується. 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 запит, Ньюман пішов з-за столу. 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 і те, що називається PDO. 474 00:23:29,230 --> 00:23:31,063 Ми не будемо вдаватися в величезний кількість деталей там. 475 00:23:31,063 --> 00:23:32,957 У CS50 ми використовуємо PDO. 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 користувачі, де ідентифікаційний номер становить 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 спасибі за входу в систему, Джеррі Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Це було повне ім'я де idnum дорівнює 10. 498 00:24:46,570 --> 00:24:48,850 >> А так все, що я роблю є Я now-- я зберіг 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 прямо між тими кучерявого брекети, Джеррі Seinfeld. 504 00:25:08,654 --> 00:25:11,820 І я хотів, щоб роздрукувати повідомлення Спасибі за вхід в Джеррі Seinfeld. 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 супер глобальний ідентифікатор ключа. 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, або щось ідентифікатор значення $ _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 на чому заснована ідентифікаційного номера користувача насправді після того, як вони увійшли. 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 Я починаю новий пункт, що Каже мам Seinfeld телевізора. 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 І зробити запит, я збираюся бути за допомогою вибору матерів від мам. 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 що ми хотіли б бачити C, наприклад. 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 Тоді для кожного результатів У результаті Еогеасп синтаксис з 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