使用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 创建数据表