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;
  • 相关阅读:
    CSUFT 1002 Robot Navigation
    CSUFT 1003 All Your Base
    Uva 1599 最佳路径
    Uva 10129 单词
    欧拉回路
    Uva 10305 给任务排序
    uva 816 Abbott的复仇
    Uva 1103 古代象形文字
    Uva 10118 免费糖果
    Uva 725 除法
  • 原文地址:https://www.cnblogs.com/64Byte/p/12746573.html
Copyright © 2011-2022 走看看