数据库笔记10:创建与管理视图
【摘要】
/***********************
第十单元 创建与管理视图
************************/
/*
为什么需要视图?参看教材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)