zoukankan      html  css  js  c++  java
  • SQL复习六(视图)

    视图是关系数据库系统提供给用户以多角度观察数据库中数据的一种重要方法。视图是从一个或者几个表中导出的虚拟表。视图一经定义就可以被查询和删除。也可以在视图上定义视图。用视图完成数据的更新(增,删,改)操作有一定的限制。

    修改规则:

    1)如果视图是从多个表使用连接操作导出的,不可以更新;

    2)如果导出视图的过程中,使用了分组和集函数,不可以更新;

    3)如果视图是从单个基本表使用选择和投影,导出的属性集包含了基本表的一个候选集,这个视图成为“行列子集视图”,允许对其进行更新操作。

    1.1定义视图

    语法:

    create view  <视图名> [<列名1,列名……>]

    as <select 子查询语句>

    [with check option]

    组成视图的列名要么全部省略,要么全部指定。下列三种情况必须明确指定组成视图的列名:

      1)某个目标列不是单纯的属性名,而是集函数或列表达式;

      2)多连接导出的视图中有几个同名列作为该视图的属性列名

      3)需要在视图中为某个列启用新的更合适的名字。

    <select 子查询语句>可以是任意复杂的select语句,通常不允许有order by 和distinct短语;

    with check option 表示视图进行update,insert 和delete操作时要保证更新,插入和删除的元祖满足视图定义中的谓词条件(select子查询中的条件表达式)

    create viw emp_view 
    as select empno,ename,job,deptno from emp 
    with check option
    create  view emp_tatal (empno,ename,tatal)
    as select empno,ename,sal+ifnull(comm,0) from emp 

    1.2 删除视图

    语法:

    drop view <视图名>

    drop view emp_tatal;

    1.3 查询视图

    和使用基础表一样使用视图。

    select * from emp_view;

    1.4 更新视图

    跟新视图,指着通过视图来插入,删除,和修改数据。视图的跟新最终要转化为对基本表的更新。

  • 相关阅读:
    Frans Kaashoek获得ACM青年研究者奖 狼人:
    7款相当给力的上网本应用 狼人:
    Google对外发布C++编码规范 狼人:
    10个超棒的HTML5素描及绘画设计工具 狼人:
    Fix Bug的五个阶段 狼人:
    【观点】如果你不是程序员 该如何雇佣程序员呢 狼人:
    8款超赞的最新jQuery插件工具 狼人:
    对Web设计有用的10组免费漂亮的图标 狼人:
    C语言,美丽的语言 狼人:
    环境系统工具[CentOS]安装rar解压工具
  • 原文地址:https://www.cnblogs.com/yuqt/p/5988531.html
Copyright © 2011-2022 走看看