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 и это стоит для Structured Query Language. 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