Oracle(创建视图)

概念:

视图:所谓视图就是提取一张或者多张表的数据生成一个映射,管理视图可以同样达到操作原表的效果,方便数据的管理以及安全操作。

视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储查询结果的一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束。

视图的存储

与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。

视图的优势:

1.信息隐藏

比如s_emp表中有工资,可以创建视图,隐藏工资信息。(可以配合权限,让某个用户只能查看视图,不能查看表。)

2.使复杂查询变得简单。

3.数据独立

4.相同数据的不同展示形式。

视图的分类:

1.简单视图

2.复杂视图

比较:

简单视图 复杂视图

涉及到的表个数   1 1个或多个

包含函数  不包含 包含

包含组数据   不包含 包含

通过视图使用DML   可以 不可以

视图的创建:

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name

[(alias[, alias]...)]

AS

select 。。。。

[WITH CHECK OPTION [CONSTRAINT constraint]]

[WITH READ ONLY]

note:

1.or replace:代表修改view

2.force| noforce: 即使基表不存在也要建立该视图 | 基表不存在就不建立此视图,默认值。

3.alias: 视图中的列的名字(相当于给子查询的结果列起别名)

4.子查询中可以包含复杂的查询语法,这些细节都对用户隐藏。

5.子查询中不能包含order by子句。

6.WITH CHECK OPTION 插入或修改的数据行必须满足视图定义的约束;换句话说,加上该关键词表示对view进行dml操作的时候,只能操作select语句中where条件限制的内容

7.WITH READ ONLY :该视图只读,不能在这个视图上进行任何DML操作。

8.查看视图结构: desc view_name;

例如:

create or replace view myView

as

select id,last_name,start_date

from s_emp

where id <= 4;

此时可以使用:

1.查看视图中所有数据信息

select * from myView;

2.执行插入:

insert into myView values(111,‘haha‘,‘03-5月-16‘); 插入成功!

3.再次查看,找不到刚插入的数据,因为这条数据不满足id<=4,但是查看原始表s_emp,有这条数据。

如果:

create or replace view myView

(id,name,s_date)

as

select id,last_name,start_date

from s_emp

where id <= 4

with check option;

此时可以使用:

1.查看视图中所有数据信息

select * from myView;

2.执行插入:

insert into myView values(121,‘haha‘,‘03-5月-16‘); 插入失败!,因为视图的约束时id<=4,现在插入的id值为121,所以失败!

create or replace view myView

(id,name,s_date)

as

select id,last_name,start_date

from s_emp;

or

create or replace view myView

as

select id,last_name,start_date s_date

from s_emp;

myView中列的名字都为id,name,s_Date.

创建复杂视图:

复杂视图可能包含分组,组函数,多表连接等。

例如:

CREATE or replace VIEW myView

(name, minsal, maxsal, avgsal)

AS SELECT d.name, MIN(e.salary),

MAX(e.salary), AVG(e.salary)

FROM s_emp e, s_dept d

WHERE e.dept_id = d.id

GROUP BY d.name;

查看视图信息

可以使用数据字典user_views;

删除视图对象:

ROP VIEW view_name;

时间: 2024-10-25 15:06:04

Oracle(创建视图)的相关文章

SQLServer和Oracle创建视图用户

在数据集成的开发中,经常会需要给对方创建视图,让其可以查看一些必要的数据.既在数据库中创建用户,并赋给该用户查询视图的权限 一.SQLServer --创建登录用户账户USE [master] GO CREATE LOGIN [kyst] WITH PASSWORD=N'xxx', DEFAULT_DATABASE=[RDSYSCASV121003], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON --创建数据库用户 USE [RDSYSCASV121003] GO

Oracle创建视图显示无权限

问题:使用scott登录Oracle以后,创建视图,提示"权限不够",怎么解决? 回答: 这是因为scott这个帐户目前没有创建视图的权限.解决方法为: 首先使用system帐户进行登录,其中"tigertiger"为安装Oracle时所指定的密码(可修改): sqlplus system/tigertiger 然后执行: grant create any view to scott 提示:授权成功. 执行: exit 退出当前system帐户. 再使用sqlplu

oracle创建视图以及如何创建表

数据库对象 视图 视图称为虚表,在数据库中不存在实体. 试图本质上对物理表的一种数据保护,让开发者或者用户只能看到局部数据. 创建视图 形式: create or replace view as selecr   e.empno,e.ename,e.job,e.mgr,e.hiredate,e.deptno from emp e; 使用视图也可以进行一些数据的增 删 改 查 ,但通过视图添加的数据,数据最终添加到物理表中,因为视图是虚表. 视图一般只是基表的部分数据,通过视图向基表添加数据时,基

SQLSERVER 和 ORACLE 创建视图

SQLSERVER if exists(select * from sysobjects where id=OBJECT_ID(N'VW_SZYD_YTCT') and objectproperty(id,N'IsView')=1) drop view VW_SZYD_YTCT --删除视图go create view VW_SZYD_YTCT --创建视图asSELECTK.SZYDHYB_NM AS HYNM,K.SZYDHYB_TBDWBH AS TBDWBH,K.SZYDHYB_TBDW

ORACLE 创建视图索引序列

/* 视图View 视图是从若干基本表和(或)其他视图构造出来的表 视图存放的都是查询语句,并没有真实的数据 虚表 作用 限制对数据的操作 复杂查询变简单 提供相同数据的不同显示 UNION ALL 直接添加到一起 UNION 添加到一起并去重 */ --赋予scott用户创建视图的权限 sqlplus / as sysdba; GRANT CREATE VIEW TO SCOTT; --创建视图 CREATE OR REPLACE VIEW V_EMP AS SELECT * FROM EMP

Oracle 创建视图(View)实例

语法: create or replace [ViewName] as select * from QueryTable[s] 实例: create or replace view vm_wo as select '2' as sources,wo_nbr,wo_lot,wo_cust,wo_part,wo_rel_date,wo_due_date,wo_qty_ord,wo_status,wo_line,wo_so_nbr,wo_so_line, wo_soft,wo_soft_ver,wo_

Oracle中创建视图教程学习

分享下oracle数据库中创建视图的方法. Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表. 视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数据的逻辑上的集合或组合. oracle视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分. 2.用户通过简单的查询可以从复杂查询中得到结果. 3.维护数据的独立性,试图可从多

Oracle数据库视图创建与处理方法教程

有关Oracle数据库视图创建与处理方法教程. 分享下oracle中创建视图与处理视图的方法,学习oracle视图的使用方法. 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 视图是存储在数据字典里的一条select语句.通过创建视图可以提取数据的逻辑上的集合或组合. oracle视图的优点:1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分.2.用

Oracle创建两表关联查询的视图

在项目开发中,有时候会用到多表查询,有很多种方法,比如关联,比如视图,但对于查询来说,视图查询是最快的,如果你的数据库的字段信息很多,那查询就得整表查,比如两表查询,我们就可以把要的字段抽取出来,放在视图中,这样查询时就只要查询视图中所要的字段,其他的就可以无视.下面我记录一下Oracle创建视图 大多人操作数据库是用Scott权限进行操作数据库,但Scott是没有创建视图的权限的,所以我们要进入管理员System账号,进去给Scott授权一个创建视图权限.进入System后,我们打入以下语句