1
数据库原理与应用技术
1.9.3.2 8.3.2 创建数据表
8.3.2 创建数据表

作为一种数据库对象,表既可以使用CREATE TABLE语句创建,也可以使用企业管理器创建。下面分别介绍这些创建表的方法。

1. 使用CREATE TABLE语句创建表

CREATE TABLE语句是一种经常使用的创建表的方法,也是一种柔性的创建表的方式,该语法在第5章已经详述过。下面通过例题简单说明CREATE TABLE语句的用法。

【例8-6】在students数据库中创建表student。该表包含学生的信息,这些信息是学号、姓名、性别、出生日期、籍贯、联系电话、住址和备注等。试编写程序。

解:程序如下。

USE students

CREATE TABLE student(

student_id int NOT NULL,

name varchar(10)NOT NULL,

gender char(2) NULL,

birthday datetime NULL,

hometown varchar(30) NULL,

telphone_no varchar(12) NULL,

address varchar(30) NULL,

others varchar(50) NULL)

在 student 表中有 8 个列,每一个列都由列名、数据类型和是否为空属性组成。student_id表示学号,数据类型为int,不允许空;name表示学生姓名,数据类型为varchar,长度为10,不允许空;gender表示性别,数据类型为char,长度为2,允许空;birthday表示出生日期,数据类型为 datetime,允许空;hometown 表示学生的籍贯,字段类型为varchar,长度为30,允许空;telephone_no表示联系电话,字段类型为varchar,长度为12,允许空;address表示住址,字段类型为varchar,长度为30,允许空;others表示备注信息,字段类型为varchar,长度为50。

在该表中,虽然没有定义主键、外键、索引等,但这确实是一个完整的表,可以用于存储学生信息。

在创建表的过程中,除了在列中直接指定数据类型和属性之外,还可以对某些列进行计算。也就是说,某些列的值不是通过输入得到,而是通过计算得到的。例8-7就是这样一个示例。

【例8-7】创建包含计算列的表并编写程序。

解:程序如下。

USE students

CREATE TABLE mytable(

low int,

high int,

avg AS(low+high)/2)

例8-7创建了一个表mytable。在该表中,有3个列,列low的数据类型为int;列high的数据类型为int;列avg没有指定数据类型,但是它的值是(low+high)/2,是通过计算得到的。AS是SQL Server使用的关键字。

在定义表结构时,还可以定义主键约束。主键约束是唯一确定表中每一行数据的逻辑。主键约束的关键字是PRIMARY KEY。例如,定义例8-6中student_id为主键,可以更改如下:

USE students

CREATE TABLE student(

student_id int NOT NULL PRIMARY KEY,

name varchar(10)NOT NULL,

gender char(2) NULL,

birthday datetime NULL,

hometown varchar(30) NULL,

telphone_no varchar(12) NULL,

address varchar(30) NULL,

others varchar(50) NULL)

2. 使用企业管理器创建表

除了使用CREATE TABLE语句之外,还可以使用企业管理器创建表。使用企业管理器创建表的步骤如下。

在“对象资源管理器”窗口中,依次展开指定的服务器、数据库节点后,表示将在当前数据库中创建表。右击“表”节点,弹出快捷菜单,如图8-6所示。

在如图8-6所示的菜单中,选择“新建表”,弹出如图8-7所示的对话框,该对话框可以分成两个部分,上部分有“列名”、“数据类型”(含“长度”)和“允许Null值”3个列,可以在这些列中分别输入列名、选择数据类型(确定列的数据长度)和确定是否允许为空。下部分可以输入列的其他属性,包括描述、默认值、数值的长度和小数位数等。

在如图8-7所示的对话框中,选择工具栏上的“存盘”图标,会弹出“选择名称”对话框,如图8-8所示,在“输入表名称”文本框中输入“course”,然后单击“确定”按钮,完成该表的创建操作。

图8-6 表的快捷菜单

图8-7 创建表的选项卡

图8-8 “选择名称”对话框

在如图8-7所示的对话框中,右击任意行会弹出一个快捷菜单,如图8-9所示。在图8-9中可以执行以下操作:设置主键(设置该列为主键约束)、插入列、删除列、关系(定义表和表之间的关系)、索引/键等。

图8-9 定义表特性的快捷菜单