精华内容
下载资源
问答
  • ORACLE SQL视图

    2019-05-27 09:45:00
    视图是什么呢? 视图是一种虚表。 视图建立在已有表的基础上, 视图赖以建立的这些表...可以创建和修改视图的定义,删除视图 可以从视图中查询数据 可以通过视图插入,修改和删除视图 可以使用Top-N分析视图 ...

    视图是什么呢?

    视图是一种虚表。  

    视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。

    向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句.

    视图向用户提供基表数据的另一种表现形式

     

    那么视图:

    1. 可以创建和修改视图的定义,删除视图
    2. 可以从视图中查询数据
    3. 可以通过视图插入,修改和删除视图
    4. 可以使用Top-N分析视图

     

    常用的数据可对象有:

     

    那么我们为什么会使用视图呢:

    1.因为它控制数据访问

    2.简化查询

    3.避免重复访问相同的数据

    视图有分两种,简单视图和复杂视图,看下图简单了解下

     

    下面我们看下如何创建视图

    CREATE VIEW empvu80

     AS SELECT  employee_id, last_name, salary

        FROM    employees

    WHERE   department_id = 80;

     

    这是简单的创建视图

     

    在创建视图时可以在子查询中给列定义别名:看代码

    CREATE VIEW salvu50

     AS SELECT  employee_id ID_NUMBER, last_name NAME,

                salary*12 ANN_SALARY

        FROM    employees

    WHERE   department_id = 50;

     

    修改视图可以使用CREATE OR REPLACE VIEW 子句修改视图

    CREATE OR REPLACE VIEW empvu80

      (id_number, name, sal, department_id)

    AS SELECT  employee_id, first_name || ' ' || last_name,

               salary, department_id

       FROM    employees

       WHERE   department_id = 80;

     

    我们看下复杂的视图创建

    CREATE VIEW dept_sum_vu

      (name, minsal, maxsal, avgsal)

    AS SELECT  d.department_name, MIN(e.salary),

                 MAX(e.salary),AVG(e.salary)

       FROM      employees e, departments d

       WHERE     e.department_id = d.department_id

       GROUP BY  d.department_name;

    再看下使用视图的一些规定

    1.可以在简单视图中执行 DML 操作

    2.当视图定义中包含以下元素之一时不能使用delete:

    3.组函数

    4.GROUP BY 子句

    5.DISTINCT 关键字

    6.ROWNUM 伪列

    当视图定义中包含以下元素之一时不能使用update:

    1.组函数

    2.GROUP BY子句

    3.DISTINCT 关键字

    4.ROWNUM 伪列

    5.列的定义为表达式

    当视图定义中包含以下元素之一时不能使insert:

    1.组函数

    2.GROUP BY 子句

    3.DISTINCT 关键字

    4.ROWNUM 伪列

    5.列的定义为表达式

    6.表中非空的列在视图定义中未包括

     

    那我们既然可以使用DML操作那也就以为着可以屏蔽它

    屏蔽DML的操作

    可以使用 WITH READ ONLY 选项屏蔽对视图的DML 操作

    任何 DML 操作都会返回一个Oracle server 错误

    看下例子:

    CREATE OR REPLACE VIEW empvu10

        (employee_number, employee_name, job_title)

    AS SELECT employee_id, last_name, job_id

       FROM     employees

       WHERE    department_id = 10

       WITH READ ONLY;

    删除视图只是删除视图的定义,并不会删除基表的数据

    DROP VIEW empvu80;

    Top-N 分析

    查询最大的几个值的 Top-N 分析:

    SELECT [column_list], ROWNUM  

    FROM   (SELECT [column_list]

            FROM table

            ORDER  BY Top-N_column)

    WHERE  ROWNUM <=  N;

    注意:

    对 ROWNUM 只能使用 < 或 <=, 而用 =, >, >= 都将不能返回任何数据。

    展开全文
  • 下面对比一下建立视图的语句SQL SERVER: 建立视图: CREATE VIEW empv20 AS SELECT * FROM emp WHERE deptno = 20 ; 修改视图: alter VIEW empv20 AS SELECT ename FROM ...

    视图可以简单的认为是一个查询的别名:

    它有限制数据访问和简化查询的作用。

    下面对比一下建立视图的语句:

    SQL SERVER:

    建立视图:
    CREATE VIEW empv20
    AS SELECT *
    FROM emp
    WHERE deptno = 20 ;
    修改视图:
    alter VIEW empv20
    AS SELECT ename
    FROM emp
    WHERE deptno = 20 ;

    ORACLE和DB2上建立的语句完全相同。

    •CREATE OR REPLACE VIEW empvu20
    •AS SELECT *
    •FROM emp
    •WHERE deptno = 20
    还可以加上WITH CHECK OPTION选项来保护视图的完整性:
    CREATE OR REPLACE VIEW empvu20
    AS SELECT *
    FROM emp
    WHERE deptno = 20
    WITH CHECK OPTION CONSTRAINT empvu20_ck;
    SQL> UPDATE empvu20
    SET deptno = 10
    WHERE empno = 7788;
    update empvu20
    *
    ERROR at line 1:
    ORA-01402: view WITH CHECK OPTION where-clause violation
    展开全文
  • create sequence student_sid; --创建序列 oracle只能通过手动方式创建序列 转载于:https://www.cnblogs.com/classmethond/p/10166420.html

    create sequence student_sid; --创建序列 oracle只能通过手动方式创建序列

    转载于:https://www.cnblogs.com/classmethond/p/10166420.html

    展开全文
  • 使用SQL Tuning Advisor与SQL Access Advisor可以调用advisory 模式下优化器来帮助检查一个SQL语句或者一组SQL语句,来提高他们效率。SQL Tuning Advisor与SQL Access Advisor可以给出一系列建议。SQL Access...

        在CBO模式下,优化器判断是使用全表扫描还是使用索引效率更高。优化器比对所有可能的方法,并选择最低代价的方法。

        使用SQL Tuning Advisor与SQL Access Advisor可以调用advisory 模式下的优化器来帮助检查一个SQL语句或者一组SQL语句,来提高他们的效率。SQL Tuning Advisor与SQL Access Advisor可以给出一系列的建议。SQL Access Advisor主要负责给出模式修改建议,例如增加或者drop索引、物化视图。SQL Tuning Advisor主要给出其他建议,例如创建SQL Profile、重构SQL语句。如果通过创建一个索引可以获得明显的性能提升,SQL Tuning Avisor也会推荐,然而这些建议放在SQL Access Advisor中验证通过,这个SQL Advisor使用包含了一组典型SQL语句的sql workload.

          ADDM会自动识别高负载(high-load)的SQL语句,也当然也可以手工使用SQL Tuning Advisor。手工使用有两种方法,一种是调用package,如dave dai的文章:http://blog.csdn.net/tianlesoftware/article/details/5630888, 一种是使用DBconsole(入口是Related links->Advisor Central->SQL Advisors),一步步的方法如下:http://docs.oracle.com/cd/B28359_01/server.111/b28275/tdppt_sqltune.htm#TDPPT160.


    展开全文
  • oracle sql语句分类

    2011-04-10 18:23:00
    ORACLE SQL语句分类SQL语句可以被看作是一种简单、强大计算机语言或指令。sql语句被分为以下6类:数据定义类、数据操作类、事务控制类、会话控制、系统控制、嵌入式SQL语句。 数据操作语言语句[Data manipulation...
  • 1.视图的概述视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来源于表,所有对视图数据的...
  • ORACLE SQL 语句分类

    2010-03-11 16:19:50
    Oracle SQL 语句可以分为以下几类:  数据操作语言语句[Data manipulation language,DML]    从一个或多个表或视图中查询数据(SELECT);获取操作[fetch]是可滚动 [scrollable](见“可滚动游标”)  向表或...
  • 导出创建用户下各个对象数据结构的sql语句的脚本,包括表、视图、索引、约束等等前言: 这是我用很长时间才写的存储包,其间经历了多次修改,以适应多种情况,今将其贡献出来,如果能读懂这个存储包,恭喜你,你的...
  • 修改:表名,索引名,视图名,完整性约束(空值) 删除:表列,列里面值,主键,唯一性,外键,check 示例: 创建雇员表(Employee),包括员工号(empno),员工名(empname),工作职位(job),主管领导(mana...
  • 导出创建用户下各个对象数据结构的sql语句的脚本,包括表、视图、索引、约束等等 前言:这是我用很长时间才写的存储包,其间经历了多次修改,以适应多种情况,今将其贡献出来,如果能读懂这个存储包,恭喜你,你的...
  • oracle 视图

    2015-03-17 11:24:00
    视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图相关数据。视图将一个查询结果作为一个表来使用,因此视图可以被看作是存储查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会...
  • Oracle视图

    2017-01-23 17:38:10
    简化查询(把复杂的SQL语句写成视图,别人直接用视图来查询即可,无须再写复杂的SQL语句) 隐藏数据(不是把整张表的数据给别人,而是通过指定字段弄成视图,把视图给别人,让别人查视图视图操作步骤 创建视图、...
  • oracle 视图的概述

    2015-08-23 16:54:16
    视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图相关数据。视图将一个查询结果作为一个表来使用,因此视图可以被看作是存储查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被...
  • 一、Sql语句的分类 数据操作语言,简称DML(data manipulation language),如增加,删除,修改,查询数据等 数据定义语言,简称DDL(data defination language),如创建、修改和删除数据库中表,用户,视图等,修改...
  • oracle 创建视图view

    2014-07-03 02:30:24
    视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器。(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束)
  • oracle-视图(view)

    2018-06-07 16:45:07
    oracle-视图(view)视图概述视图也称为虚表,视图本身不占用物理存储空间,视图存放于数据字典中,简单的来说视图可以看做是sql语句的集合。视图从数据库中的表产生,这些表称为视图的基表,一个视图可以从另一个视图...
  • Oracle创建视图(View)

    2018-12-06 14:14:23
    修改视图: 通过OR REPLACE 重新创建同名视图即可。 视图上DML 操作: DML操作应遵循原则: 1.简单视图可以执行DML操作; 2.在视图包含GROUP 函数,GROUP BY子句,DISTINCT关键字时不能删除数据行; 3....
  • oracle视图

    2020-01-11 00:38:17
    1.视图的定义 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,视图基于的表称为基表。视图只有逻辑定义,每次使用的时候只是重新执行SQL。通过它可以对表里面的数据进行查询和修改。 视图是存储在数据...
  • 1、视图是已经编译好的sql语句。而表不是2、视图没有实际的物理记录。而表有。3、表是内容,视图是窗口4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但...
  • Oracle 视图

    千次阅读 2012-08-14 23:52:38
    视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图相关数据。视图将一个查询结果作为一个表来使用,因此视图可以被看作是存储查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 311
精华内容 124
关键字:

oracle修改视图的sql语句