CREATE TABLE — используется для создания новой таблицы в базе данных
USE имя_базы_данных; -- выбор бд
CREATE TABLE [IF NOT EXIST] имя_таблицы (
столбец_1 тип_данных,
[столбец_2 тип_данных,]
...
[столбец_n тип_данных,]
);Дополнительные параметры определения столбцов
- PRIMARY KEY Указывает колонку или множество колонок как первичный ключ.
- AUTO_INCREMENT Указывает, что значение данной колонки будет автоматически увеличиваться при добавлении новых записей в таблицу. Каждая таблица имеет максимум одну AUTO_INCREMENT колонку. Стоит отметить, что данный параметр можно применять только к целочисленным типам и к типам с плавающей запятой.
- UNIQUE Указывает, что значения в данной колонке для всех записей должны быть отличными друг от друга.
- NOT NULL Указывает, что значения в данной колонке должны быть отличными от NULL.
- DEFAULT Указывает значение по умолчанию. Данный параметр не применяется к типам BLOB, TEXT, GEOMETRY и JSON.
Для того, чтобы посмотреть описание созданной таблицы можно воспользоваться оператором DESCRIBE.
DESCRIBE Users;Первичный ключ.
Если не определен первичный ключ с помощью параметров столбца, то это можно сделать добавив запись после перечисления столбцов:
PRIMARY KEY (<столбец_1>, <столбец_n>) Внешние ключи.
Предположим, что мы хотим хранить данные о компании, в которой работают наши пользователи. Давайте создадим небольшую таблицу Companies, в которой мы будем хранить уникальный идентификатор и название компании:
Для того, чтобы при добавлении новых записей в таблицу Users гарантировать, что в колонке company находится идентификатор, существующий в таблице Companies, используется внешний ключ. Он имеет следующий синтаксис:
FOREIGN KEY (<столбец_1>, <столбец_n>)
REFERENCES <внешняя_таблица> (<столбец_во_внешней_таблице_1>, <столбец_во_внешней_таблице_n>)
[ON DELETE действие]
[ON UPDATE действие]ON DELETE RESTRICT означает, что если попробовать удалить компанию, у которой в таблице Users есть данные, база данных не даст этого сделать:
Если бы было указано ON DELETE CASCADE, то при удалении компании были бы удалены все пользователи, ссылающиеся на эту компанию.
Есть ещё одна опция — ON DELETE SET NULL. При её использовании база данных запишет NULL в качестве значения поля company для всех пользователей, работавших в удалённой компании.
ON UPDATE CASCADE означает, что если компания изменит свой идентификатор, то все пользователи (Users) получат новый идентификатор в поле company.
Создать таблицу, используя другую таблицу
CREATE TABLE TestTable AS
SELECT customername, contactname
FROM customers;ALTER TABLE — используется для добавления, удаления или изменения столбцов в существующей таблице
ALTER TABLE Customers ADD Email varchar(255);
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
ALTER TABLE table_name MODIFY COLUMN column_name datatype;DROP [IF EXIST] TABLE — используется для удаления существующей таблицы в базе данных
DROP TABLE table_name;TRUNCATE TABLE — используется для удаления данных внутри таблицы, но не самой таблицы
TRUNCATE TABLE table_name;