Команда SQL для создания и удаления таблиц, добавления данных (CREATE, INSERT, SHOW COLUMNS, TRUNCATE, DROP)

Данные в базе данных хранятся в таблицах. Чтобы записать данные в базу данных, необходимо сначала создать таблицу, добавить в неё столбцы. И только потом добавлять данные в эти столбцы.

Создание таблицы

Предположим, что существует база данных. И мы хотим записать в неё данные пользователей сайта. Данные будут достаточно примитивными:
  • Уникальный порядковый номер пользователя (идентификатор - id). Тип данных: целое число
  • Имя пользователя. Тип данных: строка
  • Дата добавления в базу. Тип данных: дата и время
Столбец ID встречается практически в каждой таблице в базе. Он имеет уникальный номер, поэтому часто используется для однозначного определения строчки в таблице. ID может быть у чего угодно: пользователя, новости, товара, публикации.
Попробуем создать таблицу с названием USERS и этими полями.
CREATE TABLE USERS (
   ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   NAME VARCHAR(200),
   DATE DATETIME DEFAULT CURRENT_TIMESTAMP
);
Разберём пример по строчкам. В первой строке можно увидеть команду с говорящим названием CREATE TABLE. Она делает запрос на создание таблицы. После неё стоит название таблицы USERS. В названии таблицы стоит ставить только латинские буквы (строчные и заглавные) и подчёркивания, но нельзя делать пробелы и иные символы.

После названия таблицы USERS открываются скобки и идут названия столбцов с типами данных в них и другими опциями, разделённые запятыми:
  • ID - поле типа INT (целое число - INTEGER). После типа данных идёт "NOT NULL" - означает, что этот столбец не может быть пустым при добавлении новой строки в таблицу, иначе появится ошибка. Затем идёт "PRIMARY KEY" - эта надпись означает, что этот столбец является первичным ключом, а значит его значения уникальны. Этот столбец имеет свойство AUTO_INCREMENT, которое означает, что во время добавления данных в таблицу значение в этом столбце будет автоматически устанавливаться на единицу больше, чем самое большое.
  • NAME - поле типа VARCHAR(200) - это обычный текст длиной максимум 200 символов. Можно задать любую длину в цифрах (до 255). Лишнее будет обрезано, если попытаться добавить слишком длинную строку. Если поставить тип поля VARCHAR с длиной более 255, то на старых версиях MySQL может появиться ошибка при создании таблицы, а новые версии будут просто воспринимать это поле как тип TEXT.
  • DATE - поле типа DATETIME. Содержит дату и время в формате базы, к примеру, "28.06.2019 19:36:31". Фраза "DEFAULT CURRENT_TIMESTAMP" означает, что при добавлении новой строки в таблицу столбец DATE примет значение текущей даты - не нужно передавать значение в запросе к базе. Параметр "DEFAULT" может быть выставлен у любого типа данных, к примеру, у INT можно написать "DEFAULT 5", тогда если добавлять строку в базу и не указать значение столбца, то ему будет присвоено значение "5".
В конце SQL запроса всегда ставится точка с запятой.

Итак, выполним SQL запрос из примера. Теперь необходимо убедиться действительно ли таблица создалась. Для этого сделаем следующий запрос к базе:
SHOW COLUMNS FROM `USERS`;
Эту команду можно перевести дословно с английского языка: "ПОКАЖИ СТОЛБЦЫ ИЗ". После этой команды стоит название таблицы, которую мы только что создавали. Если таблица создана успешно, то в результате выполнения запроса мы увидим список столбцов:
+-------+--------------+------+-----+-------------------+----------------+
| Field | Type         | Null | Key | Default           | Extra          |
+-------+--------------+------+-----+-------------------+----------------+
| ID    | int(11)      | NO   | PRI | NULL              | auto_increment |
| NAME  | varchar(200) | YES  |     | NULL              |                |
| DATE  | datetime     | YES  |     | CURRENT_TIMESTAMP |                |
+-------+--------------+------+-----+-------------------+----------------+
По этому результату мы видим, что все столбцы создались успешно.

