zoukankan      html  css  js  c++  java
  • oracle17 视图

     oracle的视图 
    
     介绍
    视图是一个虚拟表是一个表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在(视图不实际存在)。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。(视图不是真实存在磁盘上的

     

    查询需要2张表,现在只想赋予他一张表的权限,可以通过视图解决。视图可以从emp表和dept表各个取出几列或者几行数据形成一张新表,视图不是实际存在磁盘中,表的内容变化了视图就变化了,视图可以有多个,把视图权限给别人不是把表的权限给别人。
    视图与表的区别 
     视图与表的区别 
    1.表需要占用磁盘空间,视图不需要 
    2.视图不能添加索引(所以查询速度略微慢点) 
    3.使用视图可以简化,复杂查询 
    比如:学生选课系统:如果要查询3张表,则可以把3张表中的部分数据集合在一个视图里面,则查询的时候就只查询一个视图就可以了。
    4.视图的使用利于提高安全性 (视图是表的部分,就安全了)
    比如:不同用户查看不同视图
    创建/修改视图 
     创建视图 
    create view 视图名 as select 语句 [with read only(视图可读不可改)] 
     创建或修改视图 
    create or replace view 视图名 as select 语句 [with read only] 
     删除视图 
    drop view 视图名 
    
    当表结构国语复杂,请使用视图吧! 
    
    --创建视图,把emp表的sal<1000的雇员映射到该视图(view) 
    Sql代码 
    1.create view myview as select * from emp where sal<1000;select * from myview
    
    --为简化操作,用一个视图解决 显示雇员编号,姓名和部门名称 
    Sql代码 
    1.create view myview2 as select emp.empno,emp.ename,dept.dname from emp,dept where emp.deptno=dept.deptno; 
    2.select * from myview2 
    
    视图之间也可以做联合查询
  • 相关阅读:
    用java实现的微信公众号爬虫
    装饰模式
    输入一个数,查询该数是否为素数
    Machine-learning-DecisionTree
    Circles of Waiting
    GRE阅读
    云数据库POLARDB产品解读之二:如何做到高性价比
    奉上一份云上数据安全保护指南
    从双十一看阿里云安全的“创世纪”——采访阿里云安全掌门人肖力有感
    阿里云移动研发平台EMAS,是如何连续5年安全护航双11的?
  • 原文地址:https://www.cnblogs.com/yaowen/p/4859223.html
Copyright © 2011-2022 走看看