oracle: 事务,视图

news/2025/2/11 12:23:11/

事务

事务数据库的最小逻辑单元,就是数据库中的一个最小的操作单位。
事务是由多条SQL语句组成的一个集合,有事务统一控制这些SQL语句的执行。

事务的属性

被简称为ACID属性, 是4个属性单词的首字母

脏读,幻读,不可重复读
是三种常见的并发问题,通常与事务的隔离性(Isolation)有关 

事务

锁是一种用于管理并发事务访问共享数据的一种机制。为了保护数据的完整性和一致性,
防止多个事务在同一时间对同一数据进行冲突操作。

并发事务:同一时间内同时执行多个事务

共享锁:主要针对select查询语句,多个事务同时对同一张表进行查询时,这个表的数据是可以共享给多张表进行查询, 在oracle中通过FOR SHARE子句来显式地获取共享锁

示例

独占锁:主要针对DML语句,多个事务同时对同一张表的同一条数据进行DML操作时,同一时间内只能有一个事务对这条数据进行DML操作,此时这条数据被该事务独占了,其它事务必须等待当前事务提交或回滚之后才能操作这条数据, 在Oracle中,独占锁通常在执行DML操作时自动获取

示例

事务的操作

示例

在这个示例中,我们首先将员工ID为1的薪水更新为5000,然后设置一个保存点 before_second_update。接着,我们将薪水再次更新为6000,但随后我们回滚到保存点 before_second_update,这意味着薪水将恢复到5000。最后,我们提交事务,确保所有更改(即薪水更新为5000)被保存到数据库

视图

一般视图 VIEW

视图命名规则

视图命名常用v_开头

特点

创建视图示例 : 

创建一个emp表的视图, sal(薪水)和 comm(佣金)字段属于敏感字段,可能意味着这些字段在视图中被省略了,以保护敏感信息

查询视图示例

查看当前用户的所有视图

查看数据库是所有视图

查看数据库的所有视图,包括系统视图(需要DBA权限)

查看特定视图的定义

删除视图

数据安全性:删除视图并不会影响基表中的数据,只会删除视图的定义

如果视图上存在约束(如参照完整性约束),删除视图时需要使用 CASCADE CONSTRAINTS 选项,否则删除操作将失败

物化视图 MATERIALIZED VIEW

特点:
1.也称为实体化视图,是一张实表,创建物化视图会额外生成一份查询结果的数据存在物化视图中
2. 物化视图不支持DML操作,物化视图中数据的更新,会在创建物化视图的时候设置好. 比如:定时更新,手动更新
3. 使用物化视图进行查询,可以提高查询效率;查询结果中的数据已经在视图中存好了,无需从头开始执行查询,直接将存好的数据取出来;

示例: 创建物化视图

示例: 创建物化视图并设置定时更新

  • BUILD IMMEDIATE:立即构建, 表示物化视图在创建时立即填充数据。

  • REFRESH COMPLETE:刷新完成, 表示每次刷新时都会完全重新计算物化视图。

  • START WITH SYSDATE NEXT SYSDATE + 1:表示物化视图将在创建时立即刷新,并且之后每天刷新一次。

示例: 创建物化视图并设置手动更新

REFRESH COMPLETE ON DEMAND:按需刷新完成, 表示物化视图仅在手动刷新时更新

 示例:手动刷新物化视图

示例: 查看物化视图的刷新状态

示例: 修改物化视图的刷新计划

可以使用  DBMS_SCHEDULER 来设置定时任务

  1. DBMS_SCHEDULER.create_job:

    • DBMS_SCHEDULER是 Oracle 提供的一个内置包,用于创建和管理调度作业。SCHEDULER调度

 FREQ=DAILY 表示该作业每天执行一次, FREQ 代表 "Frequency",意为“频率”

使用 DBMS_JOB 设置定时任务


http://www.ppmy.cn/news/1571153.html

相关文章

Visual Basic语言的图形用户界面

Visual Basic语言的图形用户界面 引言 在程序开发的世界中,图形用户界面(Graphical User Interface,简称GUI)是连接用户与计算机程序的重要桥梁。通过GUI,用户可以更加直观和方便地与程序互动,实现各种功…

2025.2.8——二、Confusion1 SSTI模板注入|Jinja2模板

题目来源:攻防世界 Confusion1 目录 一、打开靶机,整理信息 二、解题思路 step 1:查看网页源码信息 step 2:模板注入 step 3:构造payload,验证漏洞 step 4:已确认为SSTI漏洞中的Jinjia2…

字节跳动后端一面

📍1. Gzip压缩技术详解 Gzip是一种流行的无损数据压缩格式,它使用DEFLATE算法来减少文件大小,广泛应用于网络传输和文件存储中以提高效率。 🚀 使用场景: • 网站优化:通过压缩HTML、CSS、JavaScript文件来…

【Linux系统】—— 简易进度条的实现

【Linux系统】—— 简易进度条的实现 1 回车和换行2 缓冲区3 进度条的准备代码4 第一版进度条5 第二版进度条 1 回车和换行 先问大家一个问题:回车换行是什么,或者说回车和换行是同一个概念吗?   可能大家对回车换行有一定的误解&#xff0…

idea Ai工具通义灵码,Copilot我的使用方法以及比较

我用过多个idea Ai 编程工具,大约用了1年时间,来体会他们那个好用,以下只是针对我个人的一点分享,不一定对你适用 仅作参考。 介于篇幅原因我觉得能说上好用的 目前只有两个 一个是阿里的通义灵码和Copilot,我用它来干…

【创业黑科技】格行视精灵:用AI和超清夜视重新定义家庭安防,创业者不容错过的技术革命!

2025创业项目测评:格行视精灵智能监控——家庭安防赛道的新机会? 2025家庭安防智能化趋势与产品技术革新观察 近年来,家庭安防领域呈现出从"被动监控"向"主动防御"升级的显著趋势。根据IDC数据,2024年全球智…

GitCode 助力 Easy-Es,革新 Elasticsearch 开发体验

项目仓库(点击阅读原文链接可直达) https://gitcode.com/dromara/easy-es 项目背景:填补 Elasticsearch ORM 框架空白 在 Java 开发领域,Excel 和 Elasticsearch 的代码编写难度一直名列前茅,尤其是 Elasticsearch&a…

深入理解C#结构型设计模式:类适配器与对象适配器

一、设计模式的基本概念 设计模式是软件开发过程中针对反复出现的问题总结出来的通用解决方案。结构型设计模式主要关注如何将类或对象进行组合,以实现新的功能或满足特定的需求。适配器模式就是结构型设计模式中的一种,它允许将一个类的接口转换成客户…