《数据库系统概论》实验报告 |
日期 |
2020/12/1 |
|||
题目:数据库的完整性约束 |
姓名 |
|
学号 |
|
|
实验环境: 已安装SQL Server 2005/2008版的计算机 |
|||||
实验内容及完成情况: 1.请将上机题目写于此 2.根据以下要求认真进行实验,记录所有的实验用例。
以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实现以下操作;
alter table student add constraint sno_pk primary key(Sno)
alter table course add constraint con_pk primary key(Cno)
alter table course add constraint cname_uk unique(Cname)
alter table sc add constraint sc_pk primary key(Sno,Cno)
alter table sc add constraint sc_s_fk foreign key(Sno) references student(Sno) alter table sc add constraint sc_c_fk foreign key(Cno) references course(Cno)
alter table sc add constraint sc_stu_fk foreign key(Sno) references student(Sno) on delete cascade
alter table sc add constraint sc_s_fk foreign key(Sno) references student(Sno) on update no action
alter table sc add constraint sc_c_fk foreign key(Cno) references course(Cno) on update cascade
alter table sc add constraint sc_course_fk foreign key(Cno) references course(Cno) on delete cascade
e)向sc表添加记录时,如果该记录的sno字段的值在student中不存在,则拒绝插入; alter table sc add constraint sc_f1 foreign key(Sno) references student(Sno) on update no action
alter table student add constraint sno_ck check(Sno like '[1-9][0][0][0-9][0-9][0-9][0-9][0-9][0-9]')
alter table student add constraint sage_ck check(Sage>=16 and Sage<=25)
alter table student add constraint sname_ck check (len(Sname)>=2 and len(Sname)<=8)
alter table student add constraint sex_ck check (Ssex in('男','女'))
alter table student add constraint sage_default default 20 for Sage
alter table student drop constraint sage_ck alter table student add constraint sage_ck check (Sage>=15 and Sage<=35)
alter table student drop constraint sno_pk,sno_ck,cno_pk
create rule c_cno as @a like '[0-9][0-9][0-9][0-9][0-9]' go exec sp_bindrule 'c_cno','course.Cno'
create trigger ck_scno on sc for insert,update as if not exists(select * from student where Sno=( select Sno from inserted ) ) or not exists(select * from course where Cno=( select Cno from inserted ) ) rollback transaction
15.思考题:删除student表中一条记录的同时删除其在sc表中对应的记录; create trigger de_stu on student for delete as begin delete from sc where sno in(select sno from deleted) end
|
|||||
出现的问题及解决方案: 问题: 具体的概念及语法不熟悉。 解决: 在网上查找,或找同学一起解决。 |
|||||
教师评语及得分:
|
|||||