精华内容
下载资源
问答
  • oracle视图原理以及dml操作视图限制

    千次阅读 2017-07-07 18:10:10
    oracle视图实际上就是封装sql语句,对外提供一个别名,使用者不需要关心复杂的sql,视图执行之后会将执行的结果当做一个表来使用,相当于一个虚拟的表,如果想在视图上进行DML的操作,在创建时候两个选项 ...

    1 视图的概念

    oracle视图实际上就是封装sql语句,对外提供一个别名,使用者不需要关心复杂的sql,视图执行之后会将执行的结果当做一个表来使用,相当于一个虚拟的表,如果想在视图上进行DML的操作,在创建时候有两个选项

    1)选择项WITH CHECK OPTION表示对视图进行UPDATE INSERT DELETE操作时,要保证操作的数据满足视图定义的谓词条件,也就是视图子查询中的WHERE子句的条件

    2)选项WITH READ ONLY 只读视图,不允许通过本视图更新本表

    视图创建语句: Create [or  Replace] VIEW VIEW_NAME AS 子查询【WITH CHECK OPTION】【WITH READ ONLY】
    视图的删除:DROP  VIEW  VIEW_NAME

    2.视图的存储
    与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。

    3.视图的作用
    用户可以通过视图以不同形式来显示基表中的数据,视图的强大之处在于它能够根据不同用户的需要来对基表中的数据进行整理。也就是说根据不同的需求创建不同的视图,
    通过视图可以设定允许用户访问的列和数据行,从而为表提供了额外的安全控制隐藏数据复杂性 视图中可以使用连接(join),用多个表中相关的列构成一个新的数据集。此视图就对用户隐藏了数据来源于多个表的事实。

    4.视图的工作机制
    视图的定义就是其使用的查询语句,Oracle将这个定义以文本形式存储在数据字典中。当用户在 SQL 语句中引用了视图时,Oracle 将进行以下工作: 将引用了视图的语句与视图的定义语句整合为一个语句 在共享SQL 区解析整合后的语句 执行此语句 当现有的共享SQL 区中没有与整合后的语句一致时,Oracle 才会为此语句创建新的共享SQL 区。因此,引用了视图的SQL 语句也能够利用已有的共享 SQL 区以达到节约内存和提高性能的目的。

    5.视图的依赖性
     
    由于视图的定义是一个引用了其他对象(表,视图)的查询,因此视图依赖于其所引用的对象。Oracle 会自动地处理视图的依赖性。例如,当用户移除了一个视图的基表后再重建此表,Oracle 将检查新的基表是否符合视图的定义并判断视图的有效性。

    对视图进行dml操作注意事项:

    假设现在人事管理系统中有三个表,一个是员工基本信息表,包含员工编号(非空)、员工姓名(非空)、身份证号码等字段;第二个表是企业部门职位表包含职位编号(非空)、职位名称(非空)、职位描述等字段;第三个是员工与部门职位对应表,包含员工编号(非空)、职位编号(非空)、描述等字段。


    现在数据库管理员做了一张视图,查询员工编号、员工姓名、部门信息。此时,这张连接视图可以用DML语句来进行更新呢?这就要看其是否满足一定的条件。


    条件一:在连接视图中不能有Order by排序语句。


    若用户想要在上面这张视图中,更改员工所属的部门,则首先要考虑,在生成视图的查询语句中,是否使用了Order by排序语句。若有这个排序语句的话,则在视图上进行DML操作,是不会成功的。


    这主要是因为采用了Order by排序语句后,记录的物理存储顺序发生了改变。此时,若在视图上进行了数据更新,则其对应的基础表找不到具体更改的物理位置。所以,会以失败告终。


    所以,用户若想在上面这个视图界面对员工所属的部门进行更改的话,则一定不能够在SQL语句中加入Order by等排序语句。类似的,也不能够在SQL语句中含有Group by、connetc by等语句。若有这些语句的话,则数据库都不允许对数据进行数据更新操作。


    条件二:基础表中所有的NOT NULL列都必须在这个视图中。


    若想在视图上进行数据更新操作的话,则必须要求对应基础表中的所有不允许空的字段都在当前的视图中。其实这很好理解,若每个字段不允许为空,则又不在当前的视图中,则新增加记录的时候,这个字段就没有被赋值,故在保存时就会被基础表所拒绝。


    在上面这个例子中,数据库管理员若建立的视图没有包含所有的非空字段。如企业部门职位表总的职位编号就没有在这个视图中。所以,数据库不会接纳这张视图上的更新。若用户确实需要在这张视图上更新数据,则就要考虑把所有的非空字段显示在这张视图上。

    另外,需要注意的是,无论是更新还是删除语句,若基础表中的某个非空列不在这个视图中,都无法进行更改。也许有人会问,如果用户不是增加记录,而只是更新数据。那难道也要求在视图中包含所有的非空字段呢?答案是肯定的。因为数据库系统在提交更新事务之前就会对这个条件进行判断。


    条件三:需要更新的列不是虚拟列。


    在视图中,可能有些列的结果是通过列表达式定义的,在基础表中并不存在。我们把这些列叫做虚拟列。如在上面的员工信息表中,并没有员工的出生年月信息。而在视图中,我们可以通过身份证号码来取得某个员工的出生日期。此时若想在视图中更改这个出生日期,则很明显是不行的。因为基础表中根本没有这个字段,那更改的结果就无法保存。


    只要在视图中有虚拟列的存在,只要视图中任何一列是由列表达式定义的,那么对不起,整张视图都不能够进行更改。这个控制原理跟上面这个条件是类似的。


    可见,在数据库设计的时候,就需要考虑是否需要在视图基础上对表的内容进行更改。若需要更改的话,则一定不能够在视图中采用虚拟列,而宁愿在表中多增加一些字段。或者在数据库视图中不采用虚拟列,而是在前台应用程序中采用虚拟列。


    条件四:不能够具有分组函数。


    如上面这张员工与职位的对应关系表中,用户不但想知道某个职位现有的员工有哪些;还希望知道,某个职位现在员工的具体人数。要实现这个需求的话,则数据库管理员就需要在视图中采用分组函数,来统计某个职位的具体人数。


    但是,若视图中有这个函数的话,则也不能够对这张视图进行更新。这是Oracle数据库的强制规定。


    其实,这也可以通过一些灵活的方式来避免。如在数据库视图中不需要采用分组函数。而是在前台的Select语句中,查用分组函数。因为前台要调用数据库中的数据,仍然需要查用Select语句去查询视图。所以,即使在原始的数据库视图中不对数据进行分组,则在前台应用程序中仍然可以帮助用户完成数据分组与统计的任务。此时,用户若在视图中更改数据的话,不仅可以更新数据库基础表中的内容;而且,还可以及时的反馈到前台的应用程序界面中。


    分组函数会增加数据库查询的负担;同时,使得无法在视图上采取DML操作。故数据库管理人员需要跟前台应用程序开发人员进行协商,在前台实现对数据的分组统计,而不是在后台。


    除了以上几个限制条件之外,若需要在视图上进行DML操作的话,则在建立视图的Select语句中,还不能够有集合运算符、子查询等等。以上这些是一些必须要满足的基本条件,缺一不可。否则的话,针对视图的DML操作,就会以失败告终。


    但是,并不是说符合了上面这个几个条件后,视图就可以畅所无阻的进行数据更新了,其仍然必须符合一定的规则。这其中,最重要的就是键值保存表规则。


    如果连接视图中的一个基础表的键在他的视图中仍然存在,并且在连接视图中仍然是主键,则这个基础表就为键值保存表。在连接视图上,对视图进行插入、删除、更新等操作时,一次只能够对视图中的一个键值保存表进行更新。


    展开全文
  • MySQL——更新视图

    千次阅读 2018-05-16 23:07:48
    视图是一个虚拟表,其中没有数据,通过视图更新的时候都是转到基本表上进行更新的,如果对视图增加或者删除记录,实际上是其基本表增加或者删除记录。 更新视图的三种方法:INSERT、UPDATE 和 DELETE。1. 使用...

    一.   更新视图  

      更新视图是指通过视图来插入、更新、删除表中的数据。视图是一个虚拟表,其中没有数据,通过视图更新的时候都是转到基本表上进行更新的,如果对视图增加或者删除记录,实际上是对其基本表增加或者删除记录。

         更新视图的三种方法:INSERT、UPDATE 和  DELETE。

    1.  使用  UPDATE  语句更新视图

        【例】使用  UPDATE  语句更新视图  view_t。

    更新前:

    mysql> SELECT  *  FROM  view_t;
    +----------+
    | quantity |
    +----------+
    |        3 |
    +----------+

    更新语句:

    mysql> UPDATE  view_t  SET  quantity=5;
    Query OK, 1 row affected (0.13 sec)

    更新后:

    mysql> SELECT  *  FROM  view_t;
    +----------+
    | quantity |
    +----------+
    |        5 |
    +----------+

    对视图  view_t  更新后,基本表  t  也更新了。

    mysql> SELECT  *  FROM  t;
    +----------+-------+
    | quantity | price |
    +----------+-------+
    |        5 |    50 |
    +----------+-------+

    2.  使用  INSERT  语句更新视图

        【例】使用  INSERT  语句在基本表  t  中插入一条记录。

    插入前:
    mysql> SELECT  *  FROM  t;
    +----------+-------+
    | quantity | price |
    +----------+-------+
    |        5 |    50 |
    +----------+-------+

    插入语句:

    mysql> INSERT  INTO t  VALUES (3,5);
    Query OK, 1 row affected (0.10 sec)

    更新后:

    mysql> SELECT  *  FROM  t;
    +----------+-------+
    | quantity | price |
    +----------+-------+
    |        5 |    50 |
    |        3 |     5 |
    +----------+-------+

    基于 t  表的视图  view_t2  也跟新了:

    mysql> SELECT  *  FROM  view_t2;
    +------+-------+-------+
    | qty  | price | total |
    +------+-------+-------+
    |    5 |    50 |   250 |
    |    3 |     5 |    15 |
    +------+-------+-------+

    3.  用 DELETE 语句更新视图

        【例】使用  DELETE  语句删除视图  view_t2  中的一条记录。

    更新前:

    mysql> SELECT  *  FROM  view_t2;
    +------+-------+-------+
    | qty  | price | total |
    +------+-------+-------+
    |    5 |    50 |   250 |
    |    3 |     5 |    15 |
    +------+-------+-------+

    更新语句:

    mysql> DELETE  FROM  view_t2  WHERE  price=5;
    Query OK, 1 row affected (0.10 sec)

    更新后:

    mysql> SELECT  *  FROM  view_t2;
    +------+-------+-------+
    | qty  | price | total |
    +------+-------+-------+
    |    5 |    50 |   250 |
    +------+-------+-------+


    二.   更新视图的限制

            并不是所有的视图都可以更新,以下几种情况是不能更新视图的:

        1.   视图中包含  COUNT()、SUM()、MAX() 和 MIN() 等聚合函数。

        2.   视图中包含  UNION、UNION ALL、DISTINCT、 GROUP  BY  和  HAVING 等关键字。

        3.   常量视图。

        4.   视图中的  SELECT 中包含子查询。

        5.   由不可更新的视图导出的视图。

        6.   创建视图时,ALGORITHM  为 TEMPTABLE 类型。

     
    【注】   视图中虽然可以更新数据,但是有很多的限制。一般情况下,最好将视图作为查询教据的虚拟表,而不要通过视图更新数据。因为,使用视图更新数据时,如果没有全面考虑在视图中更新数据的限制,可能会造成数据更新失败。



    【注】参考于清华大学出版社《MySQL数据库应用案例课堂》2016年1月第1版
    展开全文
  • 更新视图

    千次阅读 2006-05-16 22:23:00
    更新视图- - 1.视图概述 视图是从一个或个基表(或视图)导出的表。... 视图上的操作和基表类似,但是 DBMS对视图更新操作(INSERT、DELETE、UPDATE)往往存在一定的限制。 DBMS对视图进行的权限

    可更新视图- -

                                          

     

    1.视图概述

       视图是从一个或多个基表(或视图)导出的表。通常视图仅仅是一个虚表,即数据库中只存放视图的定义信息等元数据,而不存放视图对应的数据。 视图上的操作和基表类似,但是 DBMS对视图的更新操作(INSERT、DELETE、UPDATE)往往存在一定的限制。 DBMS对视图进行的权限管理和基表也有所不同。
      
      视图可以提高数据的逻辑独立性,也可以增加一定的安全性。 DBMS在处理视图时和基表存在很多不同的地方,例如:

    • 定义:基于基表或视图
    • 数据:一般不单独存放
    • 查询:允许,和基表类似
    • 插入:有限制
    • 删除:有限制
    • 更新:有限制
    • 权限:有所不同

      本文主要讨论视图的可更新性,即考虑视图上的更新类操作存在哪些特点和限制。

    2.SQL92定义的可更新视图

      若一个视图是从单个的基表导出的,并且只是去掉了基表的某些行和列,且保留了基表的主码,这样的视图被称为行列子集视图。SQL92中对可更新视图的支持非常有限,主要就是上述的行列子集视图。 SQL92中对可更新视图的要求如下:

    1. 视图定义必须是一个简单的SELECT语句,不能带连接、集合操作。即SELECT语句的FROM子句中不能出现多个表,也不能有 JOIN、EXCEPT、UNION、INTERSECT
    2. 视图定义的 SELECT子句中不能有DISTINCT
    3. SELECT子句中的各列必须来自于基表(视图)的列,不能是表达式
    4. 视图所基于的基表(或视图)必须是可更新的
    5. 视图定义的 SELECT子句的子查询的FROM子句不能有视图所基于的基表(或视图)
    6. 视图定义的 SELECT语句中不能含有GROUP BY子句
    7. 视图定义的 SELECT语句中不能含有HAVING子句

      根据SQL92的定义,一个视图要么是可更新的,要么是不可更新的,二者必居其一。SQL92 也不允许视图中某些列可以更新,某些列不可以更新。

    3.SQL99(SQL3)定义的可更新视图

      SQL99放宽了对可更新视图的限制,甚至还区分了视图是否可插入、列是否可 LL、连接查询生成的视图可更新。

    4.主流 DBMS对可更新视图的支持

     (1)MS SQL Server 2000

      SQL Server 2000 除了支持SQL标准规定的可更新视图,还提供了两种扩充:

    1. INSTEAD OF 触发器
      在视图上创建这种类型的触发器,可以间接地实现对基表的更新。
    2. 某些分区视图是可更新的

      对于不具备上述两种特性的视图, SQL Server 遵照SQL标准的规定做了如下限制:

    1. SELECT语句的结果列中没有聚集函数,SELECT子句中没有TOP, GROUPBY, UNION,DISTINCT 子句
      这里没有提到 INTERSECT, EXCEPT,是因为SQL Server不支持。
    2. SELECT语句的结果列中没有导出列。即只能有列名。
    3. SELECT语句的FROM字句至少有一个表(或视图)。
      因为 SQL Server支持不带FROM子句的SELECT语句。例如:

      CREATE VIEW NoTable AS
        SELECT GETDATE() AS CurrentDate,
        @@LANGUAGE AS CurrentLanguage,
        CURRENT_USER AS CurrentUser;

      SELECT CURRENT_USER;

    4. UPDATE和INSERT,如果修改的数据仅涉及视图所基于的一个基表,则可更新。DELETE则只能用于基于单个基表的视图。
    5. 分区视图其实是用 UNION ALL联合两个或多个SELECT语句定义的视图。

      SELECT
      基表的所有列必须都在 SELECT的结果列中。
      各个 SELECT语句的结果列对应的列是同一类型和COLLATION。
      结果列中至少有一列上定义了简单的 CHECK约束,保证该列取某个具体值的时候,要么不满足所有表的CHECK约束,要么满足其中一个表上的CHECK约束。即这些CHECK定义的值域是互不重叠的。
      这样的列被成为分区列。表上的约束必须是打开的。
      表中的一个列最多在结果列中出现一次。

      PARTITIONED COLUMN
      分区列是主码的一部分。
      分区列不能是computed column。
      该列上只能有1个约束。

      MEMBER TABLES

      表可以是本数据库中的,也可以是其他数据库中的,也可以是通过 OPENDATASOURCE 或 OPENROWSET-based引用的。
      同一个表只能在 CREATE VIEW语句中出现一次。
      不能在compute column上建有索引。
      表的主码必须类似(建在同样的列上)。
      所有表的 ANSI padding设置一致。

      其他关于分布式分区表的限制

     (2)ORACLE 8i/9i

      ORACLE允许用“WITH READ ONLY”子句显式地指定视图是只读的。若视图不带上述子句,则ORACLE遵照SQL标准提出了以下限制:

    1. 不能有集合操作(UNION,UNION ALL,INTERSECT,MINUS)
    2. 不能有DISTINCT
    3. 不能有聚集函数(AVG,COUNT,MAX,MIN等)和分析函数
    4. 不能有GROUP BY,ORDER BY,CONNECT BY,START WITH
    5. SELECT列表中不能出现collection expression
    6. SELECT列表中不能有子查询
    7. 一般不能是JOIN查询(参见i)
    8. SELECT列表中若出现系统的伪列或表达式,则更新语句不能修改这些列
    9. 可更新的连接视图要满足一些额外的条件
      简单的说,视图定义中用到的基本表必须是“键值保持表”。(A base table of a view is considered a key-preserved table if every primary-key or unique-key value in the base table is also unique in the result set of the join view—in other words, if the entity integrity of the base table is preserved by the join view. )

      我们还可以用INSTEAD OF 触发器来实现视图的更新。详细的信息还请参考文献[7]。

    (3)DB2V8

      DB2将视图区分为可删除视图、可更新视图、可插入视图、只读视图、不可用视图等。这样的划分应该更为合理,也比较好理解。DB2的可更新视图:

    1. 允许更新某些UNION ALL视图
    2. 不允许更新象ORACLE支持的连接查询视图

      也可以用INSTEAD OF 触发器来实现视图的更新操作。详细的信息还请参考文献[8]。

      主要的几个 DBMS 都实现了 SQL92 定义的可更新视图,SQL99 定义的可更新视图也或多或少的得到了支持。但是需要注意的是,产品之间对可更新视图的实现程度是有差异的,而且由于它们支持的SQL语法存在一些差异,要书写可移植的 SQL 语句需要特别注意。

    5.可更新视图的进一步探讨

      E.F.Codd提出了评价全关系系统的12条准则。其中的准则6就是讨论视图的更新的。准则6的内容如下:
        准则6:视图更新准则。所有理论上可以更新的视图也应该允许由系统更新。
      理论上可以更新的视图指的是对视图的更新要求,存在一个与时间无关的算法,可以无二义性地把更新要求转换为对基表的更新序列。视图更新准则对于系统对数据的逻辑独立性支持是非常重要的。
      
      C. J. Date在文献[2]和他的很多技术文章中对SQL标准定义的可更新视图提出了批评,并提出了自己的一系列观点。他的基本观点是所有的视图本质都是可以更新的,只是某些时候要受制于完整性约束。这是一种比较美妙的境界,实际的 DBMS产品当然还不可能做到这样完美。
    参考文献:

    1.萨师煊、王珊,数据库系统概论(第三版),高等教育出版社,2000
    2.C. J. Date,An Introduction to Database Systems (Seventh Edition),机械工业出版社,2002
    3.SQL92, ANSI/ISO/IEC 9075:1992
    4.SQL99, ANSI/ISO/IEC 9075-2:1999
    5.Peter Gulutzan, Trudy Pelzer, 齐舒创作室译, SQL-3 参考大全, 机械工业出版社,2001
    6.Microsoft, http://msdn.microsoft.com, SQL Server 2000 Online Book
    7.Oracle, http://otn.oracle.com, Oracle 9i SQL Reference
    8.IBM, http://www.ibm.com, IBM DB2 Universal Database SQL Reference Volume 2
    9.http://www.oracle.com/oramag/oracle/01-mar/index.html?o21o8i.html
    10.http://www-900.ibm.com/developerWorks/cn/dmdd/library/techarticles/0210rielau/0210rielau.shtml

    展开全文
  • mysql视图操作限制

    千次阅读 2016-11-29 14:26:36
    3.FROM 子句不能包含个表。 4.WHERE 子句不能包含一个关联性子查询。 5.SELECT 语句不能包含一个GROUP BY 子句。 6.SELECT 语句不能包含一个ORDER BY 子句。 7.SELECT语句不能包含一个集合运算符。 8.不能...

    这些限制针对的是定义后的视图的更新问题。

    1.SELECT 子句不能包含 DISTINCT。

    2.SELECT 子句不能包含聚合函数。

    3.FROM 子句不能包含多个表。

    4.WHERE 子句不能包含一个关联性子查询。

    5.SELECT 语句不能包含一个GROUP BY 子句。

    6.SELECT 语句不能包含一个ORDER BY 子句。

    7.SELECT语句不能包含一个集合运算符。

    8.不能更新一个虚拟列。

      CREATE VIEW AGES(PALYERNO,BEGIN_AGE) as

         SELECT PALYERNO,JOINED-YEAR(BIRTH_DATE)

         FROM PLAYERS;(该语句会报错)

    9.SELECT子句必须包含FROM子句中指定的表中的所有的列,但这些列不允许空值或者没有指定默认值。


    这只是其中很小的一部分限制,具体限制等到开发用到了再看。。。。。

    展开全文
  • 1、什么视图 视图就是一条SELECT语句执行后返回的结果集, 视图是一个虚拟表,同真实的表一样,视图包含一系列带名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义...
  • [朝花夕拾]可更新视图

    万次阅读 2014-03-04 21:59:01
    视图上的操作和基表类似,但是 DBMS对视图更新操作(INSERT、DELETE、UPDATE)往往存在一定的限制。 DBMS对视图进行的权限管理和基表也有所不同。    视图可以提高数据的逻辑独立性,也可以增加
  • 更新视图的说明

    千次阅读 2013-04-26 10:03:56
    Oracle是一个适用于大中型企业、功能强大且...Oracle对视图的查询操作没有任何的限制,但是对视图更新操作往往受到一定的约束。下面介绍如何实现Oracle可更新视图的设计。    1 视图的概念  视图(View)是
  • 作者:仁者 ...比如一个比较复杂的查询不想每次都写很多语句,就可以写个视图。或者给特定用户开放某些表的读取权限,但要加一些行和列的限制,也可以写个视图。 第一点:使用视图,可以定制用户数据,聚...
  • 目录 一、创建视图 方法一:图形化方式进行创建(如图) 方法二:SQL查询语句的方式创建视图(如图) ...一个数据库中有很多很多的表,我们每次不可能将它们全部查看一遍,视图以后我们就方便了很多,可以...
  • Oracle连接视图DML操作的限制

    千次阅读 2012-11-02 17:35:38
    从理论上来说,在视图上使用DML语句数据进行更新,最终都会在基础表上完成。也就是说,可以通过视图对基础表的内容进行修改。但是,往往没有这么简单。若想在连接视图上执行DML修改语句的话,需要严格的遵守一些...
  • 视图

    千次阅读 2013-02-26 17:08:20
    一、什么视图:  在ORACLE中,称视图为逻辑表。逻辑二字还是说明了视图不是真正的表。因为视图内根本就没有数据。视图的全部家当,也就是你创建视图时的SELECT语句。 二、创建视图: 1、创建视图的主法是...
  • SQL Server视图中常見限制条件

    千次阅读 2010-03-01 09:15:00
    --> Title : SQL Server视图中常見限制条件--> Author : wufeng4552--> Date : 2010-03-01(1): 视图数据更改的常見限定当用户更新视图中的数据时,其实更改的是其对应的数据表的数据.无论是对视图中的数据进行更改...
  • MySQL视图

    万次阅读 多人点赞 2019-08-03 16:44:21
    视图是由数据库中的一个表或个表导出的虚拟表,是一种虚拟存在的表,方便用户数据的操作。 1.1 视图的概念 视图是一个虚拟表,是从数据库中一个或个表中导出来的表,其内容由查询定义。同真实表一样,视图...
  • vuejs 深入响应式原理 视图更新
  • hibernate为视图建立实体映射!
  • 什么是MySQL视图

    千次阅读 2013-08-16 23:35:42
    视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带名称的列和行数据。但是,视图并不在数据库中以存储的数据值集...通过视图进行查询没有任何限制,通过它们进行数据修改时的限制少。  
  • iView 作者 Aresn 于 2019 年创办了北京视图更新科技有限公司,开始自由、全职地维护 iView 及其相关的软件。View UI 即原先的 iView,从 2019 年 10 月起正式更名 View UI,并使用全新的 Logo。iView 作者将在...
  • Oracle物化视图与物化视图日志

    万次阅读 多人点赞 2019-04-02 21:43:30
    文章目录物化视图物化视图与普通视图的区别创建一个存放person的表创建一个存放person的address的表初始化数据创建物化视图的语句1.build [immediate|deferred]2.refresh [fast|complete|force] 视图刷新的方式:3.MV...
  • 通过视图来访问数据,其优点是非常明显的。如可以起到数据保密、保证数据的逻辑独立性、简化查询操作等等。 但是,话说回来,SQL Server数据库...无论是对视图中的数据进行更改,还是在视图中插入或者删除数据,都是类
  • 视图使用规则和限制[转]

    千次阅读 2010-03-03 15:40:00
    看到一篇视图的使用注意事项,虽然都未曾...视图作为数据库对象,可以将其权限独立出来赋给用户,可避免用户基表的盲目危险操作,同时也可屏蔽一部分私密的属性列。定义语句: CREATE [OR REPLACE ] [FORCE |NOFORCE
  • Oracle 物化视图

    万次阅读 2013-05-05 15:12:56
    近来看到一些文章有关Oracle 物化视图的,整合了下,比较详细,以作memo: 物化视图(Materialized View)在9i以前的版本叫做快照(SNAPSHOT),从9i开始改名叫做物化视图。其实无论是快照还是物化...
  • 物化视图是相对于视图而言的,但是...者带来的问题是使用视图并不能将常用数据分离出来,优化查询速度,切操作视图很多命令和普通标一样,这回导致在业务中无法通过sql区分表和视图,是代码变得复杂。 实现视图的方
  • Oracle视图

    千次阅读 2019-06-09 17:37:00
    视图可以理解数据库中一张虚拟的表。 它是建立在已表的基础上, 赖以建立的这些表称为基表。 通过一张或者张基表进行关联查询后组成一个虚拟的逻辑表。 查询视图,本质上是对表进行关联查询。 视图的本身...
  • 转载自:为什么你应该抛弃Express的视图渲染引擎 Nodejs Express框架的一个被人们广为使用的特性是它的渲染引擎。Express视图渲染引擎允许Controller提供一个视图名称和视图模型对象给Express,然后返回由HTTP响应...
  • 视图对性能的影响

    万次阅读 2016-08-02 23:16:01
    Performance Implications of Views 许多人都不认为视图...一些应用程序每一个用户使用一个表,这通常是为了实现行级别安全性。一个和前面例子类似的视图能够在表内实现类似的安全性,并且打开表的次数会更少,
  • 什么是索引视图

    千次阅读 2011-04-15 19:20:00
    通常,这些视图的主要作用是: • 提供一种安全机制,将用户限制到一个或个基表的某个数据子集中。 • 提供一种机制,允许开发人员自定义用户通过逻辑方式查看存储在基表中的数据的方式。...
  • 【MySQL】视图

    万次阅读 2021-07-21 14:36:19
    1. 为什么使用视图 重用SQL语句。...可以对视图执行SELECT操作,过滤和排序数据,将视图联结到其他视图或表,甚至能添加和更新数据(添加和更新数据存在某些限制)。 视图仅仅是用来查看存储在别处的数
  • 视图操作视图操作:视图是可以进行数据写操作的,只不过有很多限制
  • 以往当我们查询数据时,一定要认真的地从设计select语句开始,将需要查询的每个字段写在sql语句里,每次你要以同样的条件来查询数据时,那么每次都要重复输入相同的查询语句,效率低。若将这个经常要重复使用的...
  • MYSQL视图查询

    千次阅读 2019-03-26 13:48:17
    最近在优化项目页面响应时间,发现一处sql查询结构简单却非常慢,点进去发现是从视图进行查询的,刚开始不知道为什么,后来查询才明白原因,记录一下。 视图定义在有些时候方便很多,但是有些复杂情况定义就不适合。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 164,863
精华内容 65,945
关键字:

对视图的更新为什么有很多限制