MariaDB оператор CREATE TABLE

В этом учебном пособии вы узнаете, как использовать MariaDB оператор CREATE TABLE с синтаксисом и примерами.

Описание

MariaDB оператор CREATE TABLE позволяет создавать и определять таблицу.

Синтаксис

В своей простейшей форме Синтаксис для оператора CREATE TABLE в MariaDB:

CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
..
);

Тем не менее, полный Синтаксис для заявления MariaDB CREATE TABLE:

CREATE [ OR REPLACE ] [ TEMPORARY ] TABLE [IF NOT EXISTS] table_name
(
column1 datatype [ NULL | NOT NULL]
[ DEFAULT default_value ]
[ AUTO_INCREMENT ]
[ UNIQUE KEY | PRIMARY KEY ]
[ COMMENT 'string' ],

column2 datatype [ NULL | NOT NULL]
[ DEFAULT default_value ]
[ AUTO_INCREMENT ]
[ UNIQUE KEY | PRIMARY KEY ]
[ COMMENT 'string' ],
..

| [CONSTRAINT [constraint_name]] PRIMARY KEY [ USING BTREE | HASH ] (index_col_name, ..)

| [INDEX | KEY] index_name [ USING BTREE | HASH ] (index_col_name, ..)

| [CONSTRAINT [constraint_name]] UNIQUE [ INDEX | KEY ]
[ index_name ] [ USING BTREE | HASH ] (index_col_name, ..)

| {FULLTEXT | SPATIAL} [ INDEX | KEY] index_name (index_col_name, ..)

| [CONSTRAINT [constraint_name]]
FOREIGN KEY index_name (index_col_name, ..)
REFERENCES another_table_name (index_col_name, ..)
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE { RESTRICT | CASCADE | SET NULL | NO ACTION } ]
[ ON UPДАТА { RESTRICT | CASCADE | SET NULL | NO ACTION } ]

| CHECK (expression)

{ENGINE | TYPE} = engine_name
| AUTO_INCREMENT = value
| AVG_ROW_LENGTH = value
| [DEFAULT] CHARACTER SET = charset_name
| CHECKSUM = {0 | 1}
| [DEFAULT] COLLATE = collation_name
| COMMENT = 'string'
| DATA DIRECTORY = 'absolute path'
| DELAY_KEY_WRITE = { 0 | 1 }
| INDEX DIRECTORY = 'absolute path'
| INSERT_METHOD = { NO | FIRST | LAST }
| MAX_ROWS = value
| MIN_ROWS = value
| PACK_KEYS = {0 | 1 | DEFAULT}
| PASSWORD = 'string'
| RAID_TYPE = { 1 | STRIPED | RAIDO }
RAID_CHUNKS = value
RAID_CHUNKSIZE = value
| ROW_FORMAT = {DEFAULT | DYNAMIC | FIXED | COMPRESSED}
| UNION = (table1, .. )
);

Параметры или аргументы

OR REPLACE
Необязательный. Если таблица уже существует, определение таблицы будет заменено новым оператором CREATE TABLE.
TEMPORARY
Необязательный. Указывает, что таблица является временной таблицей.
IF NOT EXISTS
Необязательный. Если указано, инструкция CREATE TABLE не вызовет ошибку, если таблица уже существует.
table_name
Имя таблицы, которую вы хотите создать.
column1, column2
Столбцы, которые вы хотите создать в таблице.
datatype
Тип данных для столбца и может быть одним из следующих:

Значение
CHAR [(длина)] [CHARACTER SET charset_name] [COLLATE collation_name]
VARCHAR [(длина)] [CHARACTER SET charset_name] [COLLATE collation_name]
BINARY [(длина)]
VARBINARY (длина)
DATE
TIME
TIMESTAMP
DATETIME
YEAR
TINYINT [(длина)] [UNSIGNED] [ZEROFILL]
SMALLINT [(длина)] [UNSIGNED] [ZEROFILL]
MEDIUMINT [(длина)] [UNSIGNED] [ZEROFILL]
INT [(длина)] [UNSIGNED] [ZEROFILL]
INTEGER [(длина)] [UNSIGNED] [ZEROFILL]
BIGINT [(длина)] [UNSIGNED] [ZEROFILL]
REAL [(длина,десятичные)] [UNSIGNED] [ZEROFILL]
DOUBLE [(длина,десятичные)] [UNSIGNED] [ZEROFILL]
FLOAT [(длина, десятичные)] [UNSIGNED] [ZEROFILL]
DECIMAL [(длина, [десятичные])] [UNSIGNED] [ZEROFILL]
NUMERIC [(длина, [десятичные])] [UNSIGNED] [ZEROFILL]
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
TINYTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
TEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
MEDIUMTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
LONGTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
ENUM (value1, value2, ..) [CHARACTER SET charset_name] [COLLATE collation_name]

Примечание

  • В таблице может быть только один столбец, который установлен как AUTO_INCREMENT, и этот столбец должен быть первичным ключом.

Пример

Давайте посмотрим на MariaDB CREATE TABLE Пример.

Этот пример MariaDB CREATE TABLE создает таблицу с именем sites, которая имеет 4 столбца и один первичный ключ:

  • Первый столбец называется website_id, который создается как тип данных INT (максимум 11 цифр в длину) и не может содержать значения NULL. Он устанавливается как поле AUTO_INCREMENT, что означает, что оно является полем автонумерации (начиная с 1 и с увеличением на 1, если не указано иное).
  • Второй столбец называется website_name, который представляет собой тип данных VARCHAR (максимум 25 символов в длину) и не может содержать значения NULL.
  • Третий столбец называется server_name, который представляет собой тип данных VARCHAR (максимум 20 символов в длину) и может содержать значения NULL.
  • Четвертый столбец называется creation_date, который является типом данных DATE и может содержать значения NULL.
  • Первичный ключ называется website_pk и имеет значение столбца website_id.

Далее, давайте создадим таблицу в MariaDB, которая имеет DEFAULT VALUE (значение по умолчанию).

Этот пример создает таблицу с именем pages, которая имеет 3 столбца и один первичный ключ:

  • Первый столбец называется page_id, который создается как тип данных INT (максимум 11 цифр в длину) и не может содержать значения NULL. Он устанавливается как поле AUTO_INCREMENT.
  • Второй столбец называется website_id, который представляет собой тип данных INT (максимум 11 символов в длину) и не может содержать значения NULL.
  • Третий столбец называется host_name, который является типом данных VARCHAR (максимум 45 символов в длину) и не может содержать значения NULL. Если значение для этого столбца не указано, значением по умолчанию будет 'TBD'.
  • Первичный ключ называется pages_pk и имеет значение для столбца page_id.