数据库约束、默认、规则实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五约束默认和规则
1、约束在数据库中的应用
(1)用系统存储过程sp_helpconstraint查看student表的约束。
(2)在新建查询中输入插入一个学生信息的命令:
insert into student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height)
values('19920101','王军','男','CS01','下关#','1976.12.21',1.76),观察其结果。
修改SNO的值,将其值修改为’19000001’,其他的值保持不变,再插入一次,观察其结果。
(3)修改studeng表,使用Check约束,使性别列只能接受“男”或“女”,以强制执行域数据完整性。重做(1),观察其结果。
(4)禁止student表中的sex列上的约束:alter table student nocheck constraint ck_student
(5)删除约束:alter table student drop constraint ck_xsqk。重做(1)。
(6)利用关系图,建立student表与course表与grade表的主外键约束。
2、默认的应用
(1)创建默认对象:default_birthday,默认值为’1982-1-1’。
CREATE DEFAULT default_birthday AS ‘1982-01-01’
(2)利用系统存储过程sp_bindefault将default_birthday绑定到student表的Birthday 列上。
(3)利用系统存储过程sp_unbindefault解除student表的Birthday列上的默认值绑定。(4)删除默认值:DROP DEFAULT default_birthday
(5)定义一个默认值为4的Default_Value,并将它绑定到course表的Credit列上,绑定后给course插入数据行,观察默认值的设置情况,使用完毕后,解除并删除绑定。实现过程要求使用SQL语句完成。
3、规则的应用
(1)利用企业管理器创建规则:规则名为:rule_credit_range,文本为:@range>=1 and @range<=8;
(2)绑定规则:将rule_credit_range 绑定到Class表的course列上;
(3)解除(2)中设置的规则绑定,删除规则rule_ credit _range;
(4)定义一个规则rule_Specialty,这个规则限制Class表中的Specialty列只能取以下的值:计算机应用、信息管理、数学、物理。将该规则绑定到Class表后,向Class表插入数据行,观察规则的设置情况,使用完毕后,解除并删除该规则。
1、约束在数据库中的应用
1.1 SQL语句:
exec sp_helpconstraint student
1.2
insert into student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height) values('19920101','王军','男','CS01','下关#','1976.12.21',1.76)
消息2627,级别14,状态1,第1 行
违反了PRIMARY KEY 约束'PK_Student'。不能在对象'dbo.student' 中插入重复键。
语句已终止。
insert into student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height) values('19920106','王华','男','CS01','下关#','1976.12.21',1.76) 1.3 SQL语句:
alter table Student
with nocheck
add constraint check_sex check(Sex between'男'and'女')
1.4 SQL语句:alter table Student nocheck constraint check_sex
1.5 SQL语句:alter table Student drop constraint check_sex
/*创建主键*/
alter table Student
add constraint pk_sno primary key(SNO);
alter table Class
add constraint pk_clsno primary key(ClsNO);
alter table Course
add constraint pk_cno primary key(CNO);
2、默认的应用
2.1 SQL语句:create default default_birthday AS'1982-01-01'
2.2 SQL语句:exec sp_bindefault'default_birthday','Student.birthday'
2.3 SQL语句:exec sp_unbindefault'Student.birthday'
2.4 SQL语句:drop default default_birthday
3、规则的应用
3.1 SQL语句:
create rule rule_credit_range
as
@range between 1 and 8
exec sp_bindrule'rule_credit_range','Course.Credit'