数据库约束、默认、规则实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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'

相关文档
最新文档