C3E6-视图的定义和操作 - 1 -

更新时间:2024-03-03 04:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C3E6:视图的定义和操作(1)

一、实验目的:

理解视图的概念,掌握视图的使用方法。

二、实验过程

1. 对应C3E1中建立的scdb数据库,按如下要求自行设计视图:

1)基于单个表按投影操作定义视图。

举例:定义一个视图用以查看所有学生的学号、姓名和年龄。

createviewv1(sno,sname,sage)asselectsno,sname,sagefromstudent;

2)基于单个表按选择操作定义视图。

举例:定义一个满足性别=’男’的学生的所有信息的视图。 createviewv2asselect*fromstudentwheressex='男'; 3)基于多个表根据连接操作定义视图。

举例:定义一个视图用以查看所有学生的学号、姓名、课名、成绩。

createviewv3(sno,sname,cname,grade)

asselectstudent.sno,sname,cname,gradefromstudent,course,sc wherestudent.sno=sc.snoandsc.cno=course.cno;

4)基于多个表根据嵌套查询定义视图。

举例1:定义一个比所有’cs’系的学生年龄都小的学生的信息的视图

createviewv4asselect*fromstudent wheresage<(

SELECTMIN(sage)FROMstudent WHEREsdept='cs' )

举例2:定义一个视图用以查看年龄大于该系平均年龄的学生的学号、姓名。(带有with check option)

createviewv5asselectsno,snamefromstudent

wheresage>(

SELECTavg(sage)FROMstudent wheresdept=student.sdept )withcheckoption

5)定义含有虚字段(即基本表中原本不存在的字段)的视图。 举例:定义一个视图用以查看所有学生的学号、姓名、出生年。

createviewv6(sno,sname,birthday)as

selectsno,sname,DATEPART(yyyy,GETDATE())-sage fromstudent;

2. 分别在定义的视图上进行查询、插入、更新和删除操作,分情况(查询、更新)讨论哪些操作可以成功完成,哪些不能成功完成,并分析原因。

三、实验报告要求:

1、在实验报告中要给出上述任务的视图定义语句;(注:实验报告上写出1-5的SQL语句) 2、分情况讨论哪些操作可以成功完成,哪些不能成功完成。

查询操作:举出一个进行查询操作的例子。更新操作:更新操作包含插入、更新、删除,针对不能成功完成更新操作的情况举出两个例子,并分析原因。

本文来源:https://www.bwwdw.com/article/nw2a.html

Top