
3.4 创建表
本节将详细介绍如何创建表。所谓创建表,就是在数据库中建立新表,这是建立数据库最重要的一步,是进行其他操作的基础。
3.4.1 创建表的语法形式
在MySQL数据库管理系统中,创建表通过SQL语句CREATE TABLE来实现,其语法形式如下。

上述语句中的tablename参数表示所要创建的表的名字,表的具体内容定义在括号之中,各列之间用逗号分隔。其中,“属性名”参数表示表字段的名称;“数据类型”参数指定字段的数据类型,具体可参照3.2节中关于数据类型的内容讲解;“完整性约束条件”参数指定字段的某些特殊约束条件,接下来的章节会详细讲解。
表名不能为SQL语言的关键字,如create(CREATE)、update(UPDATE)、delete(DELETE)等都不能作为表名。一个表中可以有一个或多个属性。定义时,字母大小写均可,属性之间用逗号隔开,最后一个属性后面不需要加逗号。
【示例3-9】在数据库中创建名为t_class的表。具体步骤如下:
(1)对数据库进行操作前,首先必须要选择数据库,后续的例子讲解中会省略该语句,读者实际操作时要注意加上该步骤。具体SQL语句如下:
USE school;
(2)创建表t_class的具体SQL语句如下,执行结果如图3-29所示。
CREATE TABLE t_class( classno INT, cname VARCHAR(20), loc VARCHAR(40), stucount INT);
(3)如果再次执行步骤2中的SQL语句,就会提示“Table 't_class' already exists”错误,如图3-30所示。

图3-29 创建表t_class

图3-30 提示表已经存在
通过上述步骤,可以在数据库school中成功创建表t_class,该表包含4个字段,其中classno字段是整型、cname字段是字符串型、loc是字符串型、stucount字段是整型。
3.4.2 创建带JSON类型的表
【示例3-10】在数据库中创建带有JSON类型的表t_json。
创建表的SQL语句如下,执行结果如图3-31所示。
CREATE TABLE t_json ( id INT NOT NULL AUTO_INCREMENT, json_col JSON, PRIMARY KEY(id) );

图3-31 创建带JSON类型的表