mysql系列教程(十三)—–mysql视图

MySQL

今天给大家介绍一下mysql中的视图,基础知识可以翻看之前的文章哦!

什么是视图?

mysql从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了SQL逻辑,不保存查询结果。

应用场景

  • 多个地方用到同样的查询结果
  • 该查询结果使用的SQL语句较复杂

代码示例

CREATE VIEW my_v1
AS
SELECT studentname,majorname
FROM student s
INNER JOIN major m
ON s.majorid=m.majorid
WHERE s.majorid=1;

视图的好处

  • 重用SQL语句
  • 简化复杂的SQL操作,不必知道它的查询细节
  • 保护数据,提高安全性

创建视图

create [or replace] view view_name
As select_statement
[with|cascaded|local|check option]

修改视图

alter view view_name
As select_statement
[with|cascaded|local|check option]

视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能够更新的。

  • 包含以下关键字的的SQL语句:分组函数、distinct、group by、having、union或者union all
  • 常量视图
  • select中包含子查询
  • join
  • from 一个不能更新的视图
  • where子句的子查询引用了from子句中的表

删除视图

用户可以一次删除一个或者多个视图,前提是必须有盖世兔的drop权限

drop view [if exists] view_name,view_name …[restrict|cascade]

查看视图

show tables;

如果想要查询某个视图的定义,可以使用show create view命令进行查看:

show create view view_name \G

今天的分享就到这里了,欢迎各位小伙伴指正补充!

发表评论