3.2.2 创建数据表
在创建数据库后,接下来的工作就是创建数据表。所谓创建数据表,指的是在已经创建好的数据库中建立新表。创建数据表的过程是规定数据列属性的过程,同时也是实施数据完整性约束的过程。
1.创建数据表的语法
因为数据表属于数据库,在创建数据表之前,应该使用语句“use数据库名”指定操作是在哪个数据库中进行,如果没有选择数据库,会抛出“No database selected”错误。
创建数据表的语句为create table,语法格式如下:
语法说明:
if not exists:在创建表前加上一个判断,只有该表目前尚不存在时才执行create table操作。用该选项可以避免出现表已经存在,因而无法再新建的错误。
表名:要创建的表的名称。该表名必须符合标识符的命名规则,不区分大小写,不能使用SQL语言中的关键字,如insert、update、delete、drop、alter等。
字段名:数据表中每列的名称。字段名必须符合标识符的命名规则,长度不能超过64个字符,并且在表中要唯一。如果创建多个字段,需要用逗号隔开。
数据类型:数据表中每列的数据类型。有的数据类型需要指明长度n,并用括号括起来。
列级别约束条件:创建表时给字段添加相应的约束。
默认值:为字段指定默认值,默认值必须为一个常数。
表级别约束条件:在创建表时,在定义所有字段的后面为列添加约束。
【例3.3】在bookDB数据库下,创建bookInfo(图书信息)表,表结构见表3-3。
首先选择创建表的数据库bookDB,然后再创建表book Info。
SQL语句执行效果如下:
语句执行后,便在bookDB数据库中创建了一个名称为book Info的数据表,使用show tables语句查看当前数据库下的数据表是否创建成功,SQL语句执行效果如下:
能够看到,bookDB数据库中已经创建了数据表book Info,数据表创建成功。
2.查看数据表结构
使用SQL语句创建好数据表之后,可以查看表结构的定义,以确认表的定义是否正确。在MySQL中,查看表结构可以使用describe和show create table语句。
describe/desc语句可以查看表的字段信息,其中包括:字段名、字段数据类型、是否为主键、是否有默认值等。语法规则为:describe表名或desc表名。
语句执行效果如下:
其中,各个列的含义分别解释如下:
Null:表示该列是否可以存储null值。
Key:表示该列是否已编制索引。pri表示该列是表主键的一部分;uni表示该列是Unique索引的一部分;mul表示在列中某个给定值允许出现多次。
Default:表示该列是否有默认值,如果有默认值,值是多少。
Extra:表示可以获取的与给定列有关的附加信息,例如auto_increment自动增长等。
3.查看表详细结构的语句
show create table语句可以用来显示创建表时的create table语句,语法格式如下:
执行效果如下:
提示:如果不加‘\G’参数,显示的结果可能非常混乱,加上参数‘\G’之后,可使显示结果更加直观,易于查看。