数据库--视图的定义和使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库--视图的定义和使用相关的知识,希望对你有一定的参考价值。
一、学习目的
加深对视图的理解,熟练视图的定义、查看、修改等操作
二、实验环境
Windows 11
Sql server2019
三、实验内容
学生(学号,年龄,性别,系名)
课程(课号,课名,学分,学时)
选课(学号,课号,成绩)
(1)根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩
(2)观察基本表数据变化时,视图中数据的变化。
(3)利用视图,查询平均成绩最高的学生。
四、SOL代码
(1)根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩
go
create view S_c(课名,选课人数,平均成绩)
as
select cname 课名,count(*) 选课人数,avg(grade) 平均成绩
from ce, xe where ce.cnum=xe.cnum
group by ce.cname
go
select * from S_c
go
(2)观察基本表数据变化时,视图中数据的变化
select * from S_c
(3)利用视图,查询平均成绩最高的学生
create view S_grade(学生姓名,平均成绩)
as
select stu.sname,avg(grade) as平均成绩
from stu,xe
where stu.sno= xe.sno
group by stu.sname
go
select *from S_grade
go
select 学生姓名 from S_grade
where 平均成绩=(select max(平均成绩) from S_grade)
五、结果分析
SQL语言用CREATE VIEW命令建立视图,其格式为:
CREATE VIEW <视图名> [(<列名> [,<列名>] …)]
AS<子查询>
[WITH CHECK OPTION] ;
其中,子查询可以是任意的SELECT语句,是否可以含有ORDER BY子句和DISTINCT短语,则取决于具体系统的实现;WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。删除视图语句:DROP VIEW <视图名>[CASCADE];同时还有插入(INSERT),修改(UPDATE)数据。
六、小结
组成视图的属性列名或者全部省略或者全部指定,没有第三种选择。如果省略了视图的各介属性列名,则隐含该视图由子查询中SELECT子句目标列中的诸字段组成。但在下列三种情况下必须明确指定组成视图的所有列名:
(1)某个目标列不是单纯的属性名,而是聚集函数或列表达式:(2)多表连接时选出了几个同名列作为视图的字段:
(3)需要在视图中为某个列启用新的更合适的名字。
以上是关于数据库--视图的定义和使用的主要内容,如果未能解决你的问题,请参考以下文章
SQL:查询每门课程的课程名、选课学生姓名及其学号,选课人数
c#部分---用结构体的题目- //请输入班级人数,输入每个人的学号,姓名,和语文分数数学分数和英语分数(要求使用结构体)