MySQL 视图

Ewan之前研究mysql实际操作,个人感悟拿来共享一下。
1.视图定义

视图是从一个或几个基本表导出的虚拟表,意思就是说视图只是依附在基本表上的虚拟表。

2.视图与基本表的联系与区别

视图是基本表的查询结果,基本表的数据变了,视图的结果自然就改变了。
当然试图改变也会影响到基本表。视图的增删改会影响基本表,但视图不总是能增删盖的哦。在视图的数据与基本表的数据一一对应的时候可以修改,但对于视图的insert应注意,视图必须包含基本表的中没有的默认值的列。

3.视图的优点

简化sql查询语句
可以更好的进行权限把控
适合大数据分表时使用 虽然大数据分表有很多种方法,但视图无疑是个不错的选择哦

4.视图的基本语法
create view (视图名) as (select 语句); 是不是很简单啊?但实际应用起来就不是表面这样喽
5.视图的操作

修改视图
alert view (视图名) as(select 语句);
删除视图
drop view (视图名);

6.使用algorithm属性优化mysql视图

在这里algorithm有3个设置可优化视图,分别是merge,temptable,undefined
格式为:algorithm = merge/temptable/undefined
merge算法使mysql将执行视图时传入的任何字句合并到视图的查询定义中,换句话说,视图定义和select查询语句会合并成新的查询语句。
当视图指定temptable算法时,创建视图的同时创建视图相对应的temporary表,然后查询视图的语句会从该临时表查取数据。
merge和temptable区别就是:merge最终查的是基本表,而temptable查的是虚拟表。merge算法效率要比temptable要高。
undefined:顾名思义,为定义,系统会自动选择。

7.查看视图信息

可以使用:show create view (视图名)
可以使用:DESCRIBE(视图名)
可以使用:information_schema数据库包括一个views表,包含一下内容:
select from information_schema.views\G 注意是G要大写*

mysql视图学习至此告一段落,以上内容如有语法结构错误,请指出或给予相应的解决方案。

坚持原创技术分享,您的支持将鼓励我继续创作!