CREATE 命令

CREATE 建立数据库

对 MySql 来说,建立数据库相当于建立一个文件夹。

CREATE DATABASE 数据库名

CREATE 建立表

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名 [(create_definition,...)] [table_options] [select_statement]

or

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名 LIKE 已经存在的表名;

create_definition 列定义:

字段名 type [NOT NULL | NULL] [DEFAULT 默认值] [AUTO_INCREMENT]

   [PRIMARY KEY] [reference_definition]

or PRIMARY KEY (index_col_name,...)

or KEY [index_name] (index_col_name,...)

or INDEX [index_name] (index_col_name,...)

or UNIQUE [INDEX] [index_name] (index_col_name,...)

or FULLTEXT [INDEX] [index_name] (index_col_name,...)

or [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition]

or CHECK (expr)

type 类型定义:

   TINYINT[(length)] [UNSIGNED] [ZEROFILL]

or SMALLINT[(length)] [UNSIGNED] [ZEROFILL]

or MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]

or INT[(length)] [UNSIGNED] [ZEROFILL]

or INTEGER[(length)] [UNSIGNED] [ZEROFILL]

or BIGINT[(length)] [UNSIGNED] [ZEROFILL]

or REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]

or DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]

or FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]

or DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]

or NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL]

or CHAR(length) [BINARY]

or VARCHAR(length) [BINARY]

or DATE

or TIME

or TIMESTAMP

or DATETIME

or TINYBLOB

or BLOB

or MEDIUMBLOB

or LONGBLOB

or TINYTEXT

or TEXT

or MEDIUMTEXT

or LONGTEXT

or ENUM(value1,value2,value3,...)

or SET(value1,value2,value3,...)

index_col_name 索引定义:

col_name [(length)]

reference_definition 引用表定义:

REFERENCES tbl_name [(index_col_name,...)]

[MATCH FULL | MATCH PARTIAL]

[ON DELETE reference_option]

[ON UPDATE reference_option]

reference_option 引用选项:

RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT

table_options 表选项:

   TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM }

or AUTO_INCREMENT = #

or AVG_ROW_LENGTH = #

or CHECKSUM = {0 | 1}

or COMMENT = "string"

or MAX_ROWS = #

or MIN_ROWS = #

or PACK_KEYS = {0 | 1 | DEFAULT}

or PASSWORD = "string"

or DELAY_KEY_WRITE = {0 | 1}

or ROW_FORMAT= { default | dynamic | fixed | compressed }

or RAID_TYPE= {1 | STRIPED | RAID0 } RAID_CHUNKS=# RAID_CHUNKSIZE=#

or UNION = (table_name,[table_name...])

or INSERT_METHOD= {NO | FIRST | LAST }

or DATA DIRECTORY="absolute path to directory"

or INDEX DIRECTORY="absolute path to directory"

select_statement 选择:

[IGNORE | REPLACE] SELECT ... (Some legal select statement)