MySQL-视图简介

1、什么是视图

视图(view)是一种有结构(有行有列)但是没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源)。

2、创建视图+查看视图

  • 基本语法:     

   create view 视图名字  as  select 语句 --select 语句 可以是普通查询、可以是连接查询、可以是联合查询、可以是子查询

   查看视图语法和 查看表的语法一样。

  • 创建单表视图:基表只有一个 ,效果如图所示

   

  •    创建多表视图 :基表来源至少两个 ,效果如图所示

   

3、查看视图结构

 查看视图的结构 :show create view  视图名\g;

4、修改视图

视图本身不可修改,但视图的来源可以修改, 修改视图就是修改本身的来源语句(select 语句)

语法:alter view  视图名字 as 新的 select 语句。效果如图所示:


5、删除视图

删除视图比较简单,删除视图后对于基表没有影响 如图所示。

语法:drop view 视图名 ;


6、视图意义

  • 视图可以节省SQL语句:将一条复杂的查询语句使用视图进行保存,以后可以直接对视图进行操作。
  • 数据安全:视图操作主要是针对查询的,如果对视图结构进行处理(删除),不会影响基表数据(相对安全)
  • 视图往往是在大项目中使用,而且是多系统使用,可以对外提供有用的数据,隐藏关键(无用)的数据,数据安全。
  • 视图可以对外提供友好性,不同的视图提供不同的数据,对外好像专门设计。
  • 视图可以更好(容易)的进行权限控制。

7、视图算法

视图算法:系统对视图以及外部查询视图的select 语句的一种解析

视图算法分为三种

  • Undefined 未定义(默认的)这不是一种实际使用算法,是一种推卸责任的算法,告诉系统,视图没有定义算法,系统自己看着办。
  • Temptable :临时表算法,系统应该先执行视图的select 语气,后执行外部查询语句。
  • Merge :合并算法 :系统应该先将视图对应的select 语句与外部查询视图的select语句进行合并,然后执行(效率高:常态)

   在视图创建指定算法

语法: create algorithm=指定算法 view 视图名 as select语句

视图算法选择

如果视图中的select语句中包含一个查询子句(五子句)而且很有可能顺序比外部的查询语句要靠后,一定要使用Temptable 算法

其他情况可以不用指定(默认即可)

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值