MySQL创建视图

发布时间 2023-06-13 15:36:30作者: 博客园里的蜗牛

创建视图的基础语法

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 表示用调用者的权限来执行