zoukankan      html  css  js  c++  java
  • Oracle--视图

    视图

      视图:(view): 虚表, 只是把一些查询SQL保存起来,  取一个名字, 不是保存这个查询的数据

    每次使用视图的时候,只是重新执行SQL,方便使用
    视图的基表:视图来源的表

    创建视图语法:

     create [ or replace ] [ force ] view [schema.]view_name
     as 
     select ...
     [ with check option ]                      
     [ with read only ];
    其中,or replace: 如果存在同名的视图, 则使用新视图"替代"已有的视图
    force: "强制"创建视图,不考虑基表是否存在,也不考虑是否具有使用基表的权限
    with check option: 指定对视图执行的dml操作必须满足“视图子查询”的条件即,对通过视图进行的增删改操作进行"检查",
    要求增删改操作的数据, 必须是select查询所能查询到的数据,否则不允许操作并返回错误提示.
    默认情况下, 在增删改之前"并不会检查"这些行是否能被select查询检索到
    with read only:创建的视图只能用于查询数据, 而不能用于更改数据.

    注意: 普通用户没有创建视图权限, scott
      需要系统管理员用户 授予权限: grant create view to scott;

    创建视图:

    create or replace view empCountView
    as  select  deptno, count(1) num from emp group by deptno  
    with read only;

    执行:

    --没有使用视图的sql
    select d.* , t.num from dept d 
    join(select  deptno, count(1) num from emp group by deptno) t
    on d.deptno = t.deptno;
    
    --使用视图:
    select d.* , e.num from dept d join  empCountView  e
    on d.deptno = e.deptno;
  • 相关阅读:
    关于dependency的scope
    Enum
    vim
    postgres函数
    Static块与线程安全
    查看文件夹及文件大小df du
    mac下安装jdk
    硬盘修复原理
    关于Jquery的Accordion在IE下闪烁,不稳定的问题
    vmare安装linux问题总结4(redhat在启动时卡在sendmail很久)
  • 原文地址:https://www.cnblogs.com/64Byte/p/12746573.html
Copyright © 2011-2022 走看看