mysql:视图view
mysql 视图 View
2023-09-27 14:27:10 时间
原因:
经常需要的一个结果集,我们想存起来,而不是每一次都去用from 子查询,我们可以创建一个视图。
视图:
又叫虚拟表,是 sql 的查询结果
有什么用:
- 权限控制,比如某几个列允许用户查询
- 简化复杂的查询
视图能否增删改:
如果视图的每一行是与物理表一一对应的,则可以
如果 view 的某一行是物理表多行计算得到的结果,view 不可更新,比如物理表中求平均值得到view表,现在改view表中的平均值则会影响物理表中的所有行,这样不可以
语法
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
例子
create view as
视图的algorithm(算法)
视图:存储的都是语句
查视图的过程:
merge:
对于简单查询形成的 view,再对 view 查询时,如 where,order 等等,
可以把建视图 + 查视图的语句 ====> 合并为查物理表的语句
自己的话:相当于查视图的语句其实是查的物理表,只不过是将建视图的语句和查视图的语句合成了。这种算法叫 merge(合并)
temptable:
视图的语句本身比较复杂,很难再和查询视图的语句合并,mysql 可以先执行视图的创建语句,把结果集行程视频中的临时表,然后再去查临时表
相关文章
- MYSQL企业常用架构与调优经验分享
- mysql的视图
- MySQL碎碎念
- MySQL指定mysqld启动时所加载的配置文件
- MySQL——修改视图
- MySQL视图 definer & invoker 权限
- Mysql 视图
- 2022-12-15 mysql列存储引擎-耗尽磁盘空间-记录
- 大意了,一次MySQL分页导致的线上事故...
- MySQL 查询 limit 1000,10 和 limit 10 速度一样快吗? 深度分页如何破解
- MySQL慢日志实践
- 深入理解MySQL Ⅱ -- SQL优化、视图、存储过程与触发器
- eggjs 查询 mysql 返回年月日里包含YYYY-MM-DDT16:00:00.000Z怎么处理?
- MySQL复合索引探究
- 通过MYSQL命令行直接建数据库
- MYSQL错误解决:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- MySQL:视图
- 性能测试之mysql监控、优化