zoukankan      html  css  js  c++  java
  • oracle 视图(view)的使用

    转自https://blog.csdn.net/weixin_39415084/article/details/76147594

    Oracle对象教程:视图(View)创建使用,视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT…FROM即可。

    视图具有以下优点:

    可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。

    可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。

    限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。

    从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。

    CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name
    
    AS
    
    SELECT查询
    
    [WITH READ ONLY CONSTRAINT]

    语法解析:

    OR REPLACE:如果视图已经存在,则替换旧视图。

    FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

    NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

    WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。
    demo:

    create or replace view hr_org_dept_tree_v as
    select "ID","NAME","PARENT_ID","STATE","ORG_ID","VALID_FLAG" from (select t.id,t.org_name as name ,t.parent_org_id as parent_id,
    'org' as state,t.id as org_id,t.valid_flag from hr_org t union all select d.id,d.dept_name as name, case d.parent_dept_id when '-1' then d.org_id else d.parent_dept_id end as parent_id,'dept' as state,d.org_id,d.valid_flag from hr_dept d ) s
  • 相关阅读:
    HDU 5818 Joint Stacks
    HDU 5816 Hearthstone
    HDU 5812 Distance
    HDU 5807 Keep In Touch
    HDU 5798 Stabilization
    HDU 5543 Pick The Sticks
    Light OJ 1393 Crazy Calendar (尼姆博弈)
    NEFU 2016省赛演练一 I题 (模拟题)
    NEFU 2016省赛演练一 F题 (高精度加法)
    NEFU 2016省赛演练一 B题(递推)
  • 原文地址:https://www.cnblogs.com/person008/p/10330762.html
Copyright © 2011-2022 走看看