Добавление данных в таблицу

После успешного создания таблицы можно попробовать добавить первые данные. Не будем мелочиться и добавим сразу две строки данных:
INSERT INTO `USERS` SET NAME='Мышь';
INSERT INTO `USERS` SET NAME='Кот', DATE='2019-06-20 20:07:09';
Команда "INSERT INTO" (можно перевести с английского как "ВСТАВИТЬ В") вставляет данные в таблицу, название которой идёт после неё. В нашем случае это "USERS". Затем идёт слово "SET" (переводится как "ЗАДАТЬ"), после которого через запятую перечисляются названия столбцов в таблице и их значения, который надо вставить.

В нашем примере первый столбец ID принимает максимальное уникальное значение, поэтому нет большого смысла передавать его при добавлении данных. Для разнообразия во втором добавлении передано не только значение NAME, но и значение DATE, хотя это необязательно, потому что при создании столбца DATE было сказано, что он принимает значение равное текущей дате и времени, если не передать ему что-то другое.

Базы данных могут быть настроены по-разному. Формат даты может отличаться, из-за чего значение DATETIME может несохраниться, если не угадать с форматом. Поэтому вместо строки, содержащей дату в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС" можно написать "NOW()" (переводится "сейчас"), тогда в таблицу будет вставлено значение текущей даты в нужном формате.
В статьях этого раздела можно найти более подробное объяснение использованию функции времени, такик как "NOW()". К ним вы можете добавлять и отнимать переоды времени. А так же вычислять, к примеру, вычислить дату следующего понедельника непосредственно при добавлении новой строки в базу.
Существует несколько способов записи команды INSERT. Приведём ещё один пример без "SET", который подходит для добавления небольшого количества данных, когда столбцов мало:
INSERT INTO USERS(NAME) VALUES('Мышь');
INSERT INTO USERS(NAME, DATE) VALUES('Кот', '2019-06-20 20:07:09');
После названия таблицы в скобках идёт название полей, в которых будут вставлены данные. Затем идёт "VALUES" и в скобках через запятую значения, которые будут вставлены. Обратите внимание, что важен порядок названий столбцов и значений, которые находятся в круглых скобках.

Давайте проверим, что было записано в нашу таблицу. Для этого выполним запрос:
SELECT * FROM `USERS`;
Команда "SELECT" возвращает строки из таблицы. После команды стоит звёздочка *, она означает, что необходимо выбрать все столбы таблицы. В нашем случае звёздочку можно заменить на перечисление трёх столбцов через запятую: "ID, NAME, DATE". После звёздочки стоит слово "FROM", которое можно перевести как "из". И в конце стоит название таблицы в базе данных "USERS", из которых будут выводиться данные.

В результате выполнения этого запроса мы увидим такой результат:
+----+----------+---------------------+
| ID | NAME     | DATE                |
+----+----------+---------------------+
|  1 | Мышь     | 2019-06-28 20:14:53 |
|  2 | Кот      | 2019-06-20 20:07:09 |
+----+----------+---------------------+
Всё добавилось как нужно.

Очистка и удаление таблицы

Попробуем очистить таблицу полностью. Сотрём все строки в ней. Для этого используем следующую SQL запрос:
TRUNCATE `USERS`;
Этот короткий запрос содержит команду "TRUNCATE" (переводится с английского как "УСЕЧЬ") и название нашей таблицы "USERS". При выполнении такой команды будут удалены все строки в таблице. Можем убедиться в правильности удаления данных, вызвав команду:
SELECT * FROM `USERS`;
Если в таблице не оказалось ни одной строчки, то удаление прошло удачно. Теперь попробуем удалить саму таблицу. Удаление таблицы делается следующим запросом:
DROP TABLE `USERS`;
Команда "DROP TABLE" безвозвратно удаляет таблицу из базы. После этой команды стоит название нашей таблицы "USERS".
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: