视图的理解:

今天看SQL教程,看见了一个新词,视图,什么是视图?很多人都有不同的理解,简单点讲,视图是一个sql查询语句,是关联应用程序和数据库的桥梁,避免了应用程序对数据库的直接操作。既保护了数据库,又实现了应用程序数据查询功能。

视图的优点:

1、视图可以简化查询的复杂性

SELECT tab.name, count(*) AS NUM_EMP

FROM emp e, table tab

WHERE e.tabno = tab.tabno

DROUP BY name;

根据视图的定义,可以简化如下:

CREATE or REPLACE view my_view AS SELECT tab.name, count(*) AS NUM_EMP FROM emp e, table tab WHERE e.tabno = tab.tabno DROUP BY name;(创建视图)

SELECT name,num_emp FROM my_view;(查询视图)

2、视图可以加强安全性

假设我们只希望用户BOB看到EMP表中的ENAME和DEPNO两个列。实现语句如图所示:

GRANT select ON emp TO bob;

但是这个命令会让bob看到emp表中所有的列。为了让bob只能看到自己能看到的列,可以写一个如下试图:

CREATE or REPLACE view BOB_VIEW as SELECT empname,empdepno FROM EMP;

GRANT select ON bob_view TO BOB;

通过这两条命令,BOB则只能查询EMP表中的ENAME和DEPNO两列。

深入分析安全性的概念。假设每个人都可以查询EMP表,但是每个人都只能查询自己的记录。实现语句如图所示:

CREATE or REPLACE view MY_VIEW as SELECT * FROM emp WHERE ename = USER;

GRANT select ON my_view TO public;

当用户查询my_view时,上述视图只会返回ENAME列值为用户名的行。

3、Oracle视图可以创建一个带错误的视图

比如视图里的某个字段在基表里并不存在,视图仍然可以创建成功,但是非法的且无法执行。当基表里加入该字段或者基表里某个字段修改成该字段名称,视图马上就可以变成合法的。

4、视图的依赖性

因为视图引用了其他对象(视图、表)的查询,因此视图依赖于其所引用的对象。Oracle会自动处理视图的依赖性,若用户删除了视图的基表后再重建此表,Oracle将检查新的基本是否符合视图的定义并判断视图的有效性。

数据库视图view的解析相关推荐

  1. 数据库-视图(View)详解

    一.简介 视图(View)可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的me ...

  2. 对数据库视图view的理解

    首先解释什么是视图: 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表,与真实表不同,视图不 ...

  3. MySQL数据库视图(view),视图定义、创建视图、修改视图

    原文链接:https://blog.csdn.net/moxigandashu/article/details/63254901 转载于:https://www.cnblogs.com/chrdai/ ...

  4. 什么是数据库视图(view),视图(view)优缺点是什么?

    什么是数据库视图(view),视图(view)优缺点是什么? 什么是数据库视图(view)? 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的 ...

  5. mysqldump导出数据库视图_mysql中如何用mysqldump批量如何导出视图view啊?

    你的位置: 问答吧 -> MySQL -> 问题详情 mysql中如何用mysqldump批量如何导出视图view啊? mysql中如何用mysqldump批量如何导出视图view啊? 我 ...

  6. Oracle数据库:创建和删除视图view,简单和复杂视图,内建视图,topN分析,oracle分页查询

    Oracle数据库:创建和删除视图view,简单和复杂视图,内建视图,topN分析,oracle分页查询 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开 ...

  7. 数据库中表table与视图view的区别

    首先了解一下什么是视图. 在我们查询的过程中,select column1,column2-- from table,此时会出来一个结果,这个我们所看到的结果是一个表的样子,那么这个虚表就是一个视图v ...

  8. python展示数据库视图_Django Admin后台添加数据库视图过程解析

    你通过以下语句,创建了一个数据库视图: create view entities_entity as select id, name from entities_hero union select 1 ...

  9. mysql数据库视图备份_数据库篇-mysql详解( 六 )之视图与数据备份

    data.png 一 : 视图 视图: view, 是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表, 虚拟表的结构来源不是自己定义, 而是从对应的基表中产生(视图的数据来源). ( ...

最新文章

  1. Neo4j实战 (数据库技术丛书)pdf
  2. 【深度学习】重新思考BatchNorm中的 “Batch”
  3. C#求一元二次方程的根经典案例程序
  4. win10计算机系统优化设置,win10系统优化系统的详细办法
  5. JavaScript Array forEach
  6. 学习Java适合参加哪些工作?Java需要掌握的技术
  7. log4j的详细介绍
  8. 华为简单静态路由配置
  9. 数据结构-二分查找(含全部代码)
  10. processing python mode - 01
  11. 【抽样技术】CH2 简单随机抽样
  12. STM32 定时器编码器模式时,如何理解编码器计数
  13. Redisson(2-1)分布式锁实现对比 VS Java的ReentrantLock之tryLock
  14. 脱虚向实,数说故事联合中山大学正式启动“AI虚拟偶像”研究计划
  15. matplotlib高级教程之形状与路径——patches和path
  16. 成功解决:XXX不在 sudoers 文件中,此事将被报告
  17. Java版本音乐播放器
  18. grub引导linux到指定位置,怎样用wingrub引导到LINUX,求助急........
  19. win7激活及问题的解决
  20. 【ios开发/Xcode】实现多功能备忘录

热门文章

  1. 我要搬家到51CTO了
  2. js版梅森旋转生成随机数
  3. 配电房环境智能监测系统及轨道巡检机器人
  4. 施炜:华为为什么能成功?
  5. 软件工程大作业(完整详细)火车订票管理系统
  6. dorado 刷新_记录新建dorado项目更新规则中报错
  7. C语言 学生管理系统 c++ 学生管理系统
  8. localhost解释
  9. 使用SVN的commit上传如何全选文件
  10. Dubbo原理与实践(2)