zoukankan      html  css  js  c++  java
  • oracle之视图

    视图

    13.1 为什么使用视图

    1)限制数据的存取:用户只能看到基表的部分信息。方法:赋予用户访问视图对象的权限,而不是表的对象权限。
    2)使得复杂的查询变得容易(内联视图):
    3)提供数据的独立性

    13.2 简单视图和复杂视图

    特性        简单视图        复杂视图
    --------------------------------------------
    表的个数        一个        一个或多个
    含函数        无        有
    含组函数        无        有
    含DISTINCT          无                  有
    DML操作             可以        不一定

    13.2 语法
    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
      [(alias[, alias]...)]
    AS subquery
    [WITH CHECK OPTION [CONSTRAINT constraint]]
    [WITH READ ONLY];

    13.2.1 FORCE作用:可以先建视图,后建基表

    create force view view1 as select * from test1;

    13.2.2 WITH CHECK OPTION作用:对视图where子句进行约束,使视图结果集保持稳定。

    SQL>create view view2 as select * from emp where deptno=10 with check option;

    insert 不许插入非10号部门的记录
    update 不许将10号部门修改为其他部门

    13.2.3 WITH READ ONLY作用:禁止对视图执行DML操作

    SQL>create view view3 as select * from emp where deptno=10 with read only;

    13.2.4 关于视图注意事项(考点)

    1)只要视图中的数据不是来自基表的原始数据,就尽量不要对该视图做DML操作。
    2)视图的DML操作
    含有如下情况,则不能删除视图中的数据:
    含有聚合函数
    含有GROUP BY 子句
    含有 DISTINCT 关键字
    含有ROWNUM 这个伪列

    含有如下情况,不能修改该视图中的数据:
    上面提到的任何一种情况。
    列是由表达式来进行定义的

    含有如下情况,不能增加该视图中的数据:
    上面提到的任何一种情况。
    在基表中包含有 NOT NULL约束的列,然而该列并没有在视图中出现

    13.3 复杂视图的更新,键保留表概念。

    select * from user_views
    -----------------------------------------------------------------------------

    如果建立了视图 想查看其中的定义,可以访问如下视图dba_views中的text字段(long型);

    自建一pl/sql过程,参照一下。

    declare
    v_text  dba_views.text%type;
    v_name  dba_views.view_name%type;
    begin
    select text, view_name into v_text,v_name FROM dba_views WHERE view_name='V1';
    dbms_output.put_line(v_name||' define is :'||v_text);
    end;
    /

  • 相关阅读:
    QSerialPort类
    初识Json
    Qt plugins(插件)目录
    Qt连接sql server数据库遇到的问题
    串口通信中,QString 、QByteArray 转化需要注意的问题
    Qt : 隐式数据共享(copy on write)
    Ascii码 、16进制与 char
    Caffe框架详细梳理
    时间管理
    Atom实用配置插件for C++
  • 原文地址:https://www.cnblogs.com/jinxf/p/9166155.html
Copyright © 2011-2022 走看看