精华内容
下载资源
问答
  • 查看表,视图,过程的创建语句

    千次阅读 2009-09-17 17:03:00
    在ORACLE9I中,可以下列语句实现:SELECT DBMS_METADATA.GET_DDL(TABLE,TB_TEST) FROM DUAL;当然也不要忘了设置LONG、PAGESIZE和LINESIZE 通过设置long可以查看整条创建sql,如:set long 100000,但是此仅对本次...

     如果要获取表、视图、过程的定义。在ORACLE9I中,可以用下列语句实现:
    SELECT DBMS_METADATA.GET_DDL('TABLE','TB_TEST') FROM DUAL;
    当然也不要忘了设置LONG、PAGESIZE和LINESIZE

      通过设置long可以查看整条创建sql,如:set long 100000,但是此仅对本次会话有效。

      保存此设置,可以在D:/oracle/ora92/sqlplus/admin/glogin.sql中,将set long 1000000加进去就可以啦。

    展开全文
  • 视图包含下列结构是不可以更新的

    千次阅读 2016-07-16 19:32:03
    数据库设计里,视图(View)可以使得我们为一个或多个数据表定义一个特殊的表现形式,视图在行为上与数据表没啥特别区别,可以使用基本的select,insert,update等命令修改数据,但对于update操作,也有一些限制,下面...

    数据库设计里,视图(View)可以使得我们为一个或多个数据表定义一个特殊的表现形式,视图在行为上与数据表没啥特别区别,可以使用基本的select,insert,update等命令修改数据,但对于update操作,也有一些限制,下面那些是受限的原因()

    正确答案: A B   你的答案: A B C (错误)

    初始View定义的Select语句里如果包含了GROUP BY,DISTINCT,LIMIT或HAVING等命令时
    如果视图里数据来自多张字表时
    如果视图里缺少主键索引,唯一索引,外键约束条件锁涉及的全部数据列时
    当Creat View之后又使用Replace View对已存在视图做了更名操作后


    视图包含下列结构是不可以更新的 
    1:集合运算符 union,union all, intersect,minus 
    2:distinct关键字 
    3:group by,order by,connect by,或者start with 
    4:子查询 
    5:分组函数 
    6:需要更新的列不是视图定义的 
    7:具有连接查询(可以更新键值保存表的数据) 
    8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一般不容易修改,但通用instead of触发器可以实现修改的功能)

    展开全文
  • Oracle 物化视图之--复杂物化视图创建 包含聚集的物化视图 1.必须满足所有快速刷新物化视图都满足的条件; 2.物化视图查询的所有表必须建立物化视图日志,且物化视图日志必须满足下列限制: (1)包含物化视图...
    Oracle 物化视图之--复杂物化视图创建

    包含聚集的物化视图

    1.必须满足所有快速刷新物化视图都满足的条件;

    2.物化视图查询的所有表必须建立物化视图日志,且物化视图日志必须满足下列限制:

    (1)包含物化视图查询语句中的所有列,包括SELECT列表中的列和WHERE语句中的列;

    (2)必须指明ROWIDINCLUDING NEW VALUES

    (3)如果对基本的操作同时包括INSERTUPDATEDELETE操作(即不是只包含INSERT操作),那么物化视图日志应该包括SEQUENCE

    3.允许的聚集函数包括:SUMCOUNTAVGSTDDEVVARIANCEMINMAX

    4.必须指定COUNT(*)

    不加COUNT(*),建立快速刷新的物化视图会成功,但通过执行EXPLAIN_MVIEW过程,可以发现,COUNT(*)对于INSERT操作是可以快速刷新的,不过对于UPDATEDELETE则会造成快速刷新的失败。

    5.如果指明了除COUNT之外的聚集函数,则COUNT(expr)也必须存在;

    比如:包含SUM(a),则必须同时包含COUNT(a)

    6.如果指明了VARIANCE(expr)STDDEV(expr),除了COUNT(expr)外,SUM(expr)也必须指明;

    Oracle推荐同时包括SUM(expr*expr)

    7.SELECT列表中必须包括所有的GROUP BY列;

    8.当物化视图属于下面的某种情况,则快速刷新只支持常规DML插入和直接装载,这种类型的物化视图又称为INSERT-ONLY物化视图;

    物化视图包含MINMAX聚集函数;

    物化视图包含SUM(expr),但是没有包括COUNT(expr)

    物化视图没有包含COUNT(*)

    注意:如果建立了这种物化视图且刷新机制是ON COMMIT的,则会存在潜在的问题。当出现了UPDATEDELETE语句,除非手工完全刷新解决这个问题,否则物化视图至此以后都不再自动刷新,且不会报任何错误。

    9.如果包含inline viewsouter joinsself joinsgrouping set,则兼容性的设置必须在9.0以上;

    10.如果物化视图建立在视图或子查询上,则要求视图必须可以完全合并的。

    11.如果没有外连接,则对WHERE语句没有限制。如果包含外连接,则要求WHERE语句只能包括AND连接和=”操作。对于包含外连接的聚集物化视图,快速刷新支持outer表的修改。且inter表的连接列上必须存在唯一约束。

    12.对于包含了ROLLUPCUBEGROUPINGSET的物化视图必须满足下列限制条件:

    SELECT语句列表中应该包含GROUPING标识符:可以是GROUP BY表达式中所有列的GROUPING_ID函数,也可以是GROUP BY表达式中每一列的GROUPING函数;

    例如:GROUP BY语句为:GROUP BY CUBE(a, b),则SELECT列表应该包括GROUPING_ID(a,b)或者GROUPING(a)GROUPING(b)

    GROUPBY不能产生重复的GROUPING

    比如:GROUP BY a,ROLLUP(a, b)则不支持快速刷新,因为包含了重复的GROUPING(a), (a,b), (a)

    案例分析:

    1)

    12:15:24 SCOTT@ prod> create MATERIALIZED VIEW log on emp with primary key;
    Materialized view log created.

    12:16:00 SCOTT@ prod> CREATE MATERIALIZED VIEW "SCOTT"."EMP_MVW"
    12:17:52   2  refresh fast with primary key
    12:17:59   3  enable query rewrite
    12:18:06   4  as
    12:18:08   5  select empno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal from emp
    12:18:27   6  group by empno;

    select empno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal from emp
                                                                                          *
    ERROR at line 5:
    ORA-12015: cannot create a fast refresh materialized view from a complex query


    2)
    12:44:24 SCOTT@ prod> CREATE MATERIALIZED VIEW "SCOTT"."EMP_MVW"
    12:44:51   2   refresh fast with primary key
    12:44:51   3    enable query rewrite

    12:44:51   4   AS select deptno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal ,count(sal) cnt_sal from emp  group by deptno;
     AS select deptno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal ,count(sal) cnt_sal from emp  group by deptno
                                                                                                                   *
    ERROR at line 4:
    ORA-12032: cannot use rowid column from materialized view log on "SCOTT"."EMP"


    3)
    12:45:50 SCOTT@ prod> drop MATERIALIZED VIEW log on emp;
    Materialized view log dropped.

    12:48:12 SCOTT@ prod> create MATERIALIZED VIEW log on emp with rowid;

    Materialized view log created.

    12:48:24 SCOTT@ prod> CREATE MATERIALIZED VIEW "SCOTT"."EMP_MVW"
    12:48:43   2   refresh fast 
    12:48:43   3    enable query rewrite
    12:48:43   4   AS select deptno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal ,count(sal) cnt_sal from emp  group by deptno;

     AS select deptno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal ,count(sal) cnt_sal from emp  group by deptno
                                                                                                                   *
    ERROR at line 4:
    ORA-32401: materialized view log on "SCOTT"."EMP" does not have new values


    4)
    12:48:43 SCOTT@ prod> drop MATERIALIZED VIEW log on emp;
    Materialized view log dropped.

    12:49:04 SCOTT@ prod> create MATERIALIZED VIEW log on emp with rowid including new values;
    Materialized view log created.

    12:49:39 SCOTT@ prod> CREATE MATERIALIZED VIEW "SCOTT"."EMP_MVW"
    12:49:54   2   refresh fast 
    12:49:54   3    enable query rewrite
    12:49:54   4   AS select deptno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal ,count(sal) cnt_sal from emp  group by deptno;

     AS select deptno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal ,count(sal) cnt_sal from emp  group by deptno
                                                                                                                   *
    ERROR at line 4:
    ORA-12033: cannot use filter columns from materialized view log on "SCOTT"."EMP"


    5)
    12:49:55 SCOTT@ prod> drop MATERIALIZED VIEW log on emp;

    Materialized view log dropped.

    12:51:16 SCOTT@ prod> create MATERIALIZED VIEW log on emp with rowid,sequence(sal,deptno) including new values;
    Materialized view log created.

    12:52:13 SCOTT@ prod>  CREATE MATERIALIZED VIEW "SCOTT"."EMP_MVW"
    12:52:32   2   refresh fast with rowid
    12:52:32   3    enable query rewrite
    12:52:32   4   AS select deptno,max(sal) max_sal,avg(sal) avg_sal,min(sal) min_sal,sum(sal) sum_sal ,count(sal) cnt_sal from emp  group by deptno;
    Materialized view created.

    --------- 至此,带有分组和聚合函数的物化视图创建成功!



    展开全文
  • SQL CREATE VIEW 视图语句

    2019-07-15 10:56:01
    SQL CREATE VIEW 语句 ...我们可以视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。 注释:数据库的设计和结构不会受到视图中的函数、where 或 jo...

    SQL CREATE VIEW 语句

    什么是视图?

    在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

    视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。

    注释:数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。

    SQL CREATE VIEW 语法

    CREATE VIEW view_name AS
    SELECT column_name(s)
    FROM table_name
    WHERE condition
    

    注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

    SQL CREATE VIEW 实例

    可以从某个查询内部、某个存储过程内部,或者从另一个视图内部来使用视图。通过向视图添加函数、join 等等,我们可以向用户精确地提交我们希望提交的数据。

    样本数据库 Northwind 拥有一些被默认安装的视图。视图 "Current Product List" 会从 Products 表列出所有正在使用的产品。这个视图使用下列 SQL 创建:

    CREATE VIEW [Current Product List] AS
    SELECT ProductID,ProductName
    FROM Products
    WHERE Discontinued=No

    我们可以查询上面这个视图:

     

    SELECT * FROM [Current Product List]

    Northwind 样本数据库的另一个视图会选取 Products 表中所有单位价格高于平均单位价格的产品:

    CREATE VIEW [Products Above Average Price] AS
    SELECT ProductName,UnitPrice
    FROM Products
    WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) 
    

    我们可以像这样查询上面这个视图:

    SELECT * FROM [Products Above Average Price]

    另一个来自 Northwind 数据库的视图实例会计算在 1997 年每个种类的销售总数。请注意,这个视图会从另一个名为 "Product Sales for 1997" 的视图那里选取数据:

    CREATE VIEW [Category Sales For 1997] AS
    SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
    FROM [Product Sales for 1997]
    GROUP BY CategoryName 
    

    我们可以像这样查询上面这个视图:

    SELECT * FROM [Category Sales For 1997]

    我们也可以向查询添加条件。现在,我们仅仅需要查看 "Beverages" 类的全部销量:

    SELECT * FROM [Category Sales For 1997]
    WHERE CategoryName='Beverages'
    

    SQL 更新视图

    您可以使用下面的语法来更新视图:

    SQL CREATE OR REPLACE VIEW Syntax
    CREATE OR REPLACE VIEW view_name AS
    SELECT column_name(s)
    FROM table_name
    WHERE condition
    

    现在,我们希望向 "Current Product List" 视图添加 "Category" 列。我们将通过下列 SQL 更新视图:

    CREATE VIEW [Current Product List] AS
    SELECT ProductID,ProductName,Category
    FROM Products
    WHERE Discontinued=No
    

    SQL 撤销视图

    您可以通过 DROP VIEW 命令来删除视图。

    SQL DROP VIEW Syntax
    DROP VIEW view_name

    转载于:https://www.cnblogs.com/troywithblog/archive/2013/05/24/3096534.html

    展开全文
  • sql 视图创建索引

    2013-12-23 08:08:47
    视图创建索引需要三个条件: 一、视图必须绑定到架构。 要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击右键,属性,选中“绑定到架构”。...
  • oracle数据库 视图相关的语句

    千次阅读 2017-12-02 23:51:00
    创建视图: create or replace force view view_owners as select * from T_OWNERS删除视图语法: drop view view_owners创建视图 :业主类型为 1 的业主信息 create or replace view view_owners as select * ...
  • 无法对视图创建聚集索引

    千次阅读 2013-05-13 17:53:42
    总结一下对视图创建聚集索引创建聚集索引的注意事项 一、视图必须绑定到架构。 要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击右键,属性,...
  • 创建索引视图

    千次阅读 2010-12-10 20:45:00
    引用-sql2005 联机丛书   在对视图创建聚集索引之前,该视图必须符合下列要求: 当执行 CREATE VIEW 语句时,ANSI_NULLS 和 QUOTED_IDENTIFIER 选项必须设置为 ON。OBJECTPROPERTY 函数通过 ...
  • mysql如何创建视图

    2021-01-12 11:53:41
    在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。...mysql视图可以使用SQL CREATE VIEW命令创建。 SQL CREATE VIEW 语法: CREATE VIEW view_name AS SELECT column_name(s) FROM table_name
  • Oracle中创建视图

    万次阅读 2018-07-17 16:14:34
    Oracle中创建视图  视图是基于一个表或多... 通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点:  1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。  2.用户通过简单的查询可以...
  • 视图

    2013-10-07 19:44:54
    通过创建视图可以提取数据的逻辑上的集合或组合。  视图的优点:  1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。  2.用户通过简单的查询可以从复杂查询中得到结果。  3.维护数据的...
  • MySQL索引、视图创建与管理操作实验

    千次阅读 2019-12-03 23:25:17
    实验4:索引、视图创建与管理操作实验 一、实验目的: 理解索引的概念与类型。 掌握创建、更改、删除索引的方法。 掌握维护索引的方法。 理解视图的概念。 掌握创建、更改、删除视图的方法。 掌握使用视图来访问...
  • (1)视图概述 ...视图的结构和内容是通过SQL查询获得的,它也称为视图名,可以永久地保存在数据库中,视图在数据库内存储的是select语句,也即数据库内并没有存储视图这个表,而存储的是视图的定义。Sele...
  • Oracle创建视图(View)

    2018-12-06 14:14:23
    视图创建成功后,可以从视图中检索数据,这点和从表中检索数据一样。 还可以查询视图的全部信息和指定的数据行和列。 如:检索数据: SQL>SELECT * FROM dept_sum_vw; 查询视图定义: SELECT view_name,text ...
  • 新手带你学之SQL 视图(Views)的创建、更新和删除

    千次阅读 多人点赞 2019-07-19 16:03:38
    下面针对SQL视图创建、更新和删除进行简单的介绍,有兴趣的小伙伴请多多交流!!! SQL CREATE VIEW 语句 ...您可以视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表...
  • sql server创建视图操作

    千次阅读 2016-07-05 13:55:32
    1、 什么是视图 视图就是一个虚拟的数据表,该数据表中的数据记录是有一条查询... # 你可以对其他视图创建视图。允许嵌套视图,但嵌套不得超过32层。视图最多可以有1024个字段  # 不能将规则和default定义于视图
  • sql2000 为给定表或视图创建索引

    千次阅读 2012-02-12 15:01:44
    Transact-SQL 参考 ...为给定表或视图创建索引。...表或视图的所有者可以...可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。 语法 CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] IND
  • SQLServer之创建视图

    万次阅读 2018-10-24 11:33:17
    视图是一个虚拟的表,是一个表中的数据经过某种筛选后的显示方式,视图由一个预定义的查询select语句组成。 使用SSMS数据库管理工具创建视图 1、连接数据库,选择数据库,展开数据库-》右键视图-》选择新建视图。 ...
  • SQLServer之创建索引视图

    万次阅读 2018-10-25 16:00:54
     为视图创建唯一聚集索引可以提高查询性能,因为视图在数据库中的存储方式与具有聚集索引的表的存储方式相同。 查询优化器可使用索引视图加快执行查询的速度。 要使优化器考虑将该视图作为替换,并不需要在查询中...
  • SQL CREATE VIEW 语句 什么是视图?...我们可以视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。 注释:数据库的设计和结构不会受到视图中的函数、wh
  • Oracle中创建视图

    千次阅读 2008-10-15 23:54:00
    Oracle中创建视图 Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,... 通过创建视图可以提取数据的逻辑上的集合或组合。视图的优点: 1.对
  • 创建物化视图

    2012-09-05 13:05:27
    本章说明了如何创建一个物化视图组,在一个偏远的物化视图复制站点。 本章包含以下主题: 创建物化视图集团概述 创建物化视图组 之前建立物化视图的环境中,你必须设置你的主站点,创建一个主组,并...
  • 一. 视图 1.1 什么是视图       视图是一种数据库对象,是从一个或者多个数据表或视图中导出...根据创建视图时给定的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合, &n
  • 关于对视图创建索引的一些问题

    千次阅读 2007-08-07 17:14:00
    今天晚上在网上找了一些关于对视图创建索引的文章,比较不错,发上来:第一篇 聚集索引与非聚集索引索引是在数据库表或者视图上创建的对象,目的是为了加快对表或视图的查询的速度按照存储方式分为:聚集与非聚集...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,999
精华内容 13,599
关键字:

下列可以查看视图的创建语句是