MySQL必知必会 学习笔记 第二十二章 使用视图

MySQL 5添加了对视图的支持。

视图是虚拟的表。它包含的是一个查询的结果,它本身不含数据,只是用来查看存储在别处的数据的一种设施,视图返回的数据是从其他表中检索出来的,在添加或更改这些表中的数据时,视图将返回改变过的数据。

视图的应用:
1.重用SQL语句。
2.简化复杂的SQL操作,编写查询后,可以方便地重用它而不必知道它的基本细节。
3.使用表的组成部分而不是整个表。
4.保护数据,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。
5.更改数据格式和表示,视图可返回与底层表的表示和格式不同的数据。

视图创建后,可以像表一样使用,可对视图执行SELECT操作,过滤和排序数据,将视图联结到其他视图或表,甚至能添加和更新某些数据。

因为视图不包含数据,每次使用视图时,都必须处理查询执行时的任一个检索。当使用了多个联结和过滤创建了复杂的视图或嵌套了视图时,性能可能会下降很多。部署大量使用视图的应用前,应进行性能测试。

使用视图的规则:
1.视图名必须唯一,视图名和表名共享命名空间。
2.可创建的视图数无限制。
3.为创建视图,必须有足够访问权限。
4.视图可以嵌套,即可利用从其他视图中检索出数据的查询构造一个视图。
5.ORDER BY可用于视图中,如果从该视图中检索数据的SELECT中也含有ORDER BY,则视图中的ORDER BY被覆盖。
6.视图不能索引,也不能有触发器或默认值。
7.视图可以和表一起用,如一起联结。

使用视图:
1.视图创建:

CREATE VIEW viewName AS
SELECT语句

2.使用SHOW CREATE VIEW viewName;查看创建视图的语句。
3.删除视图DROP VIEW viewName
4.更新视图时,可以先DROPCREATE,也可以使用CREATE OR REPLACE VIEW(如果该视图不存在,则创建该视图,如果该视图存在,则替换原有视图)。

如果从视图检索数据时使用了一条WHERE子句,则此WHERE子句会与视图中的WHERE子句(创建视图时的WHERE)自动组合。

部分视图可更新,对视图使用INSERT、UPDATE、DELETE时将更新其基表。

如果MySQL不能正确地确定被更新的基数据,则不允许更新视图,如果视图定义中有以下操作,则不能进行视图的更新:
1.分组。
2.联结。
3.子查询。
4.并。
5.聚集函数。
6.DISTINCT。
7.计算(导出)列。

可能MySQL在版本5后会取消部分上述限制。

一般应将视图用于检索而非更改。

posted @   epiphanyy  阅读(18)  评论(0编辑  收藏  举报  
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示