Создание таблицы
Предположим, что существует база данных. И мы хотим записать в неё данные пользователей сайта. Данные будут достаточно примитивными:- Уникальный порядковый номер пользователя (идентификатор - id). Тип данных: целое число
- Имя пользователя. Тип данных: строка
- Дата добавления в базу. Тип данных: дата и время
Столбец ID встречается практически в каждой таблице в базе. Он имеет уникальный номер, поэтому часто используется для однозначного определения строчки в таблице. ID может быть у чего угодно:  пользователя, новости, товара, публикации.
Попробуем создать таблицу с названием USERS и этими полями.
CREATE TABLE USERS (
   ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   NAME VARCHAR(200),
   DATE DATETIME DEFAULT CURRENT_TIMESTAMP
);После названия таблицы 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 запрос из примера. Теперь необходимо убедиться действительно ли таблица создалась. Для этого сделаем следующий запрос к базе:
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';В нашем примере первый столбец 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');Давайте проверим, что было записано в нашу таблицу. Для этого выполним запрос:
SELECT * FROM `USERS`;В результате выполнения этого запроса мы увидим такой результат:
+----+----------+---------------------+ | ID | NAME | DATE | +----+----------+---------------------+ | 1 | Мышь | 2019-06-28 20:14:53 | | 2 | Кот | 2019-06-20 20:07:09 | +----+----------+---------------------+Всё добавилось как нужно.
Очистка и удаление таблицы
Попробуем очистить таблицу полностью. Сотрём все строки в ней. Для этого используем следующую SQL запрос:TRUNCATE `USERS`;SELECT * FROM `USERS`;DROP TABLE `USERS`; 
   		