4.6学习总结
数据库原理第五章 视图
5.1视图概念
视图:由基本表构成的虚表(满足用户需求的表结构)
视图是查询语句产生的结果
以多种角度观察数据库中数据的重要机制。象一个窗口,透过它可以看到用户感兴趣的数据及其变化。
视图的三特点 虚表,是从一个或几个基本表(或视图)导出的表 数据字典只存放视图的定义,不存放视图对应的数据 基表中的数据变化,从视图中查询出的数据也随之改变
5.2 定义视图
CREATE VIEW 视图名 (视图列名表) AS 查询语句 说明: 查询中通常不含ORDER BY和DISTINCT语句。 视图列名缺省时,默认与查询列名相同。 查询的源表可以是已定义的视图。
下列三种情况下不能省略视图列名: 某个目标列是聚集函数或表达式列; 多表连接查询时,在查询列表中有同名列; 希望用新的更合适的列名。 视图的列名序列或者全部省略,或全部指定。
DBMS执行CREATE VIEW语句时只是把视图定义存入数据字典,并不执行其中SELECT语句。 在对视图查询时,按视图的定义从基本表中将数据查出。
定义单源表视图:
视图取自一个基本表的部分行、列,视图行列与基本表行列对应, 一般可看可改。
定义多源表视图:
子查询源表多于一个, 一般可看不可改。
在已有视图上定义新视图:
视图的数据源可以来自其它的视图。
定义带表达式的视图 :
定义基本表时,为减少数据冗余,表中只存放基本数据。 由基本数据经过各种计算派生出的数据一般不存储。 由于视图中的数据并不实际存储,因此,可以在在视图中设置一些附加列来保存这些派生的数据。 由于这些附加列在基本表中并不实际存在,因此称这些列为虚拟列。 称包含虚拟列的视图为带表达式的视图。
含分组统计信息的视图:
子查询中含GROUP BY子句,视图行列由基本表行列得到, 数据只看不可改。
5.3 通过视图查询数据
视图定义好后,可以对其进行查询, 通过视图查询数据同基本表一样
更新视图的限制:
一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对基本表的更新。
修改视图:
格式: ALTER VIEW 视图名 (列名) AS 查询语句
删除视图:
语句的格式: DROP VIEW 视图名; 该语句从数据字典中删除指定的视图定义, 如果该视图上还导出了其他视图,使用CASCADE级联删除语句,把该视图和由它导出的所有视图一起删除 , 删除基表时,由该基表导出的所有视图定义都必须显式地使用DROP VIEW语句删除 .
5.5 视图的作用
1.简化数据查询语句
2.使用户能从多角度看待同一数据
3.提高了数据的安全性
4. 提供了一定程度的逻辑独立性
5.适当的利用视图可以更清晰的表达查询
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本