MySQL学习随笔--视图

视图概念

数据库中的视图指的是一个虚拟表,其内容由查询定义。同真实的表一样,视图也是由行与列构成的。视图的数据来源由SQL语句查询得到,不存储数据

视图创建方法

格式 :

create view 视图名称 as SQL查询

说明:

  1. create view //创建视图
  2. 视图名称 //也就是虚拟表的名称è表名
  3. as 后面跟查询语句,不可省略

查看视图创建语句

格式:

  1. show create view 视图名称
  2. show create view 视图名称 G

注意:

  1. G表示列名垂直显示
  2. 不加G列以水平显示
  3. G后面不能加分号

查看视图结构

desc 视图名称

显示所有视图

格式:

select * from information_schema.views ;

说明:

所有的视图均存储在information_schema的views表中

修改视图

格式:

  1. alter view 视图名称 as SQL查询
  2. create or replace view 视图名称 as SQL查询 //有该视图则修改,无该视图则创建

更新视图中数据

格式:

update 视图名称 set 字段名称 = 字段值 where[条件] //与正常表的更新相同

注意:

视图修改的是原始表中的数据,所以一般不通过视图修改基表

删除视图

drop view 视图名称

视图的算法

概述:

指的是一个视图在什么时候执行,依据哪些方式执行

执行方式:

  1. merge合并算法

    合并的执行方式,每当执行的时候,先将视图的sql语句与外部查询视图的sql语句,合并在一起,最终执行

    格式:

    create algorithm = merge view 视图名称 as SQL查询语句

  2. temptable临时表算法

    先执行视图再执行其他操作的查询

    临时表模式,每当查询的时候,将视图所使用的select语句生成一个结果的临时表,再在当前的临时表内进行查询

    格式:

    create algorithm = temptable view 视图名称 as SQL查询

  3. 通过实例理解merge ,temptable算法的差异

视图的应用场景

  1. 通过视图简化sql语句
  2. 隐藏某些字段,保护信息

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   


 

原文地址:https://www.cnblogs.com/EdwinChan/p/7399873.html