MySQL学习笔记(十七)―― MySQL的命令集(7)

19)  创建表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table
  (create_clause, …)
  [table_options]
  [[IGNORE | REPLACE] select]
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table LIKE old_table
该命令用来定义数据库中表的结构。如果使用了 TEMPORARY 关键字,该表只在当前客户端连接存在时存在。而 IF NOT EXISTS 表示 MySQL 仅在表不存在时才创建,如果表存在,而又没有指定 IF NOT EXISTS TEMPORARY ,则系统会报错。如果指定了 TEMPORARY 没指定 IF NOT EXISTS ,而表又存在,那么此时已存在的表将对当前客户端隐藏。
CREATE 子句可以定义特定列的结构,也可以定义该列的元结构。定义列的子句包含任意数目的字段定义,其语法如下:
column type [NOT NULL | NULL] [DEFAULT value] [AUTO_INCREMENT] [PRIMARY KEY] [reference]
其标识符含义如下:
AUTO_INCREMENT :表示列使用其当前最大值自增,只有数值型列才适用。
DEFAULT value :为字段分配默认值。
NOT NULL :保证每个值都不为空。
NULL :表示字段可包含空值,如果字段是主关键字或 SPATIAL 索引,则不能使用该选项。
PRIMARY KEY :表示该字段是主关键字。
REFERENCE table [(column, …)] [MATCH FULL | MATCH PARTIAL] [ON DELETE option] [ON UPDATE option] :创建外关键字引用,仅对 InnoDB 表适用。
可以通过以下子句来设置元结构如索引和约束:
FULLTEXT (column, …) :创建全文本的索引。
INDEX [name] (column, …) :创建常规索引。
KEY [name] (column, …) :等价于 INDEX
PRIMARY KEY :创建表的主关键字。
UNIQUE [name] (column, …) :创建值必须唯一的特殊索引。
MySQL 3.23 开始,可以在 CREATE TABLE 语句末尾指定表选项,它们包括:
AUTO_INCREMENT = start
指定用于自增列的起始值,适用于 MyISAM InnoDB MEMORY 表。
AVG_ROW_LENGTH = length
对于包含大量变长数据的表,平均行长可用于 MySQL 对这些数据进行优化。
CHECKSUM = 0 or 1
当设置为 1 时,则强制 MySQL 对表进行校验以提升数据的一致性,会对性能有所影响。
COMMENT = comment
为表提供注释,一般不超过 60 个字符。
DELAY_KEY_WRITE = 0 or 1
仅适用于 MyISAM 。如果设置为 1 ,则当表关闭时,才执行更新。
ENGINE = engine
指定数据库的表类型。如果选定的表类型不存在,则使用最相近的表类型。
MAX_ROWS = rowcount
指定表中存放的最大行数。
MIN_ROWS = rowcount
指定表中存放的最小行数。
PACK_KEYS = 0 or 1
仅适用于 MyISAM 表。该选项可对读操作多的表提供性能改善,当设置为 1 时,会创建更小的关键字,这样写操作会慢而读操作会加速。
PASSWORD = ‘password’
仅有包含特殊商业许可的用户才能使用。该选项会使用指定密码加密表的 .frm 文件。
ROW_FORMAT = DYNAMIC or STATIC (MyISAM) COMPACT or REDUNDANT (InnoDB)
定义行如何存储在表中。
可以直接由 SQL 查询创建表。当创建表时,必须拥有数据库的 CREATE 权限。
示例:      CREATE TABLE emp (id INT, name CHAR(50) );
               CREATE TABLE IF NOT EXISTS emp_review (
            id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
               emp_id INT NOT NULL REFERENCES emp (id),
                review TEXT NOT NULL,
                INDEX (emp_id),
                FULLTEXT (review)
               ) AUTO_INCREMENT = 1, ENGINE = MyISAM;
               CREATE TABLE Stadium
               SELECT stadiumName, stadiumLocation
               FROM City;

你可能感兴趣的:(mysql,数据库,学习,笔记,休闲)