第一部分、SQL Server基础-视图

1.3 视图

         在前面的连接查询中,我们将系别、学生、课程、学生选课这四个表通过主外键关系连接起来,并以派生表的形式对连接的结果进行了分组统计查询,SQL语句如下所示:

select sdeptName,Cname,avg(grade) as avgGrade
from
(
    select d.sdeptName, ,s.sno,s.sname,c.Cname,sc.grade
    from t_sdept d join t_student s on 
    d.sdeptId = s.sdept join t_sc sc on sc.sno 
    = s.sno join t_Course c on c.cno=sc.cno
) as t
group by sdeptName,Cname
order by sdeptName

如果连接四个表的查询结果需要经常使用,则可以将连接的结果定义为视图,从而保存查询结果的定义。将连接查询定义为视图的SQL语句为:

create view v_StdDetails as
(
    select d.sdeptName, ,s.sno,s.sname,c.Cname,sc.grade
    from t_sdept d join t_student s on 
    d.sdeptId = s.sdept join t_sc sc on sc.sno 
    = s.sno join t_Course c on c.cno=sc.cno
)

视图定义完成后,上述的分组查询语句可以写为:

select sdeptName,Cname,avg(grade) as avgGrade
from v_StdDetails 
group by sdeptName,Cname
order by sdeptName

         视图是虚表,只是保存查询的定义,当查询依赖的基本表中是数据发生变化时,视图的结果也会随之发生变化。视图一般就用于查询,虽然部分视图可以更新,但一般不这样做。还可以以图形化的方式来定义视图,步骤如下:

         1、在SQL Server Management Studio中展开StdMng2020数据库,在“视图”处,右键单击,选择“新建视图”,在出现的对话框中选择系别、学生、课程、学生选课这四个表,如图1.XX所示

图1.XX 选择表

 

posted @ 2020-07-27 20:41  llz730221  阅读(61)  评论(0)    收藏  举报