В этом учебном пособии вы узнаете, как использовать MariaDB оператор CREATE TABLE с синтаксисом и примерами.
Описание
MariaDB оператор CREATE TABLE позволяет создавать и определять таблицу.
Синтаксис
В своей простейшей форме Синтаксис для оператора CREATE TABLE в MariaDB:
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
..
);
Тем не менее, полный Синтаксис для заявления MariaDB CREATE TABLE:
(
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 Пример.
1234567CREATE TABLE websites( website_id INT(11) NOT NULL AUTO_INCREMENT,website_name VARCHAR(25) NOT NULL,server_name VARCHAR(20),creation_date DATE,CONSTRAINT websites_pk PRIMARY KEY (website_id));Этот пример 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 (значение по умолчанию).
123456CREATE TABLE pages( page_id INT(11) NOT NULL AUTO_INCREMENT,website_id INT(11) NOT NULL,host_name VARCHAR(45) NOT NULL DEFAULT 'TBD',CONSTRAINT pages_pk PRIMARY KEY (page_id));Этот пример создает таблицу с именем pages, которая имеет 3 столбца и один первичный ключ:
- Первый столбец называется page_id, который создается как тип данных INT (максимум 11 цифр в длину) и не может содержать значения NULL. Он устанавливается как поле AUTO_INCREMENT.
- Второй столбец называется website_id, который представляет собой тип данных INT (максимум 11 символов в длину) и не может содержать значения NULL.
- Третий столбец называется host_name, который является типом данных VARCHAR (максимум 45 символов в длину) и не может содержать значения NULL. Если значение для этого столбца не указано, значением по умолчанию будет 'TBD'.
- Первичный ключ называется pages_pk и имеет значение для столбца page_id.