MySQL8 存储视图是一种存储对象类型,一般可以理解为虚拟表或逻辑表,返回类似于行和列组成的数据,通过视图查询的数据是动态变化的,存储视图名称和表名称共享命名空间,所以要遵守表的命名规则。
在 SQL 中使用存储视图有很多优点:
在使用存储视图时可能会影响查询性能,且不支持在存储视图上创建索引,如果存储视图引用的相关表结构变化时,您可能也需要同时修改一遍对应的存储视图定义。
MySQL8 支持三种算法的存储视图,分别是:merge、temptable、undefined:
MySQL8 存储视图约束规则:
首先,我们通过编写一个简单的存储视图,来介绍存储视图的语法。
create algorithm=merge view try8_view as select try8_id, try8_name from try8_tb where try8_name = 'ok' with check option;
存储视图关键字说明:
# 查看字段简写版 desc try8_view; # 查看字段完整版 describe try8_view; # 查看详细的内容 show create view try8_view; # 查询系统表定义 select * from information_schema.views where table_name = 'try8_view';
select * from try8_view;
drop view if exists try8.try8_view;
MySQL8 提供两种修改视图的语句,分别使用 alter view 和 create or replace view。
# 方式一:使用关键字 alter 修改存储视图 alter algorithm=merge view try8_view as select try8_id, try8_name from try8_tb where try8_name = 'ok' with check option; # 方式二:使用关键字 create or replace view 修改存储视图 create or replace algorithm=merge view try8_view as select try8_id, try8_name from try8_tb where try8_name = 'ok' with check option;
MySQL8教程 - MySQL8 存储视图,介绍 MySQL 和 MySQL8 数据库,从 MySQL8 存储视图概念开始,逐步到 MySQL8 存储视图示例等,通篇实用易懂,让 MySQL8 入门更加快速和简单。
《MySQL8教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。