[ SELECT ... ] (любое корректное выражение SELECT)
или
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name LIKE old_table_name;
Оператор CREATE TABLE создает таблицу с заданным именем в текущей базе данных. Если нет активной текущей базы данных или указанная таблица уже существует, то возникает ошибка выполнения команды.
Каждая таблица tbl_name представлена определенными файлами в директории базы данных. В случае таблиц типа MyISAM это следующие файлы:
Файл
Назначение
tbl_name.frm
Файл определения таблицы
tbl_name.MYD
Файл данных
tbl_name.MYI
Файл индексов
Для хорошей переносимости SQL нужно избегать имен, начинающихся не с допустимой буквы. Длина идентификатора может быть до 64 символов.
Предложение состоит из имени таблицы, за которым идет любое количество определений полей. Синтаксис определения полей включает в себя имя поля, за ним его тип, за ним любой модификатор (например: name char(30) not null ).
TEMPORARY-- временная таблица автоматически удаляется по завершении соединения, а ее имя действительно только в течение данного соединения.
IF NOT EXISTS для проверки существования данной таблицы.
AUTO_INCREMENT Атрибут позволяет автоматически обновлять числовое поле. Это удобно для создания уникальных идентификаторов для записей в таблице. При вводе значения NULL или 0 существующее значение автоматически увеличивается на единицу. Текущее значение поля AUTO_INCREMENT может быть получено с помощью функции LAST_INSERT_ID().
DEFAULT valueАтрибут приписывает полю значение по умолчанию. Это значение будет присвоено полю в случае, если во вводимой в таблицу записи это поле пустое. Если значение по умолчанию не определено и нет ограничения NOT NULL , то будет записано значение NULL. В случае NOT NULL MySQL запишет значение на основе типа поля.
NOT NULL Этот атрибут гарантирует, что каждая запись в столбце будет иметь какое-либо, отличное от NULL, значение. Попытка вставить в такое поле значение NULL вызовет ошибку.
NULLАтрибут указывает на допустимость значения NULL. Это атрибут по умолчанию в случае, если никакой атрибут не указан. Поля, входящие в состав индекса, не могут иметь атрибут NULL. (Он будет проигнорирован, даже если он указан.)
PRIMARY KEYАтрибут автоматически делает поле первичным ключом таблицы. Таблица может иметь только один первичный ключ. Любое поле, являющееся первичным ключом, должно иметь атрибут NOT NULL.
FULLTEXTсоздание индекса, для полнотекстового поиска.
FOREIGN KEY таблицы InnoDB выполняют проверку ограничений внешнего ключа. Столбцы таблицы, на которую ссылаются, должны быть явно указаны. InnoDB поддерживает действия ON DELETE и ON UPDATE.
CHECK фактически ничего не делают. Они введены только из соображений совместимости, чтобы облегчить перенос кода с других SQL-серверов.
Если после команды CREATE указывается команда SELECT, то создаются новые поля для всех элементов в данной команде SELECT. Например:
CREATE TABLE foo (a tinyint not null) SELECT b+1 AS 'a' FROM bar;