网站首页 > 技术文章 正文
【本文详细介绍了数据库的基础知识之视图的基本概念和常用操作,欢迎读者朋友们阅读、转发和收藏!】
1 基本概念
1.1 视图的概念
1. 视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询的结果。
2. 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据;从数据库系统内部来看,一个视图是由 SELECT 语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表 一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。
3. 根据创建视图时给定的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合,它存储了要执行检索的查询语句的定义,以便在引用该视图时使用。
1.2 视图的优点
1. 简化数据操作:视图可以简化用户处理数据的方式。
2. 着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。
3. 视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。
4. 提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。
5. 自定义数据:视图允许用户以不同方式查看数据。
6. 导出和导入数据:可使用视图将数据导出到其他应用程序。
7. 有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。这是在实际开发中比较有用的
8. 复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。
1.3 视图的操作
创建视图
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
- OR REPLACE :若所创建的试图已经存在, ORACLE 自动重建该视图;
- FORCE :不管基表是否存在 ORACLE 都会自动创建该视图;
- NOFORCE :只有基表都存在 ORACLE 才会创建该视图:
- alias :为视图产生的列定义的别名;
- subquery :一条完整的 SELECT 语句,可以在该语句中定义别名;
- WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;
- WITH READ ONLY :该视图上不能进行任何 DML 操作。
查询视图
视图创建成功后,可以从视图中检索数据,这点和从表中检索数据一样。还可以查询视图的全部信息和指定的数据行和列。
删除视图
DROP VIEW VIEW_NAME 语句删除视图。
删除视图的定义不影响基表中的数据,只有视图所有者和具备 DROP VIEW 权限的用户可以删除视图。视图被删除后,基于被删除视图的其他视图或应用将无效。
更新视图
更新视图是指通过视图来插入、更新、删除表数据,因为视图是虚表,其中没有数据。
通过视图更新的时候都是转到基表进行更新,如果对视图增加或者删除记录,实际上是对基表增加或删除记录。
当视图中包含如下内容的时候,视图的更新操作将不能被执行
( 1 )视图中包含基本中被定义为非空的列
( 2 )定义视图的 SELECT 语句后的字段列表中使用了数学表达式
( 3 )定义视图的 SELECT 语句后的字段列表中使用聚合函数
( 4 )定义视图的 SELECT 语句中使用了 DISTINCT 、 UNION 、 TOP 、 GROUP BY 、 HAVING 子句
- 上一篇: 什么是物化视图?如何创建物化视图?
- 下一篇: oracle物化视图 oracle物化视图定时刷新
猜你喜欢
- 2024-11-08 基于特定数据Oracle、ClickHouse、ES存储比较
- 2024-11-08 05:springboot使用Druid作为项目数据源(添加视图化监控)
- 2024-11-08 Doris物化视图与索引在京东的典型应用
- 2024-11-08 Oracle各个版本对应的V$,X$视图数量
- 2024-11-08 oracle 动态性能视图 v$session oracle 查看动态性能视图
- 2024-11-08 oracle 动态性能视图 v$sql oracle静态视图和动态视图
- 2024-11-08 Oracle P6培训系列:09定义计划编制视图
- 2024-11-08 仪表板展示|DataEase可视化数据分析工具中的视图钻取和联动设置
- 2024-11-08 数据库笔试面试144——在Oracle中,物化视图的作用是什么?
- 2024-11-08 oracle 动态性能视图 v$process oracle view性能
你 发表评论:
欢迎- 617℃几个Oracle空值处理函数 oracle处理null值的函数
- 610℃Oracle分析函数之Lag和Lead()使用
- 599℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 595℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 591℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 582℃【数据统计分析】详解Oracle分组函数之CUBE
- 572℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)