zoukankan      html  css  js  c++  java
  • 浅谈MySQL视图的作用

    视图: view, 是一种不存在的虚拟表: 类似表但是不是表

    • 类似表: 视图有表结构
    • 不是表: 没有数据, 视图的数据来源都是基表

    视图根据基表的数量分为两种

    单表视图: 基表只有一个

    多表视图: 基表至少两个以上

    执行了视图的创建语句之后: 到底发生了什么?

    1、会在对应的数据库的表空间中产生一个视图(表)
    2、会在数据库对应存储文件夹下产生一个结构文件

    一、查看视图

    视图是虚拟表: 有类似的表结构: 凡是表的查看结构所能用的都可以用在视图上面

    像表一样查看: show tables;

    查看视图结构: desc 视图名字;

    查看创建语句

    还可以使用view关键字

    二、修改视图

    视图的修改与创建类似: 视图结构是从其他表获取过来: 修改的是视图的获取方式.
    alter view 视图名 as 新的select语句;

    三、删除视图

    drop view 视图名字;

    删除视图发生了什么?

    1、数据库没有视图结构
    2、数据库文件夹下也不存在对应的视图结构文件

    四、使用视图

    视图的使用: 与表一样的使用(主要用于查询数据)

    视图自身没有数据: 所有的数据来源都是基于原视图内部的查询语句.

    五、视图数据操作

    通过视图进行数据的写操作(增删改)

    多表视图(基表来源两个以上)不能插入数据, 也不能删除数据: 但是可以修改数据

    插入数据

    删除数据

    修改数据: 本身就是对基表进行操作

    单表视图操作: 可以进行增删改, 但是要实现新增: 前提是视图必须包含基表的所有不能为空的字段

    插入数据: 视图包含所有基表不为空的字段

    插入数据: 视图不包含全部的基表不为空的字段

    几乎不可能通过视图对表进行数据新增操作

    视图更新限制: with check option
    当视图原本可以查看到的数据,在经过视图修改的时候,如果修改之后,视图不能查出来: 更新失败

    视图修改: 效果验证

    六、视图算法

    理论上: 每一个视图都有算法

    视图算法有三种:

    • undefined: 未定义的,默认的: 但是该算法不是真正算法: 真正的执行算法只有temptable和merge: undefined是指交给系统自动选择(系统优先选择merge: 效率高)
    • temptable: 临时表,表示视图对应的select语句单独执行(先)
    • merge: 合并算法: 表示视图的对应的select语句不是单独执行, 而是与外部的select语句先进行合并, 后进行执行.

    视图: create view v1 as select语句;
    查询视图: select * from v1; -- select * from (select 语句) 别名;

    需求: 求出每个班年龄最大的一个学生.

    大部分的时候都会使用视图的默认算法: 但是如果涉及到视图与外部的select语句中有些五子句的关系顺序的时候: 一般使用temptable

    七、视图意义

    1、视图可以将复杂的SQL查询语句进行了封装: 简化了SQL语句: 从而提升了带宽的使用效率和网络间的传输效率

    2、视图的存在: 主要是为了对外提供数据支持(外部系统)

    • 隐藏基表字段(隐私)
    • 保证了数据库的数据安全(保护数据库内部的数据结构)
    • 可以灵活的控制对外的数据: 保证针对每个接口都有一个单独的数据支持: 增强了用户友好性.

    3、视图利于权限控制: 有助于数据库对权限进行管理.

  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1036. Boys vs Girls (25)
    1035 Password (20)
    1027 Colors in Mars (20)
    1009. Product of Polynomials (25)
    1006. Sign In and Sign Out
    1005 Spell It Right (20)
    1046 Shortest Distance (20)
    ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件
    IIS7.0上传文件限制的解决方法
  • 原文地址:https://www.cnblogs.com/chenjiacheng/p/6522323.html
Copyright © 2011-2022 走看看