
4.3 创建数据表
数据库创建完成后,如果没有数据表,那么这个数据库就是一个空数据库,没有任何存在的意义,既然数据表如此重要,下面就来介绍如何创建数据表。
4.3.1 创建数据表的基本语法
在SQL Server 2017中,创建数据表的语句比较多,也比较复杂,具体的语法格式如下。

主要参数介绍如下。
- table_name:指定创建数据表的名称。
- column_name:指定数据表中各个列的名称,列名称必须唯一。
- data_type:指定字段列的数据类型,可以是系统数据类型也可以是用户定义数据类型。
4.3.2 使用CREATE语句创建数据表
在了解了创建数据表的语法结构后,就可以使用CREATE语句创建数据表。不过,在创建数据表之前,需要弄清楚表中的字段名和数据类型。假如,要在酒店客户管理系统的数据库Hotel中创建一个数据表,用于保存房间信息,表的字段名和数据类型如表4-7所示。
表4-7 房间信息表

实例5:创建数据库Hotel,并在该数据库中创建一个房间信息表Roominfo。
在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可完成数据库的创建操作,如图4-15所示。
接着在数据库Hotel中创建Roominfo数据表,在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可完成数据表的创建操作,如图4-16所示。执行完成之后,刷新数据库列表,将会看到新创建的数据库与数据表以及表所包含的列信息,如图4-17所示。

图4-15 创建Hotel数据库

图4-16 创建Roominfo表

图4-17 新增加的Roominfo表
4.3.3 创建包含自动增长字段的数据表
自动增长字段就是让字段按照某一规律自动增加,这样在添加数据记录时,就可以做到该列的值是唯一的,从而避免了重复。
在SQL Server数据库中,设置带自动增长字段的前提是该字段是一个整数类型的数据。另外,在设置自动增长字段时,还需要指定字段的最小值以及每次增加的个数,具体的语法格式如下。
IDENTITY(minvalue,increment)
主要参数介绍如下。
- minvalue:最小值,也就是数据表中该列第一个要使用的值,默认情况下为1。
- increment:每次增加值,默认情况下也是每次增加1。
提示:如果采用默认地从1开始每次增加1的自动增长方式,则可以直接使用IDENTITY,而不用再设置参数了。
实例6:在数据库Hotel中,创建一个客户信息表Hotel_userinfo,该表的字段与数据类型设置如表4-8所示,在表中设置客户编号列为自动增长列。
表4-8 酒店客户信息表

下面创建Hotel_userinfo数据表,在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可完成包含自动增长字段数据表的创建操作,如图4-18所示。执行完成之后,刷新数据库列表,将会看到新创建的数据表以及表所包含的列信息,如图4-19所示。

图4-18 创建Hotel_userinfo数据表

图4-19 新增加的Hotel_userinfo表
提示:在创建数据表时,如果需要设置自动增长字段,那么IDENTITY语句就需要放置在自动增长列数据类型的后面。
4.3.4 创建包含自定义数据类型的数据表
在前面小节中,我们已经介绍了自定义数据类型的创建操作。那么创建的自定义数据类型如何应用到数据表之中呢?本节就来介绍创建包含自定义数据类型数据表的方法。
提示:数据库管理员一般会将一个表或一个数据库中经常出现的数据类型定义成自定义数据类型。
实例7:根据表4-8所示创建的酒店客户信息表Hotel_userinfo_01,然后使用用户自定义数据类型remark,在创建数据表之前,需要创建自定义数据类型,在“查询编辑器”窗口中输入以下语句。
USE Hotel CREATE TYPE remark FROM varchar(10) not null;
单击“执行”按钮,即可在Hotel数据库中创建自定义数据类型remark,类型为varchar(10),如图4-20所示。

图4-20 创建自定义数据类型remark
下面创建客户信息表Hotel_userinfo_01,并使用自定义数据类型remark。

单击“执行”按钮,即可在Hotel数据库中创建包含自定义数据类型remark的数据表,如图4-21所示。执行完成之后,刷新数据库列表,将会看到新创建的数据表以及表所包含的列信息,如图4-22所示。

图4-21 创建Hotel_userinfo_01数据表

图4-22 新增加的Hotel_userinfo_01表
4.3.5 在文件组上创建数据表
一个数据库可以包含多个文件组,但是只有一个主文件组,默认情况下,创建的数据表都存放在数据库的主文件组中。不过,在创建数据表时,如果数据库已经创建了别的文件组,这时可以将新创建的数据表存放在指定文件组上。
实例8:根据表4-7所示创建房间信息表Roominfo_01,并将该数据表创建在Hotel数据库中的Hotelfilegroup文件组中,在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可完成在文件组上创建数据表的操作,如图4-23所示。在“表”节点下选中新创建的数据表Roominfo_01,右击,在弹出的快捷菜单中选择“属性”命令,打开“表属性”窗口,选择“存储”选项,在右侧“文件组”信息窗口中可以看到当前数据表的文件组为Hotelfilegroup,如图4-24所示。

图4-23 在文件组上创建数据表

图4-24 “表属性”窗口
4.3.6 认识数据库中的临时表
数据库中除了我们创建的数据表,还存在一种叫作临时表的数据表,这种数据表就好像我们常用的购物车,在使用时有存在的意义,当结完账后,临时表就不再需要了。那么如何创建临时表呢?本节就来详细介绍创建临时表的方法。
提示:顾名思义,临时表就是数据库中不永久存在的表。临时表可以分为本地临时表和全局临时表,本地临时表以“#”开头,只能在当前用户下使用;全局临时表以“##”开头,所有用户都能使用。
实例9:创建一个临时表usertemp,该表的字段与数据类型如表4-9所示。
表4-9 用户信息临时表

下面创建临时表usertemp,在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可完成临时数据表的创建操作,如图4-25所示。执行完成之后,刷新数据库列表,打开“系统数据库”→tempdb→“临时表”节点,即可看到创建的临时表,如图4-26所示。

图4-25 临时数据表的创建

图4-26 “临时表”节点
注意:不管当前使用的是哪个数据库,临时表都会保存在系统数据库tempdb之中。
4.3.7 以图形向导的方式创建数据表
在SQL Server Management Studio中,我们可以以图形向导的方式来创建数据表,创建过程可以分为如下几步。
(1)登录到SQL Server 2017数据库中,在“对象资源管理器”窗口中打开“数据库”节点下面的mydbase数据库,选择“表”节点,右击,在弹出的快捷菜单中选择“新建”→“表”命令,如图4-27所示。
(2)打开“表设计”窗口,在该窗口中创建表中各个字段的字段名和数据类型,这里定义一个名称为students的表,其结构如下:

根据students表结构,分别指定各个字段的名称和数据类型,如图4-28所示。

图4-27 选择“新建”→“表”命令

图4-28 “表设计”窗口
(3)表设计完成之后,单击“保存”或者“关闭”按钮,弹出“选择名称”对话框,在“输入表名称”文本框中输入表名称students,单击“确定”按钮,完成表的创建,如图4-29所示。
(4)单击“对象资源管理器”窗口中的“刷新”按钮,即可看到新增加的表,如图4-30所示。

图4-29 “选择名称”对话框

图4-30 新增加的表

微视频