内容正文:
项目三 创建和管理表约束
任务1 表的构成
任务2 表的关联
任务3 表中数据
任务4 删除表
任务1 表的构成
任务导入
小林通过上一个项目的学习创建了一个教学管理系统的数据库,这个数据库中包含了学号、学生姓名、学生籍贯、性别、出生年月、成绩、专业等信息,他根据数据库原理将这些信息拆分成学生信息表、学院表、专业表、课程表和成绩表。那么,怎么建立表结构呢?
知识准备
一、数据类型
在SQL Server中,表存储在数据库中。数据库建立后,接下来就该建立存储数据的表。
varbinary [ ( n | max) ] 可变长度二进制数据。 n 的取值范围为 1 至 8,000。 max 指示最大存储大小是 2^31-1 个字节。 存储大小为所输入数据的实际长度 + 2 个字节。 所输入数据的长度可以是 0 字节。
可以按照存放在数据库中的数据的类型对SQL Server提供的系统数据类型进行分类,如表所示。
1.整数型
整数型包括bigint、int、smallint和tinyint 4种。
2.小数数据类型
也称为精确数据类型,它们由两部分组成,其数据精度保留到最低有效位,所以它们能以完整的精度存储十进制数。
3.近似数值型
并非数据类型范围内的所有数据都能精确地表示,因此SQL Server提供了用于表示浮点数字数据的近似数值数据类型。
4.字符型
字符串存储时采用字符型数据类型。
SQL Server提供的系统数据类型
5.逻辑数值型
SQL Server支持逻辑数据类型bit,它可以存储整型数据1、0或NULL。7.二进制数据类型
二进制数据由十六进制数表示。
8.日期时间类型
SQL Server提供了专门的日期时间类型。
9.Unicode字符型
在SQL Server中,传统上非Unicode数据类型允许使用由特定字符集定义的字符。
10.其他数据类型
在SQL Server中,还提供了其他几种数据类型
二、创建表结构
1.使用SSMS创建表结构
使用对象资源管理器建立一个表的过程非常简单。
案例——建立college表结构
快捷菜单
输入第一行
更改列属性
输入第二行
college表的各个字段
设置主键
保存college表
2.使用T-SQL创建表结构
其中,各参数含义如下:
table_name:要创建的表的名称。
column_name1:第一个字段名称。
data_type:指定字段的数据类型。
NULL和NOT NULL:限制字段可以为NULL(空),或者不能为NULL(空)。
PRIMARY KEY:设置字段为主键。
UNIQUE:指定字段具有惟一性。
案例——创建一个specialty表。
创建表
student表
course表
score表
三、修改表结构
1.使用SSMS修改表结构
表结构的修改和查看的操作步骤是相同的。
案例——给student表中加入resume(简历)字段并修改Specialty_ID(专业号)的长度
快捷菜单 快捷菜单
插入字段resume
修改字段长度
2.使用T-SQL修改表结构
使用ALTER TABLE语句来修改表结构。
其中,各参数含义如下:
ADD子句:增加字段,后面为属性参数设置。
DROP子句:删除限制或者字段。CONSTRAINT表示删除限制;COLUMN表示删除字段。
案例——删除specialty表中的Professional_category(专业名称)列
按F5键或单击工具栏中的“执行”按钮,删除Professional_category(专业名称)列,如图所示。
任务2 表的关联
任务导入
小林通过上一个任务的学习分别创建学生信息表、学院表、专业表、课程表和成绩表的表结构。那么,怎么建立起表之间的关系呢?
知识准备
建立两个表之间的“一对一”关系。首先要使两个表都具有相同属性的字段,然后定义父表中该字段为主索引或候选索引字段,子表中与其同名的字段为候选索引或主索引。
一、建立表关联
1.使用SSMS对表进行关联
通过SSMS对表进行关联有两种方法。
方法一:创建数据库关系图,添加表,然后拖动字段到对应表的字段上建立表之间的关系。
方法二:打开要建立表关系的表,然后在表中单击鼠标右键,在弹出的快捷菜单中选择“关系”选项,打开“外键关系”对话框,单击“表和列规范”右侧的按钮,打开“表和列”对话框,设置主键表和外键表,创建两个表之间的连接。
案例——给EMIS数据库中的五个表建立关联
快捷菜单
“添加表”对话框
添加表
“表和列”对话框
“外键关系”对话框
建立score表与student表之间的关系 提示对话框
建立的EMIS数据库中各个表之间的关系
保存关系图
2.使用T-SQL建立关联
表的字段可能参考到其他表的字段,这就需要将两个表建立关联。
案例——将worker表中的dno字段关联到depart表的dno字段。
按F5键或单击工具栏中的“执行”按钮,系统提示消息显示命令已成功完成,如图所示。将worker表中的dno字段关联到depart表的dno字段。
二、修改表关联
快捷菜单 添加转折
快捷菜单
提示对话框
“属性”选项板
任务3 表中数据
任务导入
小林已经创建好了学生信息表、学院表、专业表、课程表和成绩表的表结构,并这些表关联起来,但是现在表中还没有任何数据记录,什么也查不到。那么,怎么将数据记录添加到对应的表中呢?
知识准备
数据的新增和修改与数据的表内容的查看的操作过程是相同的,就是在打开表的内容窗口后,直接输入新的数据或者进行修改。
数据一般是通过T-SQL来添加的,也可以通过SSMS来进行。
1.使用SSMS输入数据
在输入数据时,如果表之间有关联性存在,例如,表A的某个字段参考到表B时,则必须先输入表B的记录,然后才能输入表A与之相关的记录,否则将会出错。
案例——给specialty表添加数据
快捷菜单
表的编辑窗口
specialty表数据
2.使用T-SQL输入数据
SQL语言提供了INSERT语句来插入一行数据。基本语法如下:
INSERT [INTO] table_name [(column_name)]
VALUES (列值列表)
案例——给college表添加数据
college表数据
course表数据
student表数据
score表数据
任务4 删除表
任务导入
小林在向表中添加数据时,一不小心把数据输错了,怎么才能将输错的数据删除呢?如果是整个表都有错误,怎么才能将表删除呢?
知识准备
一、删除表中数据
1.使用SSMS输入数据
2.使用T-SQL删除表中数据
(1)DELETE
(2)Truncate Table
二、删除数据表
有时需要删除表(如要实现新的设计或释放数据库的空间时)。删除表时,表的结构定义、数据、全文索引、约束和索引都永久地从数据库中删除,原来存放表及其索引的存储空间可用来存放其他表。
1.使用SSMS删除表
表的删除操作很简单,但是要注意的是,如果与其他表存在关联时,则不能直接删除表。要先删除关联,然后再删除表。
快捷菜单
提示对话框
“删除对象”对话框
错误信息
提示对话框
2.使用T-SQL删除表
Drop Table 完全删除某个表,包含表的结构属性和索引等。
项目总结
项目实战
实战一 在company数据库中建立表
(1)选择“company”数据库的“表”节点,右击鼠标,在弹出的快捷菜单中选择“新建表”命令,打开对应的窗口。
(2)在第一行中输入列名为deptno,数据类型为int,允许Null值为否。
(3)在第二行中输入列名为dname,数据类型为char,长度为14,允许Null值为是。
(4)采用相同的方法,输入表中的其他列,结果如图所示。
(5)在deptno字段上右击,在弹出的快捷菜单中单击“设置主键”选项,将deptno字段设置为主键。
(6)单击工具栏上的“保存”按钮,打开“选择名称”对话框,输入表名称为dept,单击“确定”按钮,即可创建dept表。
(7)重复上述步骤,创建emp表(员工表)和salary表(工资表),如图所示。
dept表中的各个字段
emp表 salary表
实战二 给company数据库中的三个表建立关联
(1)在“company”数据库中选择“数据库关系图”节点,右击鼠标,在弹出的快捷菜单中选择“新建数据库关系图”选项,打开“添加表”对话框并新建关系图窗口。
(2)选取salary,emp和dept表,单击“添加”按钮,将这三个表添加到界面中,单击“关闭”按钮,关闭对话框。
(3)在dept表的deptno字段对应的按钮上按住鼠标左键,并将其拖动到emp表上的deptno字段上,打开“外键关联”和“表和列”对话框,确认主键表为dept,外键表为emp,字段都为deptno,其他采用默认设置,单击“确定”按钮,完成dept表和emp表的关联。
(4)依照上面步骤,建立salary表与emp表,最终的关系图如图所示。
(5)单击工具栏上的“保存”按钮,打开“选择名称”对话框,输入关系图的名称,这里采用默认名称,单击“确定”按钮,保存建立的关系图。
实战三 给company数据库中的三个表添加记录
(1)在company数据库的表节点下,选择“dbo.dept”表,右击鼠标,在弹出的快捷菜单中选择“编辑前200行”选项。
(2)打开dept表,依次填写想要输入的数据内容,如图所示。
(3)采用相同的方法,为company数据库的 “salary” 和“emp”表输入相应的记录,分别如图所示。
dept表的记录 salary表的记录
emp表的记录
$$