1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [Кристофер Варфоломей] [HARVARD UNIVERSITY] 3 00:00:04,000 --> 00:00:06,000 [Это CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Таким образом, программисты используют базы данных как инструмент для хранения и упорядочивания 5 00:00:11,620 --> 00:00:13,620 наши постоянные данные в таблицах. 6 00:00:13,620 --> 00:00:18,960 Это означает, что ваши данные хранятся на энергонезависимую медиан, таких как жесткий диск, 7 00:00:18,960 --> 00:00:22,940 и даже когда компьютер выключен, данные остаются нетронутыми. 8 00:00:22,940 --> 00:00:29,530 И, как программисты, наши программы используют базы данных для сценариев, таких как хранение 9 00:00:29,530 --> 00:00:32,890 информацию о пользователях из веб-форм, глядя инвентаря, 10 00:00:32,890 --> 00:00:36,210 или обновления информации о том, какие сайты просмотров. 11 00:00:37,150 --> 00:00:40,070 Но как же мы на самом деле взаимодействуют с нашей базы данных, 12 00:00:40,070 --> 00:00:43,150 или то, что мы используем для чтения, хранения, удаления, 13 00:00:43,150 --> 00:00:46,070 и обновлять наши данные в этих таблицах базы данных? 14 00:00:47,280 --> 00:00:49,700 Ну, ответ в том, что мы используем специальный тип базы данных языку 15 00:00:49,700 --> 00:00:53,400 , который взаимодействует непосредственно с нашими таблицами базы данных. 16 00:00:53,400 --> 00:00:56,740 Это имя является Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Язык структурированных запросов] 18 00:00:58,740 --> 00:01:00,740 или то, что я называю SQL. 19 00:01:00,740 --> 00:01:05,100 >> Теперь [Se-Quel], или SQL, не является языком программирования, 20 00:01:05,100 --> 00:01:08,580 но вместо этого, это язык, который предоставляет стандартный набор команд 21 00:01:08,580 --> 00:01:13,520 получать и обрабатывать данные из различных систем управления базами данных. 22 00:01:13,520 --> 00:01:17,630 Для CS50, мы пойдем на четыре основные команды: 23 00:01:17,630 --> 00:01:21,210 выбирать, вставлять, обновлять и удалять. 24 00:01:21,210 --> 00:01:26,230 Кроме того, мы будем использовать интерфейс базы данных веб называемый PHPMyAdmin, 25 00:01:26,230 --> 00:01:29,890 которые установлены на устройстве, чтобы написать нашу SQL заявления. 26 00:01:30,830 --> 00:01:33,050 Таким образом, чтобы помочь вам запомнить эти команды, 27 00:01:33,050 --> 00:01:37,080 Я привел некоторые кексы в шкаф, чтобы помочь с нашими сценариями. 28 00:01:39,650 --> 00:01:42,210 Скажем, у вас база данных кекс, в 29 00:01:42,210 --> 00:01:44,490 где вы храните всю информацию о ваших кексов. 30 00:01:44,490 --> 00:01:48,220 Теперь, базы данных может содержать множество таблиц 31 00:01:48,220 --> 00:01:50,950 и сами таблицы могут содержать много столбцов. 32 00:01:50,950 --> 00:01:57,020 Внутри базы данных наших кекс, у нас есть таблица под названием cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Эта таблица будет использоваться для хранения всей информации о кексов 34 00:02:00,500 --> 00:02:02,990 что, ну, в вашем шкафу. 35 00:02:02,990 --> 00:02:07,770 Столбцы, которые находятся внутри вашей таблице, представляют собой атрибуты кекс. 36 00:02:07,770 --> 00:02:14,560 Например, колонны cupcake_cupboard являются 37 00:02:14,560 --> 00:02:15,920 Cake ID, CakeType, CakeColor, и CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Это логическое типизированный столбец используется, чтобы определить, торт хорошо или не хорошо. 39 00:02:23,040 --> 00:02:26,560 Мы собираемся начать с написания оператора выбора. 40 00:02:26,560 --> 00:02:32,160 Выберите отчетность используется для извлечения данных из определенной таблицы базы данных. 41 00:02:32,160 --> 00:02:34,890 В этом случае, мы хотим знать все 42 00:02:34,890 --> 00:02:39,080 обо всех кексы, которые существуют в нашем шкафу. 43 00:02:39,080 --> 00:02:48,670 Синтаксис, чтобы сделать это "Выбрать" Space Star, или *, пространство от пространства нашего стола, 44 00:02:48,670 --> 00:02:52,050 который cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Давайте пойдем дальше и выполнить это. 46 00:02:56,670 --> 00:03:00,140 >> Как мы видим, все эти кексы в нашем шкафу. 47 00:03:00,140 --> 00:03:05,110 Важно отметить, что *, или звездочку, это символ подстановки 48 00:03:05,110 --> 00:03:08,830 , что означает сбор всех столбцов некоторой таблицы. 49 00:03:08,830 --> 00:03:13,650 Как правило, мы можем получить доступ к определенному или нескольких столбцах 50 00:03:13,650 --> 00:03:16,950 заменить * с фактическим именем столбца. 51 00:03:16,950 --> 00:03:21,220 Если мы хотим несколько столбцов, но не все мы можем достичь этого 52 00:03:21,220 --> 00:03:25,620 путем написания имен столбцов разграничения каждом столбце запятой. 53 00:03:25,620 --> 00:03:28,620 Например, давайте извлекать только CakeId и CakeType в cupcake_cupboard таблице. 54 00:03:28,620 --> 00:03:38,370 Синтаксис, чтобы сделать это: SELECT пространства CakeID запятой 55 00:03:38,370 --> 00:03:44,370 CakeType пространстве от нашего стола, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Давайте пойдем дальше и выполнить это. 57 00:03:49,340 --> 00:03:52,670 И вот, теперь есть только два столбца мы определили 58 00:03:52,670 --> 00:03:54,670 Для каждого кекса в нашем шкафу. 59 00:03:54,670 --> 00:03:57,710 Мы также можем совершенствовать наши результаты запроса, указав 60 00:03:57,710 --> 00:04:00,910 "Где" пункта сразу после имени таблицы. 61 00:04:02,000 --> 00:04:05,410 Например, как представляется, кекс в нашем шкафу 62 00:04:05,410 --> 00:04:08,660 что это, ну, не так уж и хороший взгляд. 63 00:04:08,660 --> 00:04:13,950 Давайте выяснить все кексы в нашем шкафу, которые, ну, не так уж и приятные глазу 64 00:04:13,950 --> 00:04:16,110 с помощью "Где" оговорки. 65 00:04:16,110 --> 00:04:26,390 Синтаксис, чтобы сделать это: SELECT * пространство пространство от пространства cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 пространства, где пространство нашем условном колонка, в этом случае CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 и логическое значение False. 68 00:04:36,900 --> 00:04:42,750 Важно отметить, что если вы используете строки, вы должны заключить его в одинарные кавычки. 69 00:04:42,750 --> 00:04:49,620 Это верно для всех строк в SQL, или, в терминах SQL базы данных, символы вариант 70 00:04:49,620 --> 00:04:51,620 известный как Varchar тип данных. 71 00:04:51,620 --> 00:04:57,660 В этом случае мы используем Правда или Ложь, которая является логическое значение, а не строка. 72 00:04:59,120 --> 00:05:00,660 Давайте идти вперед и выполнить эту команду. 73 00:05:00,660 --> 00:05:05,340 >> И вот, это тот случай, что у нас 1 шоколадом 74 00:05:05,340 --> 00:05:07,920 Не так хорошо кекс в нашем шкафу. 75 00:05:09,620 --> 00:05:11,460 Далее, мы собираемся написать заявление вставки. 76 00:05:11,460 --> 00:05:15,560 Вставить отчетность используется, чтобы вставить или добавить 77 00:05:15,560 --> 00:05:17,770 дополнительные строки данных в таблице базы данных. 78 00:05:17,770 --> 00:05:23,160 Возвращение к нашему сценарию, давайте предположим, что мы только что сделали новый кекс. 79 00:05:25,910 --> 00:05:30,080 Так как мы очень организованно кекс едоков, мы будем иметь, чтобы вставить новую кекс 80 00:05:30,080 --> 00:05:32,330 В нашем cupcake_cupboard таблице. 81 00:05:32,330 --> 00:05:40,690 Синтаксис для этого состоит в следующем: Вставьте в космос нашего стола, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, пробел (, 83 00:05:46,830 --> 00:05:51,060 и здесь мы указываем имена столбцов, разделенных запятыми, 84 00:05:51,060 --> 00:05:59,790 CakeType разделенные запятыми CakeColor CakeIsNice) пространства. 85 00:05:59,790 --> 00:06:06,540 После этого, мы пишем пространстве слово VALUES (и здесь 86 00:06:06,540 --> 00:06:12,170 Мы введите значение для каждого столбца, соответственно, также разделенных запятыми. 87 00:06:12,170 --> 00:06:17,830 Одинарные кавычки, потому что они все Varchar значения мы окружим их в одинарные кавычки, 88 00:06:17,830 --> 00:06:26,780 LIGHT "запятая" арахисовое масло Брауна запятой True. 89 00:06:26,780 --> 00:06:30,480 Теперь важно, чтобы дать каждой строке уникальный номер, чтобы идентифицировать себя. 90 00:06:30,480 --> 00:06:33,660 Автоинкрементом колонка представляет это как 91 00:06:33,660 --> 00:06:37,410  "Нет двух одинаковых идентификаторов может существовать в этой таблице." 92 00:06:37,410 --> 00:06:39,480 Давайте пойдем дальше и выполнять. 93 00:06:39,480 --> 00:06:45,380 Там мы идем, все организовано. 94 00:06:49,720 --> 00:06:52,100 >> Следующий оператор SQL, что мы будем писать это обновление заявлении. 95 00:06:52,100 --> 00:06:55,650 Обновление заявление может быть использовано для изменения данных в столбце 96 00:06:55,650 --> 00:06:58,440 для любой существующей строки в таблице базы данных. 97 00:06:59,670 --> 00:07:03,420 Ранее в нашем сценарии, с помощью оператора выбора, мы определили кекс 98 00:07:03,420 --> 00:07:08,300 в таблице наши cupcake_cupboard, чьи CakeIsNice значение было ложным. 99 00:07:08,300 --> 00:07:12,050 Давайте предположим, что в то время как наши арахисовое масло кекс был в духовке, 100 00:07:12,050 --> 00:07:15,790 мы сделали наш не так хорош кекс очень хорошо. 101 00:07:18,020 --> 00:07:22,240 Будучи таким исключительно организованный, мы хотим, чтобы наш кекс с учетом этого значения 102 00:07:22,240 --> 00:07:24,240 В нашем cupcake_cupboard таблице. 103 00:07:24,240 --> 00:07:28,710 Поэтому, давайте обновим наш шоколад кекс в базу данных, чтобы отразить это. 104 00:07:28,710 --> 00:07:39,720 Синтаксис: UPDATE пространстве нашего стола, cupcake_cupboard, космические пространства SET 105 00:07:39,720 --> 00:07:44,240 столбец, который мы хотим изменить, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Тогда здесь мы размещаем наши новые значения Правда пространстве. 107 00:07:49,210 --> 00:07:54,290 Теперь, поскольку мы не хотим, чтобы обновить все строки с этим значением, 108 00:07:54,290 --> 00:07:57,400 Мы хотим, чтобы обеспечить "Где" предложение, которое будет определить нами 109 00:07:57,400 --> 00:07:59,830 к точной строки, которые мы хотим изменить. 110 00:07:59,830 --> 00:08:03,690 В этом случае, мы знаем, что есть только один кекс 111 00:08:03,690 --> 00:08:06,670 , который имеет CakeIsNice значение False. 112 00:08:06,670 --> 00:08:11,030 Кроме того, мы также гарантируем, что мы обновляем нужные строки 113 00:08:11,030 --> 00:08:13,030 с помощью «А» пункта. 114 00:08:14,340 --> 00:08:17,270 Мы используем "и" положение, чтобы усовершенствовать наш запрос дальше. 115 00:08:17,270 --> 00:08:20,380 В этом случае, потому что мы знаем, что кекс шоколад, 116 00:08:20,380 --> 00:08:23,160 Мы будем использовать этот CakeType колонки. 117 00:08:23,160 --> 00:08:31,500 Где пространство нашем условном пространстве колонки CakeIsNice пространство = False, 118 00:08:31,500 --> 00:08:38,330 и пространство CakeType = 'CHOCOLATE ». 119 00:08:38,330 --> 00:08:41,880 Таким образом, положить все это вместе, это обновление говорится в заявлении 120 00:08:41,880 --> 00:08:44,670 найти все кексы в нашей кекс шкаф, 121 00:08:44,670 --> 00:08:50,520 и если есть кекс, столбец CakeIsNice содержит значение ЛОЖЬ 122 00:08:50,520 --> 00:08:54,130 и CakeType содержит значение ШОКОЛАД, 123 00:08:54,130 --> 00:08:58,240 Мы хотим, чтобы обновить конкретные CakeIsNice строк значение True. 124 00:08:58,240 --> 00:09:01,140 Итак, давайте идти вперед и выполнить инструкцию. 125 00:09:03,860 --> 00:09:05,860 И теперь, мы организовали. 126 00:09:06,650 --> 00:09:09,220 >> Все эти разговоры о кексы сделал меня немного голодным. 127 00:09:09,220 --> 00:09:11,360 Я думаю, что должно помочь себе к одному. 128 00:09:11,360 --> 00:09:17,670 Но если бы я на самом деле есть этот кекс, я должен по крайней мере также удалить свое существование 129 00:09:17,670 --> 00:09:19,670  cupcake_cupboard нашего стола. 130 00:09:20,650 --> 00:09:22,590 Для этого мы будем использовать кнопку "Удалить" заявление. 131 00:09:22,590 --> 00:09:27,400 "Delete" заявление может быть использовано, чтобы удалить все или некоторые строки из таблицы. 132 00:09:27,400 --> 00:09:29,920 Если вы хотите удалить некоторые определенные строки из таблицы, 133 00:09:29,920 --> 00:09:34,360 Затем вы должны предоставить "Где" пункт, таким образом указав колонки 134 00:09:34,360 --> 00:09:37,660 которые должны быть уникальными в строку, которую вы хотите удалить. 135 00:09:37,660 --> 00:09:47,370 Это синтаксис: DELETE пространства от космического наш стол, cupcake_cupboard, пространство. 136 00:09:47,370 --> 00:09:51,760 Сейчас, в этот момент, когда вы находитесь так далеко в своем заявлении удаления 137 00:09:51,760 --> 00:09:54,240 Вы хотите быть очень осторожным. 138 00:09:54,240 --> 00:09:59,970 Например, если я хочу выполнить этот запрос как есть, без предоставления некоторых "Где" пункта 139 00:09:59,970 --> 00:10:04,500 Я бы потерять все данные в этой таблице cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 а потому, что я уже знаю, что мой торт идентификаторы уникальны, я буду использовать 141 00:10:09,590 --> 00:10:12,410 Красная ID торт Velvet для моего "Где" оговорки. 142 00:10:14,550 --> 00:10:20,670 Где пространство нашей колонне, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Потому что это целое значение нет необходимости, чтобы окружить ее в одинарные кавычки. 144 00:10:25,010 --> 00:10:27,020 Итак, давайте выполнить инструкцию. 145 00:10:33,560 --> 00:10:35,990 Ну, теперь, когда мы уничтожили существования этого кекса 146 00:10:35,990 --> 00:10:40,360 cupcake_cupboard нашего стола, у нас есть только одно левое: 147 00:10:41,680 --> 00:10:43,680 Сделать это исчезает. 148 00:10:43,680 --> 00:10:46,990 Я Кристофера Варфоломея. Это CS50.