zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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 可以先执行视图的创建语句,把结果集行程视频中的临时表,然后再去查临时表