MySQL CREATE TABLE语句用于创建和定义表。
在最简单的形式中,MySQL中CREATE TABLE语句的语法为:
CREATE
TABLE
table_name
(
column1 datatype [
NULL
|
NOT
],
column2 datatype [
...
);
但是,MySQL CREATE TABLE语句的完整语法为:
[
TEMPORARY
]
[IF
EXISTS] table_name
DEFAULT
default_value ]
[ AUTO_INCREMENT ]
UNIQUE
KEY
PRIMARY
[ COMMENT
'string'
| [
CONSTRAINT
[constraint_name]]
[ USING BTREE | HASH ] (index_col_name, ...)
INDEX
] index_name [ USING BTREE | HASH ] (index_col_name, ...)
[ index_name ] [ USING BTREE | HASH ] (index_col_name, ...)
| {FULLTEXT | SPATIAL} [
] index_name (index_col_name, ...)
FOREIGN
index_name (index_col_name, ...)
REFERENCES
another_table_name (index_col_name, ...)
[ MATCH
FULL
| MATCH
PARTIAL
| MATCH SIMPLE ]
ON
DELETE
{
RESTRICT
CASCADE
SET
NO
ACTION
} ]
UPDATE
CHECK
(expression)
{ENGINE | TYPE} = engine_name
| AUTO_INCREMENT = value
| AVG_ROW_LENGTH = value
CHARACTER
= charset_name
| CHECKSUM = {0 | 1}
COLLATE
= collation_name
| COMMENT =
| DATA DIRECTORY =
'absolute path'
| DELAY_KEY_WRITE = { 0 | 1 }
DIRECTORY =
| INSERT_METHOD = {
FIRST
LAST
}
| MAX_ROWS = value
| MIN_ROWS = value
| PACK_KEYS = {0 | 1 |
PASSWORD
=
| RAID_TYPE = { 1 | STRIPED | RAIDO }
RAID_CHUNKS = value
RAID_CHUNKSIZE = value
| ROW_FORMAT = {
DYNAMIC
| FIXED | COMPRESSED}
UNION
= (table1, ... )
column_name [ (length) ] [ ASC | DESC ]
注意在表中只能有一个字段被设置为AUTO_INCREMENT,并且该列必须是主键。
contacts
( contact_id
INT
(11)
AUTO_INCREMENT,
last_name
VARCHAR
(30)
,
first_name
(25),
birthday
DATE
contacts_pk
(contact_id)
这个MySQL CREATE TABLE示例创建了一个名为contacts的表,该表有4个字段和一个主键:
suppliers
( supplier_id
supplier_name
(50)
account_rep
'YKBJ'
suppliers_pk
(supplier_id)
这个示例创建了一个具有DEFAULT值的表,该表格有3个字段和一个主键:
原文链接:https://codingdict.com/