zoukankan      html  css  js  c++  java
  • 数据库视图功能的使用

    数据库视图功能的使用

    创建视图的格式:

    create view <view name> as
    select <attributes name>
    from <table name>
    where<requirments>
    
    

    为什么要使用视图:

    1. 简化了操作,把经常使用的数据定义为视图。
    2. 安全性,用户只能查询和修改能看到的数据。
    3. 逻辑上的独立性,屏蔽了真实表的结构带来的影响。

    视图中的内容会随着表项自动更新。

    视图也是可以插入和删除的,但是注意对视图的插入和删除从理论上来说就可能有问题:

    image-20191027155121447

    而各种数据库对这个问题也有对应的处理方案:

    视图能否修改数据?

    单个表的视图是可以的,就像普通表一样。
    多个表的视图是不可以的,需要触发器。

    另外,即使是单表也有限制:

    来源:http://1035054540-qq-com.iteye.com/blog/1499430

    如果视图包含下述结构中的任何一种,那么它就是不可更新的:
    (1)聚合函数;
    (2)DISTINCT关键字;
    (3)GROUP BY子句;
    (4)ORDER BY子句;
    (5)HAVING子句;
    (6)UNION运算符;
    (7)位于选择列表中的子查询;
    (8)FROM子句中包含多个表;
    (9)SELECT语句中引用了不可更新视图;
    (10)WHERE子句中的子查询,引用FROM子句中的表;
    (11)ALGORITHM 选项指定为TEMPTABLE(使用临时表总会使视图成为不可更新的)。

    另外,如果原表中attribute有not null限制也不一定可以更新,如果not null的那个attribute没有包括在视图中就不能更新了,因为通过视图更新的话不存在的项是会设置为null的。

    image-20191027155811776

  • 相关阅读:
    char varchar nchar nvarchar text ntext区别
    Bindable 使用
    ShareObject离线存储相关
    as CPU 优化【转】
    as类收集(转)
    TweenLite 使用简介
    34个有用的ActionScript 3.0的API【转】
    as类库
    【转】A*寻路
    IOS学习笔记34—EGOTableViewPullRefresh实现下拉刷新
  • 原文地址:https://www.cnblogs.com/jiading/p/11747814.html
Copyright © 2011-2022 走看看