数据库原理实验报告 下载本文

金陵科技学院实验报告

(3)视图的查询

select * from V_Student go Select * from V_Grade;

(4)视图的修改 alter view V_Student as select SNO as '学号',SName as '姓名',Sex as '性别',Birthday as '出生年月' from Student where Student.ClsNO='CS01'; (5)视图的删除

drop view V_Student

3. 索引命令

(1)create index idex_total_xh on Student(TotalCredit DESC,SNO)with(fillfactor=80);

(2)create index idex_clas_name on Student(ClsNO,SName DESC)with(fillfactor=70); (3)exec sp_helpindex Student

(4)drop index idex_total_xh on Student drop index idex_clas_name on Student

六、实验体会和收获

通过这次的实验,我掌握了视图的建立、删除、修改等基本操作,视图可以让我们更方便的管理查询数据库里的信息,还有,建立视图的过程中要注意表之间的连接关系。

2

金陵科技学院实验报告

实验项目名称: 约束、默认和规则 实验学时: 2 同组学生姓名:

实验地点: 1316

实验日期: 2016.04.14 实验成绩: 批改教师: 王 预 批改时间:2016.04.17

一、实验目的和要求

1、理解数据库中的实体完整性约束,掌握PRIMARY KEY、UNIQUE、NOT NULL 等约束的创建方法; 2、理解参照完整性约束的概念,掌握FORENGN KEY 创建方法; 3、理解域完整性的概念,掌握CHECK及规则的创建方法; 4、理解默认值的概念,掌握默认值和默认对象的创建方法。

二、实验设备、环境

设备:奔腾Ⅳ或奔腾Ⅳ以上计算机;

环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、SQL Server 2005中文版。

三、实验步骤

1、根据题目要求熟悉SQL Server 2005的各种管理工具; 2、分析题意,重点分析题目要求并给出解决方法;

3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中; 4、提交完成的实验结果。

四、实验内容

1、约束在数据库中的应用

(1)用系统存储过程sp_helpconstraint查看student表的约束。

(2)在新建查询中输入插入一个学生信息的命令:

insert into student(SNO,Sname,Sex,ClsNo,StuAddr,Birthday,Height,TotalCredit)

values('19920101','王军','男','CS01','下关#','1976.12.21',1.76,10),观察其结果。 修改SNO的值,将其值修改为‘19000001’,其他的值保持不变,再插入一次,观察其结果。 (3)修改student表,增加Check约束,约束名为check_sex,使性别列只能接受“男”或“女”,以强制执行域数据完整性。重做(1),观察其结果。

(4)禁止student表中的sex列上的约束:alter table student nocheck constraint check_sex。 (5)删除约束:alter table student drop constraint check_sex。重做(1)。 (6)利用关系图,建立student表与Course表与grade表的主外键约束。 2、默认的应用

(1)创建默认对象:default_birthday,默认值为‘1982-1-1’。

(2)利用系统存储过程sp_bindefault将default_birthday绑定到student表的Birthday列上。 (3)利用系统存储过程sp_unbindefault解除student表的Birthday列上的默认值绑定。 (4)删除默认值。 (5)定义一个默认值为4的Default_Value,并将它绑定到Course表的Credit列上,绑定后给Course表插入数据行,观察默认值的设置情况,使用完毕后,解除并删除绑定。实现过程要求使用SQL语句完成。

3、规则的应用

(1)利用企业管理器创建规则:规则名为:rule_credit_range,文本为:@range>=1 and @range<=8;

3

金陵科技学院实验报告

(2)绑定规则:将rule_credit_range 绑定到Course表的Credit列上; (3)解除(2)中设置的规则绑定,删除规则rule_ credit _range;

(4)定义一个规则rule_Specialty,这个规则限制Class表中的Specialty列只能取以下的值:计算机应用、信息管理、数学、物理。将该规则绑定到Class表后,向Class表插入数据行,观察规则的设置情况,使用完毕后,解除并删除该规则。

五、问题解答及实验结果

1.(1)exec sp_helpconstraint Student

(2)insert into

student(SNO,Sname,Sex,ClsNo,StuAddr,Birthday,Height,TotalCredit)

values('19920101','王军','男','CS01','下关#','1976.12.21',1.76,10)

(3)alter table Student with nocheck add constraint check_sex check (sex between '男' and '女')

(4)alter table Student nocheck constraint check_sex

(5)alter table student drop constraint check_sex

(6)/*创建主键*/

alter table Student add constraint pk_sno primary key(SNO); alter table Class add constraint pk_clsno primary key(clsNo);

4

金陵科技学院实验报告

alter table Course add constraint pk_cno primary key(CNO); /*创建组合主键*/

alter table Grade add constraint pk_group primary key(SNO,CNO);

/*创建外键*/

alter table Student add constraint fk_clsno foreign key(ClsNO) references Class (ClsNO);

2.(1)create default default_birthday as '1982-01-01'

(2)exec sp_bindefault 'default_birthday','Student.birthday'

(3)exec sp_unbindefault 'Student.birthday'

(4)drop default default_birthday

(5)create default Default_Value as 4;

exec sp_bindefault 'Default_Value','Course.Credit';

insert into Course(CNO,CName,PCNO) values ('0002','文学',''); exec sp_unbindefault 'Course.Credit'; drop default Default_Value;

3.(1)create rule rule_credit_range as @range between 1 and 8

(2)exec sp_bindrule 'rule_credit_range','Course.Credit'

(3)exec sp_unbindrule 'Course.Credit'

(4)

create rule rule_Specialty as @Specialty in ('计算机应用','信息管理','数学','物理');

exec sp_bindrule 'rule_Specialty','Class.Specialty'; insert into Class values ('PH09','物理八班','葛格','化学'); exec sp_unbindrule 'Class.Specialty';

六、实验体会和收获

通过本次实验,我掌握到了使用约束来控制数据的输入限制,使用命令创建主外键约束等,约束可以防止数据库中存在不符合的语句,实现了数据库的完整性。

5