mysql. Oracle创建视图_ORACLE 创建与使用视图

喜欢ヅ旅行 2022-10-28 12:26 385阅读 0赞

一.what(什么是视图?)

1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询的结果。

2.根据创建视图时给定的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合,它存储了要执行检索的查询语句的定义,以便在引用该视图时使用。

二.why(为什么要用视图?视图的优点)

1.简化数据操作:视图可以简化用户处理数据的方式。

2.着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。

3.视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。

4.提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。

5.自定义数据:视图允许用户以不同方式查看数据。

6.导出和导入数据:可使用视图将数据导出到其他应用程序。

三.how(视图的创建语法、删除、demo)

48304ba5e6f9fe08f3fa1abda7d326ab.png

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEWview_name

[(alias[, alias]…)]

ASsubquery

[WITH CHECK OPTION [CONSTRAINT constraint]]

[WITH READ ONLY]

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

OR REPLACE:若所创建的试图已经存在,ORACLE自动重建该视图;

FORCE :不管基表是否存在ORACLE都会自动创建该视图;

NOFORCE :只有基表都存在ORACLE才会创建该视图:

alias :为视图产生的列定义的别名;

subquery :一条完整的SELECT语句,可以在该语句中定义别名;

WITH CHECK OPTION:插入或修改的数据行必须满足视图定义的约束;

WITH READ ONLY :该视图上不能进行任何DML操作。

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

CREATE OR REPLACE VIEWdept_sum_vw

(name,minsal,maxsal,avgsal)

AS

SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)

FROMemp e,dept d

WHERE e.deptno=d.deptno

GROUP BY d.dname;

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

--给用户授权创建视图—grant create all view to zdgshr; 所有数据库都能创建视图的用户

grant create view tozdgshr;

--创建简单视图

create view temp

as

select * fromzd_member_basic_info;

--测试

select * from temp where rownum=1;

--创建简单视图:只读

create or replace viewtemp1

as

select id,job_number,name,dept_id fromzd_member_basic_info

with read only;

--测试

insert into temp1(id,job_number,name,dept_id) values(1,0,’张三’,1300);

48304ba5e6f9fe08f3fa1abda7d326ab.png

视图的删除:

DROP VIEW VIEW_NAME语句删除视图。

删除视图的定义不影响基表中的数据。

只有视图所有者和具备DROP VIEW权限的用户可以删除视图。

视图被删除后,基于被删除视图的其他视图或应用将无效。

四、视图分为简单视图和复杂视图。

简单视图只从单表里获取数据;复杂视图从多表里获取数据。

简单视图不包含函数和数据组;复杂视图包含函数和数据组。

简单视图可以实现DML操作;复杂视图不可以。

create or replace viewtemp1

as

select distinct name,job_number,dept_id fromzd_member_basic_info

with read only;

delete from zd_member_basic_info where name=’而过’;

create or replace view temp

as

select * from zd_member_basic_info order by name;

转:http://www.cnblogs.com/wean/archive/2012/05/15/2501995.html

发表评论

表情:
评论列表 (有 0 条评论,385人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Oracle创建、修改视图

    视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和

    相关 oracle 创建视图view

          视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来

    相关 Oracle创建视图

    > 视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。 2.用户通过简单的查询可以从复杂查询中得到结果。 3.维护数据的独立性,试图可从多个表