实验四 实现SQL的数据完整性
姓名:林虹
学号:20104510
学时:4
实验日期:2012314日、2012321
一、实验目的
    通过本次实验使学生掌握如何实现SQL的数据完整性
二、实验内容
1、约束的创建与删除。
2、规则的创建与删除。
3、使用默认。
三、实验环境
1Windows XP
2SQL Server 2005
四、实验步骤
利用教材数据库,文件名为“STUDENT”做如下操作。
1、在student数据库中创建一个民族表
(民族代码,民族名称)
将民族代码指定为主键。
操作步骤:
方法1:菜单命令法
1)在对象资源管理器中展开student数据库,右击“表”项,在弹出的快捷菜单中选择“新建表”。
2)在打开的表设计器中设置表结构。在“列名”下输入 “民族代码”、“民族名称” 两个列名,并且不能勾选 “允许空”下面的复选框。
3)选定“民族代码”这一列,右击它,在弹出的快捷菜单中选择“设置主键”命令。
4)关闭表设计器,保存表结构,表名为“民族”。
方法2T-SQL语句法
1)在查询分析器中输入以下命令:
use student
create table 民族
(民族代码char(10) not null primary key,民族名称char(20))
2)选定所有命令行,单击“执行”按钮。
2、在student数据库中的“课程注册”表,指定字段注册号为表的主键。
操作步骤:
1)在查询分析器中输入以下命令:
use student
alter table 课程注册add primary key(注册号)
2)选定所有命令行,单击“执行”按钮。
3、在student数据库中,对“民族”表中的民族名称字段创建一个惟一约束。
操作步骤:
1)在查询分析器中输入以下命令:
use student
alter table 民族add unique(民族名称)
2)选定所有命令行,单击“执行”按钮。
4、在student数据库中为“学生”表中出生日期字段创建一个检查约束,以保证输入的数据大于198011日而小于200011
操作步骤:
在“学生”表的表设计器中右击“出生日期”这一列,在弹出的快捷菜单中选择“CHECK约束”命令,在出现的对话框中单击“添加”按钮。在“表达式”右侧的输入框中输入表达式:
[出生日期]>='1980/1/1'and[出生日期]<='2000/1/1' 之后单击“关闭”按钮。
5、在student数据库中为“民族”表中“民族名称”字段创建一个默认约束,其默认值为“汉族”
操作步骤:
1)启动软件,打开student数据库。
2)在查询分析器中输入以下命令:
alter table 民族add default '汉族' for 民族名称
sql数据库创建表步骤3)选定命令行,单击“执行”按钮即可。
6、在student数据库中为“班级”表中“专业代码”字段创建一个外键约束,从而保证输入有效的专业代码。
操作步骤:
(1) 在软件中打开student数据库,单击“新建查询”按钮,在打开的查询分析器中输入以下命令:(在“专业代码”不为空的情况下)
alter table 班级add primary key(专业代码)
alter table 课程add primary key(专业代码)
alter table 班级add foreign key(专业代码) references 课程(专业代码)
2)选定第一行命令,单击“执行”按钮。
3)选定第二行命令,单击“执行”按钮。
4)选定第三行命令,单击“执行”按钮。
7、创建一个xb_rule规则,绑定到’学生’性别字段,保证输入的数据只能为男或女。
操作步骤:
1)在软件中打开student数据库,单击“新建查询”按钮,在打开的查询分析器中输入以下命令:
create rule xb_rule as @性别in('','')
2)选定命令行,单击“执行”按钮。
8、删除 xb_rule规则。
操作步骤:
1)在查询分析器输入以下命令:
drop rule xb_rule
2)选定命令行,单击“执行”按钮。
9、创建一个df_xuefen默认,将其绑定到”教学计划”表的”学分”字段,使其默认学分为4
操作步骤:
1)在查询分析器中输入以下命令:
create default df_xuefen as 4
exec sp_bindefault 'df_xuefen','教学计划.学分'
2)选定第一行命令,单击
3)选定第二命令,单击“执行”按钮。
五、实验总结
1)知道了如何分别用菜单命令法和T-SQL语句法来定义主键约束、唯一键约束、检查约束以及外键约束。
2)学会了如何创建、删除默认值约束,创建、册除规则。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。