九、视图(MySQL读书笔记)

视图是一种虚拟存在的表。

1、创建视图需要 CREATE VIEW 权限,并且对于查询涉及的列有 SELECT 权限。如果使用 CREATE OR REPLACE 或者 ALTER 修改视图,还需要该视图的 DROP 权限

-- 创建视图
CREATE[ OR REPLACE ] [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH[CASCADE|LOCAL|CHECK OPTION]]

-- 修改视图
ALTER [ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH[CASCADE|LOCAL|CHECK OPTION]]

-- MySQL 视图定义有一些限制。比如 FROM 关键字后面不能包含子查询
-- WITH[CASCADE|LOCAL|CHECK OPTION] 决定了是否允许更新数据使用记录不再满足视图的条件
-- LOCAL 只要满足本视图的条件就可以更新
-- CASCADED 则必须满足所有针对该视图的所有视图的条件才可以更新(默认)

-- 删除视图(前提是必须具有 DROP 权限)
-- 支持一次性删除一个或多个视图
DROP VIEW [IF EXISTS] view_name [,view_name] ... [RESTRICT|CASCADE]

-- 视图查看
-- SHOW TABLES 同时包含 TABLE 和 VIEW
-- SHOW TABLE STATUS 也同时包含视图的信息
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']
-- 如果需要查看某个视图的定义
SHOW CREATE VIEW view_name

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

  • 包含以下关键字:聚合函数(SUM MIN MAX COUNT)、DISTINCT、GROUP BY、HAVING、UNION、UNION ALL
  • 常量视图
  • SELECT 中包含子查询
  • JOIN
  • FROM 一个不能更新的视图
  • WHERE 字句的子查询引用了 FROM 字句中的表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值