数据库实验报告二
在图形用户界面中删除上小题中已经创建的各种约束,用SQL语言分别重新创建第1小题中的(2)-(6)小题。(15分,每小题3分,提示:alter table add constrai
利用SQL语言创建,验证和删除规则。
创建一个ssex_rule规则(create rule),将其绑定(sp_bindrule)到S表的ssex性别字段上(请验证该规则生效,保证了输入的性别只能是
“男”或者“女”)。
建立规则ssex_rule:
create rule ssex_rule
as ***@ssex in('男','女')
绑定:
exec sp_bindrule 'ssex_rule',''
验证:
insert into
s
values('95111','张伟','男人','1994-12-25','CS','3436330')
结果为:
删除ssex_rule规则(注意:规则已绑定到ssex表的性别字段上,需要先解除原有的绑定sp_unbindrule, drop rule)。
解除绑定:
exec
sp_unbindrule ''
删除:
drop rule ssex_rule
二、实验反思
创建合适的视图,可以令查询简单,效率更高,视图对重构数据库提供了一定程度的逻辑独立性。
实验四:视图与索引
一、实验内容
在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分)
用两种不同的SQL语句创建第四版教材128页第11题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。
第一种方法:
create view V_SPJ
as
select SNO,PNO,QTY
from SPJ,J
where =
and ='三建'
第二种方法:
create view V_SPJ
as
select SNO,PNO,QTY
from SPJ
where in
(
select JNO
from J
where ='三建'
)
用SQL语句完成第四版教材128页第11题中的视图查询(10分,每小题5分)。
(1)
select PNO,sum(QTY) total
from V_SPJ
group by PNO
(2)select *
from V_SPJ
where SNO='S1'
用SQL语句完成视图的数据更新。(15分,每题5分)
给视图V_SPJ中增加一条数据。
1、先建立instead of触发器insert_spj:
create trigger insert_spj
on V_SPJ
Instead of insert
As
Begin
declare ***@sno char(10)
declare ***@pno char(10)
declare ***@qty int
select ***@sno=sno,***@pno=pno,***@qty=qty
from inserted
insert into spj(sno,pno,jno,qty)
values(***@sno,***@pno,'J1',***@qty)
end
2、增加数据:
insert
into V_SPJ
values('S3','P5',406)
3、结果:
修改视图V_SPJ中的任意一条数据的供应数量。
update V_SPJ
set QTY=666
where PNO='P3' and SNO='S2'
删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用instead of触发器实现)。
视图连接有多个基表,不能正常删除,建立触发器delete_spj如下:
create trigger delete_spj
on V_SPJ
Instead of delete
As
Begin
declare ***@sno char(10)
declare ***@pno char(10)
declare ***@qty int
select ***@sno=sno,***@pno=pno,***@qty=qt
数据库实验报告二 来自淘豆网m.daumloan.com转载请标明出处.