MySQL:视图
禁止码迷,布布扣,豌豆代理,码农教程,爱码网等第三方爬虫网站爬取!
视图#
假设我需要从 2 张表中提取信息,一种做法就是使用联结,并结合 WHERE 子句来过滤。不过如果这样的联结表我需要反复调用,并且我可能需要根据不同的条件进行过滤,这个时候代码量就会比较大,移植性比较差。可以直接将联结表制作为一张新的表,但是就需要为这张表的生存期进行考虑。总而言之,上述方法可能都不是很好的方法。
MySQL 5 后的版本支持视图,所谓视图就是一个虚拟的表,这个虚拟的表是针对动态检索数据时使用的。或者说,视图中不包含表中的任何列和数据,本质上是一个 SQL 查询,视图返回的数据就是基于这个查询得到的数据。对于表中数据的修改,由于本质是查询,返回的也会是修改后的数据。视图用法有什么优点呢?使用视图可以简化复杂的 SQL 语句的编写,对于语句的重用提供了方便。视图将使用表的一部分,而不是整张表,因此对于数据的保护和权限的赋予也较为方便,使用视图是也可以修改数据呈现的格式。
视图使用规则#
- 视图名是唯一的,不能和其他视图或表共用表名;
- 视图的创建没有数量限制,视图的创建需要有一定的权限;
- 视图可以嵌套使用,在这个时候就会产生更多的开销,特别是在使用了嵌套和复杂的过滤条件;
- 视图创建时可以使用 ORDER BY,使其支持排序;
- 视图不能支持索引、触发器、默认值;
视图基操#
视图创建#
CREATE VIEW viewname AS
创建语句的查看#
SHOW CREATE VIEW viewname;
删除视图#
DROP VIEW viewname;
- 视图允许各种更新操作,但是**分组、联结、子查询、合并、聚集函数和 DISTINCT 这些操作的视图不能更新。不过视图的主要功能是查询,更新操作较少使用。
复杂联结的视图#
视图可以将联结了多个表的查询,封装成为一个动态数据查询虚拟表。
视图格式化检索数据#
对于检索数据的格式化输出,可以封装成为一个动态数据查询虚拟表。
视图的过滤#
视图封装计算字段#
参考资料#
《MySQL Crash Course》[英] Ben Forta 著,刘晓霞 钟鸣 译,人民邮电出版社
学习MySQL出现问题Not allowed to return a result set from a trigger
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)