欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql 数据库 第十二节 视图基础

程序员文章站 2022-06-01 17:06:28
...

                                                         视图 View 基础

1.什么是视图

视图是一个虚拟表, 其内容由 查询产生

与真实的表一样,包含 行 和 列

行和列数据 来源于定义 视图查询所 引用的表, 并且在引用 视图的时候 动态生成。

简单来说, 视图是由 Select 结果集 组成的 表

2. 视图的特性

不储存具体的 数据(基础表 数据发生变化,视图结果也会跟着发生改变)

可以跟基本表 一样, 进行 增删改查 操作(增删 改 有条件限制)

视图 一般用作查询

3.视图作用

安全性: 创建一个视图, 定义好该视图 所操作的数据。 之后将 用户权限 与 视图绑定,这样的方式 是使用到了授权特征,

查询性能的提升

提高了数据的独立性

 

 

 

创建 视图

Create View 语法:

CREATE

Create View 参数:

ALGORITHM:

  • MERGE        :处理方式为替换方式,可以进行更新真实表中的数据

  • TEMPTALE   :具化方式,由于数据保存在历史表中,所以不可以进行更新操作

  • UNDEFIND   :没有定义 ALGORITHM  参数, MySql 更倾向于 选择替换方式,应为他更加有效

WITH CHECK OPTION :更新数据时 不能插入 或 更新不符合视图限制条件的记录

LOCAL和 CASCADED  :  可选参数, 决定了 检查测试的范畴, 默认值为 CASCADED

视图机制:

替换式:操作视图时,视图名直接被视图定义给替换掉, 先替换 SQL 语句,将视图公式 替换后,整体处理替换后的SQL,

具化式:Mysql先得到了 视图执行的结果, 该结果形成一个中间 结果 暂时存在内存中, 先处理视图结果,然后处理外面的查询需求

 

视图不可更新的部分

  1. 聚合函数
  2. DISTINCT 关键字
  3. GROUP BY
  4. HAVING
  5. UNION
  6. FROM 句中 包含多个表
  7. SELECT 语句中引用了不可 更新的视图语句
  8. 只要视图当中 数据不是来自于 基表,就不能够直接修改

 

 CREATE ALGORITHM = MERGE VIEW view_emp as SELECT * FROM emp;
 SELECT * FROM view_emp;
 
 CREATE ALGORITHM = TEMPTABLE VIEW view_emp as SELECT * FROM emp;
 SELECT * FROM view_emp;
 
 DROP VIEW view_emp;
 
 
 SELECT * FROM emp;