首页 > 代码库 > MySQL视图

MySQL视图

创建视图CREATE TABLE

视图定义注意事项:

  • SELECT不能包含FROM语句中的子查询
  • SELECT不能引用系统或用户变量
  • 在定义中不能引用TEMPORARY
  • 在视图定义中命名的表必须已存在
  • 视图定义的格式:CREATE [OR REPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW view_name[(column_list)] AS select_statement [WITH[CASCADED|LOCAL]CHECK OPTION]。事实上修改和删除视图于此类似,下面省略

修改视图ALTER VIEW


删除视图DROP VIEW


视图处理算法

  • 以上可选的ALGORITHM子句是对标准SQL的MySQL扩展,可取三个值MERGE(引用视图的语句与视图定义语句结合,使视图定义的语句取代部分引用视图的语句)/TEMPTABLE(视图结果置于TEMPTALE中,并使用它执行,表锁定释放的速度较快)/UNDEFINED(未定义,默认选项,MySQL自主选择算法,倾向于MERGE)
  • 视图算法在一下三种情况下可以是UNDEFINED:
  1. 没有指定ALGORITHM
  2. 显式指定ALGORITHM=UNDEFINED
  3. 临时表只能为ALGORITHM=UNDEFINED

可更新可插入视图

  • 不可更新视图
  • 不可插入视图

MySQL视图