Команда 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, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: