zoukankan      html  css  js  c++  java
  • MySQL-视图View

    定义:

    1.视图是从若干基本表和(或)其他视图构造出来的表。

    2.在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据

    3.在用户使用视图时才去求相对应的数据。所以视图被称作“虚表”,,“虚拟表”.

    作用:

    1.可以限制对数据的访问,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。

    2.可以使复杂的查询变的简单。在编写查询后,可以方便地重用它而不必知道他的基本查询细节。

    3.提供了对相同数据的不同显示

    视图的更新:

    1.对视图进行insert update delete将会影响其基表,因为视图中不包含任何数据

    2.不是所有视图都可以更新(可能引起数据紊乱或者数据无意义)

    有下列内容之一,视图不能做DML操作:

      ①select子句中包含distinct

      ②select子句中包含组函数

      ③select语句中包含group by子句

      ④select语句中包含order by子句

      ⑤select语句中包含union 、union all等集合运算符

      ⑥where子句中包含相关子查询

      ⑦from子句中包含多个表

      ⑧如果视图中有计算列,则不能更新

      ⑨如果基表中有某个具有非空约束的列未出现在视图定义中,则不能做insert操作

    3.不是迫不得已,不要对视图进行更新操作,因为效率低。视图主要用于查询

    创建视图:

       或者写好后面的查询SQL,使用Navicat创建

      创建视图的SQL最后面加上with read only:表示只读视图,不可增删改

    查询视图:select * from  视图名称;

    删除视图:drop view 视图名称        删除视图不会导致数据丢失,因为视图不存数据,数据在基本表

    更多视图详情点击

  • 相关阅读:
    最大流EK算法/DINIC算法学习
    hdu-3065-AC自动机
    51nod-1636-dp
    nyoj-1316-二分
    HDU-4510-日期
    HDU-2896-AC自动机
    51nod-1385-贪心-构造
    SpringMVC实现Restful风格的WebService
    SpringMVC使用中遇到的问题总结
    Boostrap(3)
  • 原文地址:https://www.cnblogs.com/elian91/p/15338393.html
Copyright © 2011-2022 走看看