实 验 报 告(实验九)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验内容:
针对实验数据库ShiYan,完成以下有关视图操作任务
1、分别用“企业管理器”和Transact_SQL语言为S表的SNO和
SNAME属性建立名为S_View的视图
SQL脚本程序如下:
create view S_View
as select sno,sname
from s
创建的视图如下:
2、为三建工程项目建立一个名为SanJian_View 的供应情况视
图,该视图包括供应商代码(SNO),零件代码(PNO),供应数量(QTY)。
SQL脚本程序如下:
第一次:create view SanJian_View
As select sno,pno,qty
from spj,j
where spj.jno=j.jno and jname ='三建'
查询结果:有视图,但没有没有数据
修改后:create view SanJian_View
as select sno,pno,qty
from spj,j
where spj.jno=j.jno and jname like'三%建' 运行结果正确,创建了符合条件的视图
创建的视图如下:
3、在SanJian_View中找出三建工程项目使用的各种零件代码及
其数量
SQL脚本程序如下:
select pno,sum(qty)
from SanJian_View
where jname like '三%建'
运行结果:列名jname 无效
参考脚本程序:
select pno,sum(qty)
from SanJian_View
group by pno
错误原因:视图中没有jname 这一属性列,故无效;由(2)知该视图是为三建工程建的了;不必再以“三建工程”为查询
条件。
运行结果:
4、在SanJian_View中找到供应商S1的供应情况。
SQL脚本程序如下:
select *
from SanJian_View
where sno='s1'
运行结果如下:
5、建立颜色为红色且重量大于10的零件视图P_View.
SQL脚本程序如下:
create view P_View
as select *
from p
where color = '红' and weight>10
创建的视图如下:
6、将供应商号以及它为所有工程所供应的零件总数定义为一个视
图S_Q_View.
SQL脚本程序如下:
create view S_Q_View
as select sno,sum(qty)
from spj
group by sno
运行结果:创建视图或函数失败,因为没有为第2 列指定列名。
修改后:
create view S_Q_View(sno,sumqty)
as select sno,sum(qty)
from spj
group by sno
错误原因:没有创建属性列列名,和表的查询一样,存在的属
性列才能查询
创建的视图如下:
7、在SPJ表上按属性SNO分组,求出每组在属性QTY上属性上
的最大值、最小值和平均值,且将它们置于视图RVE_View中,然后查询RVE_Viewz中供应商号为S4的记录。
参考SQL脚本程序:
create view
RVE_View(sno,qtyMax,qtyMin,qtyMvg)
as select sno,max(qty),min(qty),avg(qty)
from spj
group by sno
go
select *
from RVE_View
where sno='s4'
运行结果:
8、将S_View视图中供应商号为S5的供应商名修改为“为国”,
并查询S表的修改结果。
SQL脚本程序如下:
update S_View
set sname='为国'
where sno='s5'
go
select * from S
查询结果:
9、在S_View视图中插入一个新的记录,供应商号为S6,供应商名
为“华誉”,并查询S表的修改结果。
SQL脚本程序:
insert into S_View
values('s6','华誉')
select * from S
运行结果:
10、删除SanJian_View视图中供应商号为S1的相应记录。
SQL脚本程序如下:
delete
from SanJian_View
where sno='s1'
select * from spj
11、为视图S_View建立供应商名SNAME的视图
S_Sname_View。
SQL脚本程序如下:
create view S_Sname_View
as select sname
from S_View
运行结果:
12、将视图S_View改名为SS_View
SQL脚本程序如下:
exec sp_rename 's_view','ss_view','object' 运行结果:
13、分别用“企业管理器”和Transact_SQL将视图SS_View做如
下修改:在SS_View中新增一列,列名为CITY,并且要求CITY 属性值为“上海”。
SQL脚本程序如下:
alter view SS_View
as select sno,sname,city
from s
where city='上海'
运行结果:
14、分别用“企业管理器”和Transact_SQL语言删除视图SS_View
SQL脚本程序如下:
Drop view SS_View