• Oracle视图 create View


    视图是一种虚表,使用CREATE VIEW语句来定义视图,该视图是基于一个或多个表或视图的逻辑表。一个视图本身不包含任何数据, 视图所基于的表称为基表。

    视图就相当于一条select 语句,定义了一个视图就是定义了一个sql语句, 视图不占空间,使用视图不会提高性能,但是能简化sql语句 。

    创建视图:
    create view 视图名;

    如:

    create or replace view  v_test  as select * from test where age=10;
    create or replace: 如果view存在就覆盖,不存在才创建。

    删除视图: 

    drop view 视图名; 

    权限控制:

    要在您自己的模式中创建视图,您必须具有CREATE VIEW系统特权。
    要在其他用户的模式中创建视图,您必须具有CREATE ANY VIEW系统特权。
    包含该视图的模式的所有者必须具有从视图所基于的所有表或视图中选择,插入,更新或删除行所必需的权限。

    详细语句解析:

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

    其中:

    with read only视图只读约束 

    with check option 不允许插入与where条件不符的记录,类似于check约束的功能. 

    通过视图修改数据:

    CREATE VIEW clerk AS SELECT employee_id, last_name, department_id, job_id FROM employees   

       WHERE job_id = 'PU_CLERK' or job_id = 'SH_CLERK' or job_id = 'ST_CLERK';

    使用视图修改基表的数据,只有员工的ID,姓氏,部门号码和职位在该视图中可见,并且这些列只能在雇员是职员的行中更新:

    UPDATE clerk SET job_id = 'PU_MAN' WHERE employee_id = 118;

    有限制的修改:

    连接视图是其视图子查询包含连接的视图。如果联接中至少有一列具有唯一索引,则可以在联接视图中修改一个基表。

    CREATE VIEW locations_view AS

    SELECT d.department_id, d.department_name, l.location_id, l.city 

    FROM departments d, locations l WHERE d.location_id = l.location_id;

    新增记录  INSERT INTO locations_view VALUES(999, 'Entertainment', 87, 'Roma'); 

    系统返回:ERROR at line 1:

    ORA-01776: cannot modify more than one base table through a join view

    可以查询系统表USER_UPDATABLE_COLUMNS,查看连接视图中的列是否可更新。

    SELECT column_name, updatable  FROM user_updatable_columns

    WHERE table_name = 'LOCATIONS_VIEW'    ORDER BY column_name, updatable;

    改成如下语句,操作成功

    INSERT INTO locations_view (department_id, department_name) VALUES (999, 'Entertainment');

    1 row created.

    参考文献

         oracle官网的Oracle11G-en-US.pdf

  • 相关阅读:
    如何打开visual c++ 6.0的控件工具箱
    点评十大问题网站
    setInterval和clearInterval
    chrome 快捷键
    创意价值链通天塔
    百度前副总裁梁冬《那一些俯视人类欲望的人》
    YUI Compressor Javascript文件压缩工具
    网站服务器通用和专用保护方法比较
    svn log — 显示提交日志信息
    javascript 键值keyCode
  • 原文地址:https://www.cnblogs.com/walkwithmonth/p/8017427.html
Copyright © 2020-2023  润新知