1. 数据库对象之【视图】简单介绍

   1.1 What:什么叫视图?

视图是一种数据库对象,是从一个或多个数据库表或视图中查询或计算出结果的虚拟表,视图对应的数据并不是真正存储在视图中,而是存在于实际引用的数据库表中,视图的构成可以是单表查询,多表联合查询,分组查询以及计算(表达式)查询等。

   1.2 Why:为何用视图?

通常情况下某些数据库表的数据是敏感的,不是每个用户都能进行访问,但某些用户需要读取某些表的部分数据,这时就可以定义指定条件的视图来限制用户只能访问其指定的列并提供一个视图接口进行访问,基于这样的原理也能大大简化查询语句编写以及复杂条件下的数据筛选;同时延伸出视图中套用视图,因为视图也是一个“表”所以视图中引用视图从而简化用户更复杂的数据筛选,用户只需要调用视图即可得到经过复杂运算后的数据,提高开发效率的同时提高数据安全性。

   1.3 When:何时用视图?

简单来说,当用户需要查询未授权的数据表且又需要部分数据表的部分列进行逻辑处理;对于复杂SQL条件筛选或特定数据只开放部分数据列让用户进行查询等;

   1.4 Class:视图的分类? 

a) 关系视图:它属于数据库对象的一种,也就是最常见的一种关联查询;

b) 内嵌视图:它不属于任何用户,也不是对象,创建方式与普通视图完全不同,不具有可复用性,不能通过数据字典获取数据;

c) 对象视图:它是基于表对象类型的视图,特性是继承、封装等可根据需要构建对象类型封装复杂查询(官方:为了迎合对象类型而重建数据表是不实现的);

d) 物化视图:它主要用于数据库的容灾(备份),实体化的视图可存储和查询,通过DBLink连接在主数据库物化视图中复制,当主库异常备库接管实现容灾;

   1.5 How:视图如何编写?

视图编写语法:

create [ or replace ] [ force ] view [schema.]view_name -- [force不考虑引用表是否存或是否有表权限也进行创建]
[ (column1, column2,...) ] -- 视图的列别名,若查询中包含组函数或计算公式必须设置别名(别名可以定义在SQL查询中)
as
select ... -- 具体关联查询SQL语句
[ with check option ] [ constraint constraint_name ] -- 对视图进行DML操作时必须是视图能查询的结果,否则返回错误提示
[ with read only ]; -- 创建的视图只能用于读不能写

视图编写案例:

create or replace force view emp_view
(eid, ename, esal)
as
select eid, ename, avg(esal)
from t_basic_emp
group by eid, ename
--with check option constraint vv_emp_pk
with read only; 

2. 数据库对象之【同义词】简单介绍

   2.1 What:什么叫同义词?

同义词亦称“别名”,顾名思义就是给对象重新取一个名字简化对象书写,当然作用不仅仅于此;它支持所有对象同义词创建,与视图不同的是不占用存储空间,对于表而言,同义词只针对单表定义别名,视图可以对多表检索筛选并定义约束条件,还能为同义词建立视图;

   2.2 Why:为何用同义词?

当用户访问链接库或数据库对象时为了省去访问对象前加用户等其他对象的一种简化方式;

   2.3 When:何时用同义词?

当多用户协同开发时,尤其是多库(DBLink)之间的数据交互时,为了方便编写可以建立同义词从而达到简化的目的;

   2.4 Class:同义词的分类? 

a) 公共同义词:它是数据库所有用户所共享,任务用户均能访问;

b) 私有同义词:它是私有的,在未进行授权的情况下只有同义词创建者才能访问;

   2.5 How:同义词如何编写?

同义词编写语法:

create public/any synonym synonym_name for user.table; --当前数据库建立同义词
create public/any synonym synonym_name for user.table@DBLink_Name; -- 远程数据库建立同义词

声明:以上教程为博主原创,若需转载请注明出处,谢谢。

