MySQL创建视图
创建视图的基础语法
CREATE VIEW <视图名> AS <SELECT语句>
创建视图指定视图算法权限
DROP VIEW
IF EXISTS `xxxx`;
CREATE ALGORITHM = UNDEFINED
DEFINER = `xx`@`localhost`
SQL SECURITY DEFINER
VIEW `xxxx` AS
-
ALGORITHM: 指定视图的处理算法
-
UNDEFINED 未定义,交由MySQL自己选择
-
MERGE 合并算法:系统在执行select语句之前,会对视图的select和外部查询视图的select语句进行合并,然后执行(效率高)
-
TEMPTABLE 临时表算法:先执行视图的select语句,然后在执行外部查询Select语句
- 算法选择
如果视图的select语句中包含一个查询子句(order by,limit),而且很可能该 关键字 执行顺序 比外部查询语句 关键字 靠后 一定要使用使用temptable算法,其他情况下不用指定,默认即可。
- 算法选择
-
-
DEFINER: 指定视图创建者
-
SQL SECURITY: 指定视图查询数据时的安全验证方式
- DEFINER 表示按定义者拥有的权限来执行 (默认选择)
- INVOKER 表示用调用者的权限来执行