创建数据表

课后整理 2021-1-7

使用CREATE TABLE语句可以创建数据表,语法格式如下:

CREATE [TEMPORARY] TABLE [IF NOT  EXISTS] 数据表名称
[(create_definition,…)][table_options]  [select_statement]

CREATE TABLE语句参数说明如表13.1所示。

表13.1  CREATE TABLE语句参数说明

关键字 说明
TEMPORARY 使用该关键字,则表示创建一个临时表
IF NOT EXISTS 该关键字可以避免表不存在时MySQL报告错误
create_definition 表的列属性部分。MySQL要求在创建表时,表至少包含一个列
table_options 表的一些特性参数
select_statement SELECT语句描述部分,用它可以快速地创建表

create_definition子句定义数据表的列属性,每一列定义的具体格式如下:

col_name type [NOT NULL | NULL]  [DEFAULT default_value]
        [AUTO_INCREMENT] [PRIMARY KEY]  [reference_definition]

属性create_definition的参数说明如表13.2所示。

表13.2  属性create_definition参数说明

参数 说明
col_name 表示字段名
type 字段类型
NOT NULL | NULL 指出该列是否允许是空值,系统一般默认允许为空值,所以当不允许为空值时,必须使用NOT NULL
DEFAULT default_value 表示默认值
AUTO_INCREMENT 表示是否自动编号,每个表只能有一个AUTO_INCREMENT列,并且必须被索引
PRIMARY KEY 表示是否为主键,一个表只能够有一个PRIMARY KEY。如果表中没有一个PRIMARY KEY,而某些应用程序需要PRIMARY KEY,MySQL将返回第一个没有任何NULL列的UNQUE键作为PRIMARY KEY
reference_definition 为字段添加注解

创建数据表的格式比较复杂,可以简单的概括为如下形式:

create table 表名 (列名1 属性, 列名2 属性…);

【示例】使用CREATE TABLE语句在MySQL数据库db_admin中创建一个名为tb_user的数据表,该表包含id、name字段,如图13.14所示。

图13.14  创建数据表