Play Open
Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait

一、创建视图

视图

一、定义

​ 也称虚表,视图是表中数据的逻辑表示。视图本身并不存储任何数据(,而真正的数据是存在于基表中的。视图也和表一样,也带有名称的列和行。简单的说,视图就是一个展示的窗口,它可以从这个表拿点数据,从另一个表拿点数据,进行展示。

二、为什么要使用视图

提供各种数据表现形式,

可以使用各种不同的方式将基表的数据展现在用户面前, 以便符合用户的使用习惯(使用别名).

隐藏数据的逻辑复杂性并简化查询语句

多表查询语句一般是比较复杂的, 而且用户需要了解表之间的关系, 否则容易写错;

如果基于这样的查询语句创建一个视图, 用户就可以直接对这个视图进行"简单查询"而获得结果.

这样就隐藏了数据的复杂性并简化了查询语句

提供一定安全性保证.

视图提供了一种可以控制的方式, 即可以让不同的用户看见不同的列, 而不允许访问那些敏感的列,

这样就可以保证敏感数据不被用户看见.

简化用户权限的管理.

可以将视图的权限授予用户, 而不必将基表中某些列的权限授予用户, 这样就简化了用户权限的定义

笔记说明:

将复杂的查询封装为视图,降低程序员的开发难度

提供一定安全性保障(防止表被删除)

三、分类

1、简单视图

简单视图只从单表里获取数据

简单视图不包含函数和数据组

简单视图可以实现DML操作

2、复杂视图

复杂视图从多表中获取数据

复杂视图包含是函数和数据组

复杂视图不可以DML操作

四、创建视图

语法格式

CREATE [OR REPLACE] VIEW 视图名称

AS 子查询

[WITH CHECK OPTIONI] --说明@todo

[WITH READ ONLY] ; --限制视图为只读

--or replace 会覆盖存在该视图名的视图

示例代码

CREATE OR REPLACE VIEW VO_DEPT_EMP

AS (SELECT e.ename ,

e.DEPTNO,

e.job,

e.sal,

e.mgr,

d.DNAME,

d.loc

FROM emp e,DEPT d

WHERE e.DEPTNO = d.DEPTNO(+))

WITH READ ONLY;

注:如果权限不足,切换到超级管理员用户 GRANT CREATE ANY VIEW TO scott;

Posted in 23世界杯
Previous
All posts
Next