
4.2 创建表
本节将详细介绍如何创建表。所谓创建表,就是在数据库中建立新表,这是建立数据库最重要的一步,是进行其他操作的基础。
4.2.1 创建表的语法形式
在MySQL数据库管理系统中,创建表通过SQL语句CREATE TABLE来实现,其语法形式如下:
CREATE TABLE tablename( 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], …… 属性名 数据类型 [完整性约束条件]);
上述语句中的tablename参数表示所要创建的表的名字,表的具体内容定义在括号中,各列之间用逗号分隔。其中,“属性名”参数表示表字段的名称;“数据类型”参数指定字段的数据类型,具体可参照第6章中关于数据类型的讲解;“完整性约束条件”参数指定字段的某些特殊约束条件。接下来的章节会详细讲解这些内容。
表名不能为SQL语言的关键字,如create(CREATE)、update(UPDATE)、delete(DELETE)等都不能做表名。一个表中可以有一个或多个属性。在定义时,字母大小写均可,各个属性之间用逗号隔开,最后一个属性后面不需要加逗号。
【示例4-1】在数据库school中创建名为t_class的表,具体步骤如下:
步骤01 创建和选择数据库school,具体SQL语句如下(见图4-3和图4-4):
CREATE DATABASE school; SHOW DATABASES;

图4-3 创建数据库

图4-4 查询数据库
步骤02 没有选择数据库school之前,执行SQL语句CREATE TABLE,创建表t_class,具体SQL语句如下:
CREATE TABLE t_class ( classno INT, cname VARCHAR(20), loc VARCHAR(40), stucount INT);
执行结果如图4-5所示。
步骤03 选择数据库school,具体SQL语句如下:
USE school;
执行结果如图4-6所示。

图4-5 选择数据库之前创建表

图4-6 选择数据库
从图4-5所示的执行结果来看,创建表之前需要选择数据库,如果没有选择数据库,就会出现No database selected错误。
步骤04 选择数据库school后,再执行创建表的SQL语句,就会创建表,如图4-7所示。
步骤05 如果再次执行步骤2中的SQL语句,就会提示Table 't_class' already exists错误,如图4-8所示。

图4-7 创建表t_class

图4-8 提示表已经存在
通过上述步骤,可以在数据库school中成功创建表t_class,该表包含4个字段,其中classno字段是整型的;cname字段是字符串型的;loc是字符串型的;stucount字段是整型的。
4.2.2 通过SQLyog创建表
在数据库开发阶段,很多Windows用户偏爱用客户端软件SQLyog来创建表。下面通过一个具体的示例来说明如何通过SQLyog创建表。
【示例4-2】与示例4-1一样,在数据库school中创建名为t_class的表,具体步骤如下:
步骤01 首先连接数据库管理系统,然后右击“对象资源管理器”窗口中的空白处,在弹出的快捷菜单中选择“创建数据库”,如图4-9所示。打开“创建数据库”窗口,如图4-10所示。

图4-9 选择“创建数据库”

图4-10 “创建数据库”窗口
步骤02 填写数据库名称,选择基字符集,单击“创建”按钮,就会创建数据库school,如图4-11所示。在“对象资源管理器”中,右击school数据库,在弹出的快捷菜单中选择“创建表”,如图4-12所示。

图4-11 数据库创建成功

图4-12 “创建表”命令
步骤03 打开“新表”窗口,如图4-13所示。在“表名称”中输入表的名称,在“列”选项卡的“列名”列设置字段名,在“数据类型”列设置字段的类型,在“长度”列设置类型的宽度,单击“保存”按钮,实现创建表t_class,如图4-14所示。

图4-13 “新表”窗口

图4-14 新表创建成功
除了可以通过以上步骤创建表外,还可以在“询问”窗口中输入创建表的SQL语句,然后单击工具栏中的“执行查询”按钮,可以实现表的创建,如图4-15所示。

图4-15 在“询问”窗口执行SQL语句