金陵科技学院实验报告
(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