View

视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全

优点

简单化,数据所见即所得

安全性,用户只能查询或修改他们所能见到得到的数据

逻辑独立性,可以屏蔽真实表结构变化带来的影响

缺点

性能相对较差,简单的查询也会变得稍显复杂

修改不方便,特变是复杂的聚合视图基本无法修改


 注意:查询视图没有什么限制, 插入/更新/删除视图的操作会受到一定的限制; 所有针对视图的操作都会影响到视图的基表; 为了防止用户通过视图间接修改基表的数据, 可以将视图创建为只读视图(带上with read only选项)


hive表之视图
1、视图是一个虚表,一个逻辑概念,可以跨越多张表。表是物理概念,数据放在表中,视图是虚表,操作视图和操作表是一样的,所谓虚,是指视图下不存数据。
2、视图是建立在已有表的基础上,视图赖以建立的这些表称为基表
3、视图可以简化复杂的查询


create view 视图表名 as select 基表1.字段1,基表1.字段2,基表2.字段1 ...... from 库名1.表名 库名2.表名 where 基表1.字段=基表2.字段

eg:

create [ or replace ] [ force ] view [schema.]view_name
                      [ (column1,column2,...) ]
                      as 
                      select ...
                      [ with check option ]                      [ constraint constraint_name ]
                      [ with read only ];

在hive中,视图中是不存数据的,在oracle和mysql中,视图是可以存数据的,称之为物化,可提高查询速度。


 删除视图:

语法格式 
DROP VIEW [IF EXISTS] 
View_name [,view_name1]…… 
[RESTRICT | CASCADE]


对简单视图进行DML操作:

SQL> create view vw_emp as select empno,ename,job,hiredate,deptno from emp;

SQL> desc vw_emp

SQL> insert into vw_emp values(1,'a','aa','05-JUN-88',10);

SQL> update vw_emp set ename='cc' where ename='KING';

SQL> delete vw_emp where ename='cc';

SQL> select * from vw_emp where deptno=10;

基表也发生了相应的更改

原文地址:https://www.cnblogs.com/Vowzhou/p/11232423.html