zoukankan      html  css  js  c++  java
  • 数据库中的视图

    视图的一些好处:

    1、视图能够简化用户的操作;
    2、视图使用户能以多钟角度看待同一数据;
    3、视图对重构数据库提供了一定程度的逻辑独立性;
    4、视图能够对机密数据提供安全保护;
    5、适当的利用视图可以更清晰的表达查询;

    总结:高效,美观,安全

    Oracle对象教程:视图(View)创建使用,视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT…FROM即可

    语法结构:创建视图

    CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name

    AS

    SELECT查询

    [WITH READ ONLY CONSTRAINT]

    语法解析:

    1. OR REPLACE:如果视图已经存在,则替换旧视图。

    2. FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

    3. NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

    4. WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

    删除视图可以使用“DROP VIEW 视图名称”,删除视图不会影响基表的数据。

    执行视图:select *  from viewname;

    navicat下执行视图的范例:

    视图名称为:1027amkm

    sql脚本为:

    select A.KMID from KW_KM A LEFT JOIN KW_CC B on A.KM_CCID=B.CCID
    WHERE B.CC_KSSJ IN(
    SELECT CC_KSSJ from kw_cc WHERE CC_KSSJ between to_date('2018/10/27 00:00:00','yyyy-mm-dd hh24:mi:ss')
    and to_date('2018/10/27 12:00:00','yyyy-mm-dd hh24:mi:ss'))

    sql语句执行视图:SELECT * from "1027amkm";

    执行结果:

      

    视图名称为:iswj

    sql脚本为:

    SELECT
    count(*) total,a.KSKM_ISWJ,
    (
    CASE a.KSKM_ISWJ
    WHEN 1 THEN '违纪'
    ELSE '未违纪'
    END
    )是否违纪
    from QY_KD b
    LEFT JOIN KW_KSKM a on a.KSKM_KDID=b.KDID LEFT JOIN QY_XQ c on b.kd_xqid=c.xqid
    WHERE a.KSKM_KMID in(SELECT * from "1027amkm") GROUP BY a.KSKM_ISWJ

    sql语句执行视图:SELECT * from "iswj";

    执行结果:

     【注】视图可以单独使用,也可以向表一样关联使用

  • 相关阅读:
    VMware 虚拟机扩容磁盘
    记录一次Jenkins多分支构建问题
    ceph 集群快速部署
    阿里云EMAS发布套餐订阅云服务
    我研究过的OA产品这是简单的总结
    Hello,OA!Hello,工作流!寻找OA和工作流的旅途记录
    疑难杂症1-去掉网站里的特殊编码&#65279
    IIS 平台NET无后缀名伪静态实现办法
    让人无语的面试题!!排序!你试试?
    优秀的大企业报告辅助撰写系统介绍
  • 原文地址:https://www.cnblogs.com/celine/p/9894714.html
Copyright © 2011-2022 走看看