【学习】SQL基础-015-视图

1、本质:逻辑数据集,没有真正数据

2、类型
    简单视图:不使用函数,不使用聚合;一般可以接受DML
    复杂视图:使用函数和聚合;不能接受DML

3、原理
    oracle 访问 user_views 数据字典,找到视图的子查询并执行,返回数据;
    访问视图,实际是访问基表;
    视图是存放在数据字典中的一条子查询。

4、创建
    前提:create view 权限
    语法:
          
    参数:
         force:     即使子查询中明细表不存在,也创建视图。
          noforce: 默认值,如果明细表不存在,则引发错误。

         with check option 加约束进行检查,对视图进行 dml 操作时,检查创建时的 where 条件。 确保DML在特定范围内操作
          with read only      只能进行查询,不能通过视图修改基表。  禁止DML操作

5、应用例
    查询表空间的使用情况
    create view tablesp_usage as
             select a.tablespace_name as tablespace_name,
                     to_char(a.total/1024/1024,99999999) as total_mb,
                     to_char((a.total-b.free)/1024/1024,99999999) use_mb,
                     to_char(b.free/1024/1024,99999999) as free_mb,
                     to_char(((total-free)/total)*100,999.99) as "Used %"
             from
                   (select tablespace_name,sum(bytes) as total from dba_data_files
                    group by tablespace_name) a,
                   (select tablespace_name,sum(bytes) as free from dba_free_space
                    group by tablespace_name) b
            where a.tablespace_name=b.tablespace_name order by 5 desc;

6、删除
     drop view 不会删除基表数据

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31476473/viewspace-2152745/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31476473/viewspace-2152745/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值