`
houday123
  • 浏览: 217469 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle视图

阅读更多
ps:本人破解了润乾报表,全部功能可用,低价销售,需要要的请加qq:229501642联系
本人初学Oracle,冒昧的把自己归为Oracle一族,没别的意思,只是想激励自己好好的学习Oracle这个博大精深的数据库。

前面的先不说了,从视图开始吧!

Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。

    视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。

    视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的集合或组合。

视图的优点:

      1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。

      2.用户通过简单的查询可以从复杂查询中得到结果。

      3.维护数据的独立性,试图可从多个表检索数据。

      4.对于相同的数据可产生不同的视图。

视图分为简单视图和复杂视图:

      简单视图只从单表里获取数据
      复杂视图从多表

      简单视图不包含函数和数据组
      复杂视图包含

     简单视图可以实现DML操作
     复杂视图不可以.

视图的创建:

    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  dept_sum_vw
               (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;

视图的定义原则:
       1.视图的查询可以使用复杂的SELECT语法,包括连接/分组查询和子查询;
       2.在没有WITH CHECK OPTION和 READ ONLY 的情况下,查询中不能使用
          ORDER BY 子句;
       3.如果没有为CHECK OPTION约束命名,系统会自动为之命名,形式为SYS_Cn;
       4.OR REPLACE选项可以不删除原视图便可更改其定义并重建,或重新授予对象
          权限。

视图的查询:
          视图创建成功后,可以从视图中检索数据,这点和从表中检索数据一样。
          还可以查询视图的全部信息和指定的数据行和列。
   如:

         检索数据:
          SQL>SELECT * FROM  dept_sum_vw;

         查询视图定义:
         SELECT view_name,text  from user_views;
            其中text显示的内容为视图定义的SELECT语句,可通过DESC USER_VIEWS
            得到相关信息。

修改视图:
        通过OR REPLACE 重新创建同名视图即可。

视图上的DML 操作:
        DML操作应遵循的原则:
        1.简单视图可以执行DML操作;
        2.在视图包含GROUP 函数,GROUP BY子句,DISTINCT关键字时不能
           删除数据行;
        3.在视图不出现下列情况时可通过视图修改基表数据或插入数据:
            a.视图中包含GROUP 函数,GROUP BY子句,DISTINCT关键字;
            b.使用表达式定义的列;
            c.ROWNUM伪列。
            d.基表中未在视图中选择的其他列定义为非空且无默认值。


视图可用于保持数据库的完整性,但作用有限。
通过视图执行引用完整性约束可在数据库级执行约束。

WITH CHECK OPTION 子句限定:
         通过视图执行的INSERTS和UPDATES操作不能创建该视图检索不到的数据行,
         因为它会对插入或修改的数据行执行完整性约束和数据有效性检查。
  例如:
           CREATE OR REPLACE VIEW  vw_emp20
           AS  SELECT *  FROM  emp
           WHERE  deptno=20
           WITH CHECK OPTION constraint  vw_emp20_ck;
          视图 已建立。

            查询结果:
           SELECT empno,ename,job FROM vw_emp20;
          
          EMPNO                ENAME                JOB
---------------------           --------------          -------------
              7369                 SMITH                CLERK
              7566                 JONES               MANAGER
              7902                 FORD                ANALYST

          修改:
                UPDATE vw_emp20
                SET        deptno=20
                WHERE   empno=7902;
           将产生错误:
               UPDATE vw_emp20
                              *
               ERROR 位于第一行:
               ORA-01402:视图WITH CHECK OPTION 违反WHERE 子句

视图的删除:
            DROP VIEW  VIEW_NAME语句删除视图。
            删除视图的定义不影响基表中的数据。
            只有视图所有者和具备DROP VIEW权限的用户可以删除视图。
            视图被删除后,基于被删除视图的其他视图或应用将无效。
分享到:
评论
3 楼 xhalg 2010-09-28  
写得不错,就是稍微简单了些,可以再扩展一下
2 楼 huqiji 2010-09-15  
视图,好东西,我喜欢,学习了,thanks楼主
1 楼 mida 2009-09-19  
写的很系统,对我帮助很大!可是我还是不习惯用view操作基表。呵呵

相关推荐

    oracle 视图,函数,过程,触发器自动编译脚本

    ### Oracle视图、函数、过程、触发器自动编译脚本知识点详解 #### 一、背景与需求 在日常管理维护Oracle数据库服务器的过程中,我们经常会遇到需要修改视图(View)、表(Table)结构的情况。由于Oracle中的视图、...

    自己总结的数据库oracle视图用法

    总的来说,Oracle视图是数据库设计和管理中非常实用的工具,通过合理利用视图,可以提高数据查询的效率,保护数据安全,并简化应用程序的开发和维护。在学习Oracle数据库的过程中,理解和掌握视图的用法至关重要。

    Oracle视图操作

    Oracle 视图操作 Oracle 视图是基于一张表或多张表或另外一个视图的逻辑表,视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。...

    Oracle 视图详解

    "Oracle 视图详解" Oracle 视图详解是指在 Oracle 数据库中创建的虚拟表,以便用户可以更方便地访问和操作数据库中的数据。视图的定义是一个基于查询的结果集,可以来自一个或多个实际表或视图,或者甚至来自其他...

    oracle视图详解

    Oracle 视图详解 Oracle 视图(View)是一种逻辑表,基于一个或多个实际表,它不占用物理空间,只存在逻辑定义。每次使用视图时,都是重新执行 SQL 语句。视图可以从一个或多个实际表中获得,这些表的数据存放在...

    C# 实现oracle数据库视图的迁移

    在C#中,迁移Oracle视图的步骤主要包括以下几个方面: 1. **建立数据库连接**:使用OracleConnection类创建连接字符串,并建立与源数据库和目标数据库的连接。连接字符串应包含数据库的服务器地址、服务名、用户名...

    Oracle_View视图创建

    ### Oracle视图创建详解 #### 一、前提条件与背景介绍 在Oracle数据库环境中,我们已经建立了两张表:`rt_issuesect` 和 `roadstate`。为了更好地管理和查询这两张表的数据,本教程将详细介绍如何利用Oracle的视图...

    oracle带参数视图

    Oracle 带参数视图实践 Oracle 数据库中的视图通常是不带参数的,但有时,我们需要使用带参数的视图来方便查询数据。下面将简要介绍 Oracle 带参数视图的实践。 一、问题描述 在实际应用中,我们遇到了一个问题...

    oracle 视图、索引(自用)

    一、Oracle视图 1. 定义:视图是从一个或多个表中创建的虚拟表,它并不实际存储数据,而是存储查询语句。当用户查询视图时,Oracle会执行视图背后的SQL语句并返回结果。 2. 创建视图:使用CREATE VIEW语句,可以创建...

    17oracle的视图 PPT

    下面将详细解释Oracle视图的各个方面。 1. 数据抽象:视图可以将复杂的数据结构简化为用户友好的形式,只展示他们需要看到的列和行。例如,一个视图可能只包含一个大型表的一部分列,或者合并来自多个表的相关信息...

    oracle视图的增删改查操作举例[参考].pdf

    Oracle视图是数据库管理系统中一种非常重要的概念,它提供了从不同角度查看和操作数据的手段。视图是基于一个或多个表或另一个视图的虚拟表,它不存储数据,而是动态生成结果集。视图的主要优点包括安全性、简化查询...

    通过MSQL通过视图访问ORACLE中的表

    标题“通过MySQL通过视图访问ORACLE中的表”意味着我们将探讨如何利用MySQL的视图功能,来间接访问和操作Oracle数据库中的数据。视图是一种虚拟表,它不实际存储数据,而是根据用户定义的SQL查询动态生成结果集。这...

    19.Oracle视图1

    Oracle视图是数据库管理系统中非常重要的一个特性,它允许用户以一种特定的方式查看数据库中的数据,而无需直接操作基础表。视图本质上是基于一个或多个表的预定义SQL查询,这些表被称为基表。视图提供了一种数据...

    ORACLE视图技术在用户数据管理中的应用分析.pdf

    总的来说,Oracle视图技术在用户数据管理中发挥着重要作用,它提供了一种安全、灵活的数据访问机制,既能保护数据安全,又能简化用户操作,是数据库设计和管理中不可或缺的工具。通过合理利用视图,可以优化数据访问...

    oracle实现带参数视图

    ### Oracle 实现带参数视图 #### 背景与概念 在数据库设计与管理过程中,视图(View)作为一种虚拟表,对于简化查询、增强数据安全性和提供数据抽象具有重要作用。然而,标准的视图定义是静态的,无法根据不同的...

    oracle常用系统视图+导入导出

    在Oracle数据库管理中,系统视图是获取数据库信息的关键途径,它们提供了丰富的元数据,用于监控、优化和理解数据库的内部工作。这篇博客主要聚焦于Oracle的常用系统视图以及数据导入导出的相关操作,这对于数据库...

    如何在Oracle或SQLServer中对视图(view)加密以保护视图中的SQL代码?

    因Oracle暂不支持对视图(View)的加密,在实际工作中有时需提供给第三方只读账户,为保护知识产权,可用文中所述方法防止第三方账户查看视图(View)中的SQL代码。

    oracle实验二视图

    本实验涵盖了 Oracle 中的视图概念、创建视图、显示视图的内容、从数据字典视图中选择视图的名字和文本、使用视图查询数据、创建带有条件的视图、显示视图的结构和内容、更新视图、创建复杂视图等内容,为读者提供了...

    oracle表字段或是视图字段添加备注方法

    Oracle 表字段或是视图字段添加备注方法 Oracle 是一个强大的关系数据库管理系统,提供了多种方式来添加备注信息到表字段或视图字段中。在本节中,我们将详细介绍如何使用 Oracle 的 Comment 机制来添加备注信息到...

Global site tag (gtag.js) - Google Analytics