精华内容
下载资源
问答
  • 一组幻觉视图

    千次阅读 2010-11-22 23:13:00
    幻觉图片供欣赏

     

     

    你肯定看错了 里面都是正圆形的

     

     

     

    同心圆

     

     

     

    两个眼睛盯得方向不一样 为什么? 她们的眼睛可是一模一样啊

     

     

     

    看好了 图中的线都一样长的

     

    两个箭头指的长条颜色深浅一样吗?   答案是, 一样的.

     

     

    两个眼睛可是一样高啊

     

     

     

     

     

     

    盯着中间黑点一会 你会发现什么?

     

     

     

    看好了 左边的是人手 右边的是人

     

     

    眼睛盯着中间小点别动 头向后移动 看到什么了 ?

     

     

     

    中间是一个正圆形 你看到的是吗?

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    图中那几个是正方形吗? 它们是不是都扭曲了?

     

     

     

     

    两个人那个高???  你用直尺测量一下

     

    盯着中间的十字号看 你会发现…………

     

     

    展开全文
  • 视图

    千次阅读 2018-07-10 11:02:18
    1.什么视图视图是基于个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。视图是存储在数据字典里的条select语句。 通过创建视图可以提取数据的...

    1.什么是视图

    视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的集合或组合,不会存储数据。

          视图包含简单视图和复杂视图,两者区别如下:
    1.简单视图只从单表里获取数据,复杂视图从多表获取数据;
    2.简单视图不包含函数和数据组,复杂视图包含;
    3.简单视图可以实现DML操作,复杂视图不可以

     

    2.视图的优点

    1)对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
    2)用户通过简单的查询可以从复杂查询中得到结果。
    3)维护数据的独立性,试图可从多个表检索数据。
    4)对于相同的数据可产生不同的视图

    3.创建视图

    CREATE [ORREPLACE] [FORCE|NOFORCE] VIEW view_name  

     

    [(列名1,列名2…)]  

     

    AS

    视图查询语句 

     

    [WITHCHECK OPTION [CONSTRAINT constraint]] 

    [WITH READONLY]

     

    FORCE  :不管基表是否存在ORACLE都会自动创建该视图;

    NOFORCE   :只有基表都存在ORACLE才会创建该视图:

    列名1,列名2 :视图产生的列名;

    WITHCHECK  OPTION :插入或修改的数据行必须满足视图定义的约束,指定对视图执行的dml操作必须满足“视图子查询”的条件,即可对通过视图进行的增删改操作进行"检查",要求增删改操作的数据, 必须是select查询所能查询到的数据,否则不允许操作并返回错误提示. 默认情况下, 在增删改之前"并不会检查"这些行是否能被select查询检索到;

    WITH READONLY :创建的视图只能用于查询数据, 而不能用于更改数据。

     

    视图的定义原则:
    1.视图的查询可以使用复杂的SELECT语法,包括连接/分组查询和子查询;
    2.在没有WITH CHECK OPTION和 READ ONLY 的情况下,查询中不能使用 ORDER BY 子句;
    3.如果没有为CHECK OPTION约束命名,系统会自动为之命名,形式为SYS_Cn;

     

    4.视图操作

    查看视图数据:select * from view_name

    删除视图:drop view view_name

    查询视图:SELECT view_name,text from user_views;

     

    5.物化视图

    物化视图,存储实际数据, 因此会占用一定的数据库空间,物化视图中 的数据是可以重用的, 因此经常应用与 读取频繁的场合。比如统计一个拥有 百万级记录的数据表的 和  以及 均值 题, 将耗费大量的数据库资源和时间 ,可以通过物化视图对表进行一次统计, 并将统计结果存储在物化视图中,以后的每次查询直接查询该视图即可。

    6.创建物化视图

    CREATE MATERIALIZED VIEW VIEW_NAME   
    BUILD [IMMEDIATE| DEFERRED]  
    REFRESH [FAST| COMPLETE |FORCE| NEVER]   
    ON [COMMIT |DEMAND]  
    [start with sysdate next sysdate+1;]
    [for update]
    AS 
    查询语句 ; 

    BUILD IMMEDIATE:用于立即加载 化视图的数据

    BUILD DEFERRED:表示延迟载入数据

    REFRESH FAST:增量刷新,只刷新自上次刷新以后进行的修改。采用这种方式刷新时,需要创建物化视图日志,增量刷新有一些约束条件,需要满足;

    REFRESH COMPLETE:全量刷新

    REFRESH FORCE:选择FORCE方式,则Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式

    REFRESH NEVER:指物化视图不进行任何刷新

    ON COMMIT:要求 Oracle实现自动更新功能, 即基础表的数据更新被提交后, 应该自动更新物化视图的数据;

    ON DEMAND仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图

    start with…指定视图刷新时间,配置该参数后,会自动创建job

    for update:设置该选项,物化视图可以进行增删操作;

    7.物化视图操作

    1)物化视图刷新:

    手工刷新:DBMS_MVIEW.REFRESH(视图名称,'f');

    自动刷新:物化视图可以采用job进行定时刷新

    2)删除物化视图:

    DROP MATERIALIZED VIEW

    3)创建物化视图日志:

    create materialized view log on test1 [withprimary key|with rowid]

    4)删除物化视图日志

    drop materialized view log on test1

    5)物化视图可以创建索引;

    6)查看物化视图日志select * from MLOG$_ test1

    展开全文
  • 创建物化视图组

    2012-09-05 13:05:27
    本章说明了如何创建个物化视图组,在个偏远的物化视图复制站点。 本章包含以下主题: 创建物化视图集团概述 创建物化视图组 之前建立物化视图的环境中,你必须设置你的主站点,创建个主,并...

    本章说明了如何创建一个物化视图组,在一个偏远的物化视图复制站点。

    本章包含以下主题:

    之前建立物化视图的环境中,你必须设置你的主站点,创建一个主组,并设置您想要的物化视图站点。另外,如果冲突是有可能在主站点由于活动在您所创建的物化视图站点,然后配置解决冲突的物化视图主表之前创建的物化视图组。

    创建物化视图集团概述

    设置完成后,您的物化视图站点,创建至少一个主组,您就可以在一个偏远的物化视图站点创建的物化视图组。图5-1说明了这个过程创建一个物化视图组。

    另请参见:

    第2章,“创建复制站点”建立一个物化视图站点的信息,见第3章,“创建Master Group”(主组)“的信息,创建一个主组。

    图5-1创建物化视图组

    图5-1说明如下
    说明图5-1创建物化视图组“

    创建物化视图组

    本章将指导您通过创建两个物化视图组在两个不同的物化视图站点:mv1.worldmv2.world的过程:

    • 物化视图组在mv1.world的基础上的hr_repg在的orc1.world主站点的主组中的对象。

    • 的物化视图在mv2.world组的物化视图组在hr_repgmv1.world物化视图站点中的对象的基础上。

    因此,本章中的示例说明了如何创建一个多层物化视图的环境中,有一个或多个物化视图是基于其他物化视图。

    完成以下步骤来创建这两个实体化视图组。

    注:

    如果您正在查看这个在线文档,然后你就可以复制的文本的开始“脚本”行后,这说明“结束脚本”行到一个文本编辑器中,然后编辑文字,创建一个脚本,为您的环境。
    / *************************的脚本开始********************* *********
    

    创建物化视图集团mv1.world,

    完成以下步骤来创建物化视图的hr_repg组的mv1.world物化视图站点。这是基于实体化视图组在orc1.world主站点上的hr_repg的主组。


    第1步创建物化视图日志在主站点。

    如果你想要一个你的主站点,以支持物化视图站点,那么你就需要一个物化视图复制到每一个主表创建物化视图日志。从图2-1orc1.world作为目标的mv1.world物化视图站点的主站点的回忆。所需的物化视图日志必须建立在orc1.world的

    * /
    
    SET ECHO ON
    
    SPOOL create_mv_group.out
    
    将人力资源/小时@ orc1.world的
    
    创建的MATERIALIZED VIEW LOG ON hr.countries;
    创建的MATERIALIZED VIEW LOG ON HR.DEPARTMENTS;
    CREATE MATERIALIZED VIEW LOG ON HR.EMPLOYEES;
    创建的MATERIALIZED VIEW LOG ON hr.jobs;
    CREATE MATERIALIZED VIEW LOG ON hr.job_history];
    创建的MATERIALIZED VIEW LOG ON hr.locations;
    创建的MATERIALIZED VIEW LOG ON HR.REGIONS;
    
    / *
    

    另请参见:

    这条SQL语句的详细信息在Oracle数据库SQL参考 CREATE MATERIALIZED VIEW LOG语句

    步骤2如果他们不存在,则创建复制的模式和它的数据库链接。

    在建立物化视图组,您必须确保复制的模式存在物化视图站点在远程和必要的数据库链接已创建。

    在这个例子中,如果HR模式不存在,则创建架构。如果人力资源的架构已经存在的物化视图站点,然后给予必要的权限,并在此步骤中的下一个任务。

    * /
    
    CONNECT SYSTEM / MANAGER @ mv1.world
    
    CREATE TABLESPACE demo_mv1
     DATAFILE'demo_mv1.dbf'SIZE 10M AUTOEXTEND ON
     EXTENT MANAGEMENT LOCAL AUTOA​​LLOCATE;
    
    CREATE TEMPORARY TABLESPACE temp_mv1
     TEMPFILE'temp_mv1.dbf'SIZE 5M AUTOEXTEND ON;
    
    CREATE USER小时的IDENTIFIED BY小时;
    
    ALTER USER小时DEFAULT TABLESPACE demo_mv1
                  QUOTA UNLIMITED ON demo_mv1;
    
    更改USER小时TEMPORARY TABLESPACE temp_mv1的;
    
    授 
      CREATE SESSION, 
      CREATE TABLE, 
      CREATE PROCEDURE, 
      CREATE SEQUENCE, 
      CREATE TRIGGER, 
      CREATE VIEW, 
      CREATE SYNONYM, 
      ALTER SESSION,
      创建物化视图,
      ALTER ANY MATERIALIZED VIEW,
      CREATE DATABASE LINK
     人力资源;
    
    / *
    
    
    

    如果它不存在,则创建的数据库链接复制的模式。

    在建立物化视图组,你必须确保必要的数据库链接存在复制的模式。雇主的物化视图需要一个数据库链接指向的proxy_refresher时创建的主网站成立。

    * /
    
    将人力资源/小时@ mv1.world的
    
    CREATE DATABASE LINK orc1.world“ 
       CONNECT TO proxy_refresher IDENTIFIED BY proxy_refresher;
    
    / *
    

    第3步创建的物化视图组

    物化视图在远程物化视图站点管理员必须执行下列程序。

    * /
    
    连接mviewadmin / mviewadmin @ mv1.world
    
    / *
    

    主组的gname参数中指定的,你是复制目标主站点的名称相匹配的主组。

    * /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPGROUP(
          的gname =>'hr_repg
          主=>'orc1.world
          propagation_mode =>'异步');
    END;
    /
    
    / *
    

    第4步创建刷新组

    同时被刷新物化视图被添加到一个特定的刷新组。这将确保相关的物化视图刷新组之间的事务一致性。

    * /
    
    BEGIN
       DBMS_REFRESH.MAKE(
          =>'mviewadmin.hr_refg“
          列表=>'', 
          的next_date => SYSDATE, 
          间隔=>'SYSDATE + 1/24,
          implicit_destroy => FALSE, 
          rollback_seg =>'',
          push_deferred_rpc = TRUE, 
          refresh_after_errors => FALSE);
    END;
    /
    
    / *
    

    第5步添加对象的物化视图组。

    主表的基础上创建的物化视图。

    每当你创建的物化视图的物化视图的查询表的所有者,总是指定架构名称。在下面的实施例中,被指定为每个查询中的表的雇主小时

    * /
    
    创建物化视图hr.countries_mv1 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.countries @ orc1.world的;
    
    创建物化视图hr.departments_mv1 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM HR.DEPARTMENTS的orc1.world;
    
    创建物化视图hr.employees_mv1 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT *,从HR.EMPLOYEES @ orc1.world;
    
    创建物化视图hr.jobs_mv1 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.jobs @ orc1.world;
    
    创建物化视图hr.job_history_mv1 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.job_history @ orc1.world;
    
    创建物化视图hr.locations_mv1 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.locations的orc1.world;
    
    创建物化视图hr.regions_mv1 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM HR.REGIONS的orc1.world;
    
    / *
    

    将对象添加到物化视图组

    * /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          oname实现=>'countries_mv1
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          oname实现=>'departments_mv1
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          oname实现=>'employees_mv1
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          oname实现=>'jobs_mv1
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          oname实现=>'job_history_mv1
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          oname实现=>'locations_mv1
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          oname实现=>'regions_mv1
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    / *
    

    第6步将对象添加到刷新组

    所有的物化视图组对象,你可以添加到刷新组刷新的同时,相关的物化视图之间保持参照完整性。

    * /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.countries_mv1“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.departments_mv1“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.employees_mv1“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.jobs_mv1“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.job_history_mv1“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.locations_mv1“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.regions_mv1“
          宽松的=> TRUE);
    END;
    /
    
    / *
    

    创建物化视图集团mv2.world,

    完成以下步骤来创建物化视图的hr_repg组的mv2.world物化视图站点。这个物化视图是基于物化的hr_repg的视图组的mv1.world物化视图站点。


    第1步创建物化视图日志在主物化视图站点。

    如果您希望您的主物化视图站点,以支持另一种物化视图站点,那么你需要创建物化视图日志被复制到另一种物化视图站点为每个物化视图。回想一下图2-1mv1.world作为目标主内化视图站点的mv2.world物化视图站点。所需的物化视图日志必须建立在mv1.world的

    * /
    
    将人力资源/小时@ mv1.world的
    
    创建物化VIEW LOG ON hr.countries_mv1;
    创建物化VIEW LOG ON hr.departments_mv1;
    创建物化VIEW LOG ON hr.employees_mv1;
    创建物化VIEW LOG ON hr.jobs_mv1;
    创建物化VIEW LOG ON hr.job_history_mv1;
    创建物化VIEW LOG ON hr.locations_mv1;
    创建物化VIEW LOG ON hr.regions_mv1;
    
    / *
    

    另请参见:

    这条SQL语句的详细信息在Oracle数据库SQL参考 CREATE MATERIALIZED VIEW LOG语句

    步骤2如果他们不存在,则创建复制的模式和它的数据库链接。

    在建立物化视图组,您必须确保复制的模式存在物化视图站点在远程和必要的数据库链接已创建。

    在这个例子中,如果HR模式中不存在,则创建架构。如果HR模式中已经存在的物化视图站点,然后在此步骤中的下一个任务。

    * /
    
    CONNECT SYSTEM / MANAGER @ mv2.world
    CREATE TABLESPACE demo_mv2
     DATAFILE'demo_mv2.dbf'SIZE 10M AUTOEXTEND ON
     EXTENT MANAGEMENT LOCAL AUTOA​​LLOCATE;
    
    CREATE TEMPORARY TABLESPACE temp_mv2的
     TEMPFILE'temp_mv2.dbf'SIZE 5M AUTOEXTEND ON;
    
    CREATE USER小时的IDENTIFIED BY小时;
    
    ALTER USER小时DEFAULT TABLESPACE demo_mv2
                  QUOTA UNLIMITED ON demo_mv2;
    
    更改USER小时TEMPORARY TABLESPACE temp_mv2的;
    
    授 
      CREATE SESSION, 
      CREATE TABLE, 
      CREATE PROCEDURE, 
      CREATE SEQUENCE, 
      CREATE TRIGGER, 
      CREATE VIEW, 
      CREATE SYNONYM, 
      ALTER SESSION,
      创建物化视图,
      ALTER ANY MATERIALIZED VIEW,
      CREATE DATABASE LINK
     人力资源;
    
    / *
    

    如果它不存在,则创建的数据库链接复制的模式。

    在建立物化视图组,你必须确保必要的数据库链接存在复制的模式。雇主的物化视图需要一个数据库链接指向的proxy_refresher时创建的主物化视图站点建立了。

    * /
    
    将人力资源/小时@ mv2.world的
    
    CREATE DATABASE LINK mv1.world“ 
       CONNECT TO proxy_refresher IDENTIFIED BY proxy_refresher;
    
    / *
    

    另请参见:

    步骤6的更多信息创建代理主物化视图站点用户

    第3步创建的物化视图组

    物化视图在远程物化视图站点管理员必须执行下列程序。

    * /
    
    连接mviewadmin / mviewadmin @ mv2.world
    
    / *
    

    的复制组中指定的gname参数必须与您要复制的复制组的目标主物化视图站点的名称。

    * /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPGROUP(
          的gname =>'hr_repg
          主=>'mv1.world
          propagation_mode =>'异步');
    END;
    /
    
    / *
    

    第4步创建刷新组

    同时被刷新物化视图被添加到一个特定的刷新组。这将确保相关的物化视图刷新组之间的事务一致性。

    * /
    
    BEGIN
       DBMS_REFRESH.MAKE(
          =>'mviewadmin.hr_refg“
          列表=>'', 
          的next_date => SYSDATE, 
          间隔=>'SYSDATE + 1/24,
          implicit_destroy => FALSE, 
          rollback_seg =>'',
          push_deferred_rpc = TRUE, 
          refresh_after_errors => FALSE);
    END;
    /
    
    / *
    

    第5步添加对象的物化视图组。

    创建的物化视图的基础上的主物化视图。

    每当你创建的物化视图是基于另一个物化视图的物化视图的查询物化视图的所有者,总是指定架构名称。在下面的例子中,被指定为每个查询的物化视图的所有者小时

    * /
    
    创建物化视图hr.countries_mv2 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.countries_mv1 @ mv1.world的;
    
    创建物化视图hr.departments_mv2 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.departments_mv1 @ mv1.world的;
    
    创建物化视图hr.employees_mv2 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.employees_mv1 @ mv1.world的;
    
    创建物化视图hr.jobs_mv2 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.jobs_mv1 @ mv1.world的;
    
    创建物化视图hr.job_history_mv2 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.job_history_mv1 @ mv1.world的;
    
    创建物化视图hr.locations_mv2 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.locations_mv1 @ mv1.world的;
    
    创建物化视图hr.regions_mv2 
      REFRESH FAST PRIMARY KEY FOR UPDATE 
      AS SELECT * FROM hr.regions_mv1 @ mv1.world的;
    
    / *
    

    物化视图添加到物化视图组

    * /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          ONAME =>'countries_mv2
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          ONAME =>'departments_mv2
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          ONAME =>'employees_mv2
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          ONAME =>'jobs_mv2
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          ONAME =>'job_history_mv2
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          ONAME =>'locations_mv2
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    BEGIN
       DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(
          的gname =>'hr_repg
          SNAME =>'小时',
          ONAME =>'regions_mv2
          =>“快照”,
          min_communication => TRUE);
    END;
    /
    
    / *
    

    第6步将对象添加到刷新组

    所有的物化视图组对象,你可以添加到刷新组刷新的同时,相关的物化视图之间保持参照完整性。

    * /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.countries_mv2“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.departments_mv2“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.employees_mv2“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.jobs_mv2“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.job_history_mv2“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.locations_mv2“
          宽松的=> TRUE);
    END;
    /
    
    BEGIN
       DBMS_REFRESH.ADD(
          =>'mviewadmin.hr_refg“
          列表>'hr.regions_mv2“
          宽松的=> TRUE);
    END;
    /
    
    SET ECHO OFF
    
    SPOOL OFF
    
    / **********脚本结束********************* ************* /
    展开全文
  • 什么视图?作用是什么

    万次阅读 多人点赞 2018-08-14 09:31:16
    视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。 视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生...

    1.1. 视图
    1.1.1. 什么是视图
    视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。
    视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。

    创建视图的语法:
    01.CREATE [OR REPLACE] VIEW view_name[(alias[, alias…])]
    02.AS subquery ;
    视图创建后,可以像操作表一样操作视图,主要是查询操作。
    语法中的Subquery是SELECT查询语句,对应的表被称作基表。
    根据视图所对应的子查询种类分为几种类型:
    •SELECT语句是基于单表建立的,且不包含任何函数运算、表达式或分组函数,叫做简单视图,此时视图是基表的子集;
    •SELECT语句同样是基于单表,但包含了单行函数、表达式、分组函数或GROUP BY子句,叫做复杂视图;
    •SELECT语句是基于多个表的,叫做连接视图。
    1.1.2. 视图的作用
    如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,此后查询此视图即可,简化复杂查询;
    视图本质上就是一条SELECT语句,所以当访问视图时,只能访问到所对应的SELECT语句中涉及到的列,对基表中的其它列起到安全和保密的作用,可以限制数据访问。
    1.1.3. 授权创建视图
    创建视图的DDL语句是CREATE VIEW,用户必须有CREATE VIEW系统权限,才能创建视图。如果没有权限,创建视图时会提示:权限不足。
    管理员可以通过DCL语句授予用户创建视图的权限。下例中管理员给用户tarena创建视图的权限:
    01.GRANT CREATE VIEW TO tarena;
    1.1.4. 创建简单视图(单表)
    创建一个简单视图V_EMP_10,来显示部门10中的员工的编码、姓名和薪水:
    01.CREATE VIEW v_emp_10
    02.AS
    03.SELECT empno, ename, sal, deptno
    04.FROM emp
    05.WHERE deptno = 10;
    查看视图结构:
    01.DESC v_emp_10;

    1.1.5. 查询视图
    查询视图和查询表的操作相同:
    01.SELECT * FROM v_emp_10;
    此时视图的列名,和创建视图时的列名一致,不一定是原列名:
    01.SELECT id, name, salary FROM v_emp_10;
    1.1.6. 对视图进行INSERT操作
    视图本身并不包含数据,只是基表数据的逻辑映射。所以当对视图执行DML操作时,实际上是对基表的DML操作。对视图执行DML操作的基本原则:
    •简单视图能够执行DML操作,下列情况除外:在基表中定义了非空列,但简单视图对应的SELECT语句并没有包含这个非空列,导致这个非空列对视图不可见,这时无法对视图执行INSERT操作;
    •如果视图定义中包含了函数、表达式、分组语句、DISTINCT关键字或ROWNUM伪列,不允许执行DML操作;
    •DML操作不能违反基表的约束条件。
    对简单视图执行INSERT操作,成功插入数据到基表中:
    01.INSERT INTO v_emp_10
    02.VALUES(1234, ‘DOCTOR’, 4000, 10);
    简单视图可以通过DML操作影响到基表数据。
    1.1.7. 创建具有CHECK OPTION约束的视图
    语法如下:
    01.CREATE [OR REPLACE] VIEW view_name[(alias[, alias…])]
    02.AS subquery
    03.[WITH CHECK OPTION];
    其中:WITH CHECK OPTION短语表示,通过视图所做的修改,必须在视图的可见范围内:
    •假设INSERT,新增的记录在视图仍可查看
    •假设UPDATE,修改后的结果必须能通过视图查看到
    •假设DELETE,只能删除现有视图里能查到的记录
    创建带有CHECK OPTION约束的视图:
    01.CREATE OR REPLACE VIEW v_emp_10
    02.AS
    03.SELECT empno id, ename name, sal salary, deptno
    04.FROM emp
    05.WHERE deptno = 10
    06.WITH CHECK OPTION;
    下述DML语句操作失败,因为部门20不在视图可见范围内:
    01.INSERT INTO v_emp_10 VALUES(1008,‘donna’,5500, 20);
    02.UPDATE v_emp_10 SET deptno = 20 WHERE id = 7782;

    展开全文
  • collectionView头视图与组视图的创建

    千次阅读 2015-11-04 14:31:35
    视图的创建 static NSString *headerViewIdentifier = @"hederview"; -(void)addCollectionView {  UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc]init];  layout.
  • 什么视图

    千次阅读 2013-06-08 20:49:23
    什么视图? 使用视图是以不同方式展现列表或库中的数据的有效方式。不同的视图可以展示不同的列、具有不同的排序和筛选、分组、样式。 在SharePoint中,视图可以是公共的或私有的: 公共视图: 列表或库的管理...
  • Qt 之图形视图框架

    万次阅读 多人点赞 2016-07-20 16:59:13
    简述图形视图(Graphics View)提供了个用于管理和交互大量自定义的二维图形对象(Item),以及个支持缩放和旋转操作的视图部件用于显示这些视图项。框架包括个事件传播架构,支持scene中的items进行精确的双...
  • 本章主要讲解了ui-router嵌套视图以它与多个视图组合使用的示例。
  • 图形视图框架

    千次阅读 2017-12-19 11:30:33
    图形视图(Graphics View)提供了个平台,用于大量自定义2D图元的管理与交互,并提供了视图部件(view widget)来显示可以缩放和旋转的图元。 框架包括个事件传播架构,支持场景(Scene)中的图元(Item)...
  • 目录 、RUP概述 二、“4+1”视图模型 、RUP概述 ...“4+1”视图包括逻辑视图、实现视图、进程视图、部署视图和用例视图。 最终用户关心的是系统的功能,因此会侧重于逻辑视图; ...
  • 图形视图框架(The Graphic View Framework)用于管理和与大量定制的二维图形项目交互,以及用于可视化项目的视图小部件,支持缩放和旋转。
  • tableview的尾视图高度

    千次阅读 2015-12-15 16:13:52
    在返回的尾视图的高度中,不能设置尾视图的高度为0,可以用以下属性来设置//_brandTableView是表视图 _brandTableView.sectionFooterHeight = 0.0;
  •  【IT168技术】Android在屏幕中控件的组织上,可以将各个视图(控件)组成视图组(ViewGroup),视图组个包含了其他视图视图。 ▲图书封面  1.视图组(ViewGroup抽象类)  android.view包中ViewGroup类...
  • PostgreSQL 视图

    万次阅读 2018-05-22 17:46:14
    详细了解视图、函数(存储过程)、触发器、别名视图视图定义 视图是从个或者多个表中导出的,它的行为与表非常相似,但是视图个虚拟表。在视图中,用户可以使用select查询语句查询数据、insert插入数据...
  • 视图有大秘密

    千次阅读 多人点赞 2014-07-26 17:59:17
    视图,是什么nie,在我们小学的时候,就接触过视图的概念,那时候天还是那么蓝,云还是那么潇洒,给定个立体图形,让小伙伴画出这个图形的三视图,即---主视图,俯视,左视,时过境迁,她再次出现在我面前,...
  • 目录   、创建视图 方法:图形化方式进行创建(如) 方法二:SQL查询语句的方式创建视图(如)...个数据库中很多很多的表,我们每次不可能将它们全部查看遍,视图以后我们就方便了很多,可以...
  • SQL-什么视图及如何使用视图

    千次阅读 2017-07-29 12:08:12
    SQL-什么视图及如何使用视图 什么视图? 它们怎样工作?何时使用它们? 如何利用视图简化执行的某些SQL操作? 1. 使用视图的原因 A. 重用SQL语句。 B. 简化复杂的SQL操作。在编写查询后...
  • 今天给大家推荐个自由拖拽,自由组合的控件...前言最近有一个项目,有一个主界面,界面上很多控件或者多个 fragment 组成,大小不一,而且由于用户需要,需要自由拖动和自由组合,形成用户自己需要的组合成的模样
  • 视图函数

    千次阅读 2017-11-03 09:05:30
    定义视图 ...在应用目录下默认views.py文件,一般视图都定义在这个文件中如果处理功能过多,可以将函数定义到不同的py文件中 新建views1.py #coding:utf-8 from django.http import HttpResponse def
  • UML并发视图-状态详解

    千次阅读 2019-10-20 04:11:01
    UML并发视图-状态详解 提示: 对UML基础还不太了解或想查阅学习其他UML的戳这的戳这UML统一建模语言快速入门....状态是给定类的对象的一组属性值,这组属性值对所发生的事件具有相同性质的反应。 转换 转换是...
  • 首先mysql的视图不是种物化视图,他相当于个虚拟表,本身并不存储数据,当sql在操作视图时所有数据是从其他表中查询出来的。者带来的问题是使用视图并不能将常用数据分离出来,优化查询速度,切操作视图的很多...
  • SQL 存储过程和视图有什么关系?

    千次阅读 2007-07-02 12:55:00
    Link: http://www.haoad.net/Info/13426.Html个人觉得yykele的回答很不够的地方,“和视图什么关系”是不可能。 首写两者是SQL的数据对象 再次并且写法也很相似。 最重要的是在服务器的存储和运行过程几乎是...
  • 它使用易于使用的界面封装了一组特定的功能,它可以高效地使用CPU和内存,等等。不过,作为一个设计良好的班级,自定义视图应该: 符合Android标准 提供适用于Android XML布局的自定义样式属性 发送无障碍事件 与多...
  • 什么是索引视图

    千次阅读 2011-04-15 19:20:00
    通常,这些视图的主要作用是: • 提供种安全机制,将用户限制到个或多个基表的某个数据子集中。 • 提供种机制,允许开发人员自定义用户通过逻辑方式查看存储在基表中的数据的方式。...
  • 格式: createview表beginselectAFROMtable1unionallselectAFROMtable2unionallselectAFROMtable3END 注意点就是同表查询一样列和类型一致。 转载于:https://www.cnblogs.com/CreateFree/p/8336510.html...
  • Oracle视图

    千次阅读 2019-06-09 17:37:00
    视图的本身是不包含任何数据,只是个查询结果,当基表的数据发生变化时,视图里面的数据也会跟着发生变化。向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的SELECT语句。...
  • odoo10参考系列--视图一(列表视图

    千次阅读 2018-03-30 20:50:31
    共同结构--一般视图都有视图对象公开了多个字段,除非另有说明,否则它们是可选的。 name (强制性的)  在对某个列表进行查找时,仅作为对视图种记忆/描述是有用的 model  与视图关联的模型,如果适用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 368,854
精华内容 147,541
关键字:

一组视图都有什么图