Oracel数据库中视图与同义词的理解及应用场景相关推荐

  1. MySQL数据库中视图的作用

    数据库中视图的作用 视图是从一个或几个基本表(或视图)导出的表.它与基本表不同,是一个虚表.数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...

  2. 数据库中视图和表的区别

    数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件啊=组合而成的结果集,一般来说你可以用update,insert,delete等SQL语句修改表中的数据,而对视图只能进行select ...

  3. 数据库中视图与表的区别以及如何创建视图、创建表

    联系: 1.视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在: 2.一个视图可以对应一个基本表,也可以对应多个基本表: 3.视 ...

  4. Oracel 数据库中如果求去年同期最大值?

    1:最近遇到一个需求:查询数据库表中的某一个字段,并同时要求查询该字段的去年同期最大值 首先我先解释一下什么是:去年同期最大值 解释如下: -- 去年同期利润总额 (如果对应去年月份为空,则显示去年最 ...

  5. 数据库中视图和基本表的区别

    1.视图和表的区别? 视图是虚拟的表,视图展示的数据来自于 基本表. 视图中不存储具体的数据,而存储的是sql逻辑,基本表的数据发生改变,视图的展示结果也会随着发生改变,它占用较小的物理空间:而表中保 ...

  6. 数据库中LIMIT和 OFFSET的理解

    SELECT  *   FROM trom_data WHERE device_id=12  ORDER BY time_stamp DESC LIMIT  1   OFFSET 0 sql语句,其中 ...

  7. 数据库中的视图理解和优点介绍

    数据库中视图的概念:视图是从一个表或是多个表导出的表,视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中指存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图 ...

  8. Oracle中的视图和同义词

    视图 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表.视图来源于表,所有对视图数据的修改最 ...

  9. 9、oracle数据库下的视图和同义词

    ORACLE下的视图和同义词 1.视图 视图就是一个查询的结果,可能包含一张表或者多张表的信息,创建视图其目的在于,便于查看表中的信息.视图只是在逻辑上存在. 1.1创建/修改视图 创建视图一定要有C ...

最新文章

  1. fastjson过滤属性或函数
  2. c++的矩阵乘法加速trick
  3. SVN从win迁移到Linux上
  4. python中二维列表的遍历方式(亲测)
  5. SAP Spartacus UserService.get方法的调用时机
  6. Java技术:SpringBoot集成FreeMarker生成word文件
  7. ssh登录服务器提示错误no hostkey alg
  8. 设计模式的理解的总结
  9. inotify之文件系统事件监控使用入门
  10. LeetCode(530)——二叉搜索树的最小绝对差(JavaScript)
  11. 如何获取免费比特币?
  12. python flask面试题_Flask面试题
  13. 利用Python(netCDF4库)读取.nc文件(NetCDF气象数据文件)的基本操作
  14. SCU2016-05 I题 trie图 + 大数dp
  15. 听说你想学Python爬虫?我从零教你啊
  16. Mac如何保护苹果账户的安全?保护 Apple ID 帐户的技巧分享
  17. Cesium奇幻之旅(一)
  18. 【科普】Kubectl基本操作命令
  19. hbase学习教程(一):hbase的概述和hbase架构及基本组件
  20. Zhong__Linux系统安装MongoDB数据库

热门文章

  1. |英文阅读||权力的游戏|_卷一_序章|No.01
  2. 合肥工业大学计算机学院导师名单,合肥工业大学计算机与信息学院硕士研究生导师介绍:唐益明...
  3. AUTO_TUNE 配置参数
  4. Linux ubuntu-18内核版本降级error: macro access_ok passed 3 arguments, but takes just 2
  5. python sklearn 置信概率
  6. 爬虫尝试抓取动态网页
  7. git 入门(问道学院)
  8. 图隐私论文速递:Towards Locally Differentially Private Generic Graph Metric Estimation
  9. OpenGL绘制地月天体,基于Qt框架。
  10. idhttpserver接收数据