数据库笔记10:创建与管理视图

举报
howard2005 发表于 2021/12/30 01:24:32 2021/12/30
【摘要】 /***********************  第十单元 创建与管理视图 ************************/ /*  为什么需要视图?参看教材P198~200  视图:是基于一张或多张表的虚拟表(Virtual Table) */ ...
/***********************
 第十单元 创建与管理视图
************************/

/*
 为什么需要视图?参看教材P198~200

 视图:是基于一张或多张表的虚拟表(Virtual Table)
*/

/*
 任务:创建视图

 语法格式:
     CREATE VIEW 视图名
     [WITH ENCRYPTION]
     AS
       查询语句(SELECT语句)
*/

--1. 创建一个名为V_Student的视图,只显示班级号为20000001的学生信息

CREATE   VIEW   V_Student
AS
   SELECT   *
   FROM   Student
   WHERE   ClassNo = '20000001' ;

--说明:本语句的作用就是将AS后面的SQL查询结果保存到指定的视图里

--2. 查看视图V_Student的内容

--(1)命令方式

SELECT   *   FROM   V_Student ;

--(2)图形界面方式

-- 选中dbo.V_Student,单击右键,在快捷菜单里选择【打开视图】

--3. 将视图V_Student的列标题改为中文

ALTER   VIEW   V_Student ( 学号 ,  班级编号 ,  学生姓名 ,  选课密码 )
AS
   SELECT   StuNo ,   ClassNo ,   StuName ,   Pwd
   FROM   Student
   WHERE   ClassNo = '20000001' ;

--注意:视图名后面的标题列表一定要和SELECT子句的字段列表要一一对应。


--4. 再次查看视图V_Student的内容

SELECT   *   FROM   V_Student ;

--5. 针对Course表,创建视图V_CourseSub,只显示课程名称与学分两个字段

CREATE   VIEW   V_CourseSub ( 课程名称 ,  学分 )
AS
   SELECT   CouName ,   Credit
   FROM   Course ;

--6. 查看视图V_CourseSub的内容

SELECT   *   FROM   V_CourseSub ;

--7. 针对Student、StuCou与Course表,创建视图V_StuCou,显示学生选课信息,包含学号,姓名,课程名称

CREATE   VIEW   V_StuCou ( 学号 ,  姓名 ,  课程名称 )
AS
   SELECT   Student . StuNo ,   StuName ,   CouName
   FROM   Student   INNER   JOIN   StuCou   INNER   JOIN   Course
     ON   StuCou . CouNo = Course . CouNo   ON   Student . StuNo = StuCou . StuNo ;

--8. 查看视图V_StuCou的内容

SELECT   *   FROM   V_StuCou ;

--9. 统计各系部开设选修课门数,将统计结果保存为视图V_CouNumByDept

CREATE   VIEW   V_CouNumByDept
AS
   SELECT   DepartNo  系部编号 ,   COUNT (*)  选修课门数
   FROM   Course
   GROUP   BY   DepartNo ;
  
--10. 查看视图V_CouNumByDept

SELECT   *   FROM   V_CouNumByDept ;

--课堂练习:创建视图V_CouNumByDept2,显示系部编号、系部名称与选修课门数三列

CREATE   VIEW   V_CouNumByDept2
AS
   SELECT   Department . DepartNo  系部编号 ,   DepartName  系部名称 ,   V_CouNumByDept . 选修课门数
   FROM   Department   INNER   JOIN   V_CouNumByDept   ON   Department . DepartNo = V_CouNumByDept . 系部编号 ;

--11. 查看视图V_CouNumBeDept2的内容

SELECT   *   FROM   V_CouNumByDept2 ;

/*
  任务、修改视图

  语法格式:
  ALTER VIEW 视图名
     [WITH ENCRYPTION]
     AS
       查询语句(SELECT语句)  
*/

--1. 将视图V_CouNumByDept2进行加密

ALTER   VIEW   V_CouNumByDept2
WITH   ENCRYPTION
AS
   SELECT   Department . DepartNo  系部编号 ,   DepartName  系部名称 ,   V_CouNumByDept . 选修课门数
   FROM   Department   INNER   JOIN   V_CouNumByDept   ON   Department . DepartNo = V_CouNumByDept . 系部编号 ;

/*
  任务:重命名视图
*/

--1. 将视图V_CouNumByDept2名称修改为“系部选修课门数视图”

--(1)图形界面方式

--在Xk数据库的视图下选中dbo.V_CouNumByDept2,单击右键,选择【重命名】,输入新名称,敲回车即可

--(2)命令方式

sp_rename   'V_CouNumByDept2' ,   '系部选修课门数视图'

/*
  任务:删除视图
*/

--1. 将视图“系部选修课门数视图”删除

DROP   VIEW  系部选修课门数视图 ;

文章来源: howard2005.blog.csdn.net,作者:howard2005,版权归原作者所有,如需转载,请联系作者。

原文链接:howard2005.blog.csdn.net/article/details/79451246

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。