Mysql(9)_视图

    1   视图是什么?

               首先,视图是虚拟的表,是不存在的。若使用jdbc连接它,是会报错的,它本质上是sql语句

               其次,物理表是真实存在的表,占用内存空间。视图没有实际的物理记录。而表有。

               视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

               如果操作视图中的数据,有的时候基表的数据也会被修改的。如果加了某些特定限制,则不会修改原表的数据,甚至不能修改视图。          

              作用

                       1.1  简化查询,如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,此后查询此视图即可,简化复杂查询

                       1.2  视图本质上就是一条SELECT语句,所以当访问视图时,只能访问到所对应的SELECT语句中涉及到的列,对基表中的其它列起到安全和保密的作用,可以限制数据访问。 

    2   创建视图

         对于视图emp_list_view_single而言,如果修改这个视图中的记录,那么基表的数据也随着修改

         对于视图emp_list_view而言,是无法修改视图中的数据的。修改时会报错。但是如果修改基表数据,则这张视图的数据也会变化。

         or replace   有同名的就替换掉

use test01;
CREATE OR REPLACE VIEW emp_list_view AS
  SELECT e.deptno,e.ename,e.hiredate,e.sal,d.deptname from emp AS  e ,dept AS d
     WHERE e.deptno =d.deptno;
use test01;
CREATE OR REPLACE VIEW emp_list_view_single AS
  SELECT e.deptno,e.ename,e.hiredate,e.sal from emp AS  e ;
     

 3   查看视图 ,其实和查看表的命令一样

         

show create view emp_list_view  \G;
 show table status like 'emp' \G;
 show table status like 'emp_list_view' \G;

 

  

    4   删除视图 

DROP VIEW emp_list_view_single;

猜你喜欢

转载自www.cnblogs.com/sunnybowen/p/9977292.html
今日推荐