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

      视图与表不同,一个视图不分配任何存储空间,视图不真正地包含数据。由查询定义的视图相应于视图引用表中的数据。

    视图是由一个或多个表(或其他视图)中的数据的一种定制的表示,是用一个查询定义,所以可认为是一个存储的查询(stored query)或是一个虚表。

    引入视图有下列好处:
     通过限制对表的行预定义集合的存取,为表提供附加的安全性。
     隐藏数据复杂性。
     为用户简化命令。
     为基本表的数据提供另一种观点。
     可将应用隔离基本表定义的修改。
     用于不用视图无法表示的查询。
     可用于保存复杂查询。

    创建视图
    CREATE VIEW emp_view AS[as后面就跟我们的select查询语句]
    SELECT empno, ename, sal, loc
    FROM emp, dept
    WHERE emp.deptno = dept.deptno AND  dept.deptno = 10

    创建复杂视图

    CREATE VIEW     dept_sum_vu(name, minsal, maxsal, avgsal)
        AS SELECT    d.dname, MIN(e.sal), MAX(e.sal),AVG(e.sal)
        FROM  emp e, dept d
        WHERE e.deptno = d.deptno GROUP BY d.dname;

    创建视图:使用WITH CHECK OPTION选项
    CREATE OR REPLACE VIEW empvu20
        AS SELECT    *
        FROM            emp
        WHERE            deptno = 20
        WITH CHECK OPTION CONSTRAINT empvu20_ck;
    创建视图:使用WITH READ ONLY选项
    CREATE OR REPLACE VIEW empvu10 [更改视图: 使用CREATE OR REPLACE VIEW语句]
      2        (employee_number, employee_name, job_title)
      3  AS SELECT    empno, ename, job
      4  FROM                emp
      5  WHERE                deptno = 10
      6  WITH READ ONLY;



    查询视图:

    SELECT ename  FROM emp_view  WHERE empno = 9876

    以下sql同 上面创建视图和查询视图 功能相同。其实也就是我们查询数据库表的时候,它自动生成的一个视图emp-view

    SELECT ename  FROM emp, dept
    WHERE emp.deptno = dept.deptno  AND  dept.deptno = 10
    AND  emp.empno = 9876


    重定义视图

    CREATE OR REPLACE VIEW emp_view AS[as后面就跟我们的select查询语句]
    SELECT empno, ename, sal, loc
    FROM emp, dept
    WHERE emp.deptno = dept.deptno;

    删除视图

    DROP VIEW emp_view;


  • 相关阅读:
    第五周作业
    作业4
    20182302 2019-2020-1 《数据结构与面向对象程序设计》实验3报告
    作业四
    实验二
    实验一
    排序大集合java
    阿里面试——运筹优化工程师
    树的子结构判断
    剑指offer——合并两个排序的链表——对象、引用和赋值初接触
  • 原文地址:https://www.cnblogs.com/pacoson/p/3521489.html
Copyright © 2011-2022 走看看