数据库实验六--视图的创建、查询和删除

什么是视图?
1)虚表,是从一个或几个基本表(或视图)导出的表。
2)只存放视图的定义,不存放视图对应的数据。
3)基表中的数据发生变化,从视图中查询出的数据也随之改变。
视图的优点
1)简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。
2)安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。
一、创建视图
语句格式

CREATE  VIEW 
         <视图名>  [(<列名>  [<列名>])]
   AS  
         <子查询>

二、删除视图
语句的格式:

DROP  VIEW  <视图名>

题目

涉及的表格
1、teacher表
数据库实验六--视图的创建、查询和删除_第1张图片
2、student表
数据库实验六--视图的创建、查询和删除_第2张图片
3、course表
数据库实验六--视图的创建、查询和删除_第3张图片
4、score表
数据库实验六--视图的创建、查询和删除_第4张图片
1、查询95031班且姓“王”的同学的学号和姓名。

select sno,name
from student 
where name like '王%' and class = '9503'

2、查询以字符j开头且课程名中仅四个字符的课程号和课程名。

select cno,cname
from course
where cname like 'j____'

3、查询以字符“java_“开头课程的课程名以及该门课的授课教师编号。

select tno,cname
from course
where cname like 'java_%'

4、查询课程编号中包含数字4的课程的课程名和课程号。

select cname,cno
from course
where cno like '%4%' or cno like '4%' or cno like '%4'

5、查询最高成绩在80-90分之间的课程名。

select cname
from course
where cno in(
	select cno
	from score
	group by cno
	having max(grade) between 80 and 90
)

6、为95031班级学生建立一个视图V1,以方便随时查询该班学 生的相关情况。(学号 姓名 年龄 班级)。

create view V1(学号,姓名,年龄,班级)
	as
	select sno,name,2020-birth,class
	from student
	where class = '95031'

7、建立一个95033班且选修了3105课程的学生视图V2(学号 姓名 课程号 成绩)

create view V2(学号,姓名,课程号,成绩)
	as 
	select score,sno,name,cno,grade
	from student,score
	where class = '95033' and cno = '3105'

8、建立一个95033班及选修了3105课程且该门课程在90分以上的学生视图V3(学号 姓名 课程号 成绩)

create view V3(学号,姓名,课程号,成绩)
	as
	select score.sno,name,cno,grade
	from student,score
	where class = '95033' and cno ='3105' and grade > 90

9、建立一个电子工程系老师的视图V4(tno tname depart)

create view V4(tno,tname,depart)
	as
	select tno,tname,depart
	from teacher
	where depart = '电子工程系'

10、查询电子工程系老师所授课程的课程号和课程名。
该题查询所涉及的表中须包含V4

select cno,cname
from V4,course
where V4.tno = course.tno

11、同时删除视图V1,V2

drop view V1,V2

你可能感兴趣的:(数据库sql,sql)