Oracle数据库中视图的创建

视图:视图是虚拟的表,它依赖于数据库中已有的表,这些表被称为基表

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY]

其中:

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

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

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

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

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

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

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

举例如下:

create or replace view proudectcustomers
as
select cust_name,cust_contact,prod_id
from customers,orders,orderitems
where customers.cust_id=orders.cust_id
and orderitems.order_num=orders.order_num

分析:

        这条语句创建了一个名为prouductcustemers的视图,它联结三个表,以返回已订购任意产品的所有客户的列表。如果执行语句select * from  prouductcustomers,将列出订购了任意产品的客户 。

删除视图:drop  view  视图名 

视图的优点

1、简化复杂的SQL操作

2、使用表的组成部分并不是整个表

3、保护数据。可以根据需要给与用户相应的权限

4、更改数据的格式和表示方式。视图可以返回与底层格式和表示方式不同的数据

 视图的规则和限制:

下面是视图创建时一些常见的规则和限制

 1、与表名一样,视图必须唯一

  2、对于创建的视图数目没有限制

  3、创建视图,必须具有足够的权限

  4、视图可以嵌套

  5、order by 可以在视图中,但是如果从该视图检索数据的select语句中也含有order by ,那该视图中的order by将被覆盖

  6、视图不能索引,也不能有关联的触发器或默认值

   7、视图可以和表一起用。例如,编写一条联结表和视图的select语句

 小结:

      视图为虚拟的表。他们包含的不是数据而是根据需要检索数据的查询。视图提供了select语句层次的封装,可以用来简化数据处理以及格式化基础数据或保护基础数据。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值