Oracle修炼路程--事务操作以及隔离级别

第一讲:halcon模板匹配捆绑测量矩形检测芯片针脚 使用halcon模板匹配捆绑测量矩形,检测位置发生变换的芯片针脚缺陷。 阅读详情

事务概念
作为单个逻辑工作单元执行的一系列操作。
比如张三向李四转账1000,那么张三钱数-1000,而李四+1000;

事务特性:ACID
Atomicity原子性:要么都成功,要么都失败;
Consistency一致性:事务执行前后,总量保持一致;
Isolation隔离性:各个事务并发执行时,彼此独立;
Durability持久性:持久化操作。

事务的生命周期:
MySQL:自动提交;
Oracle:手工提交。

1 事务开始标志:第一条DML,增删改;
既当执行DML语句,开启事务操作。
2 事务的中间过程:各种DML操作;
3 事务的结束标志包括两种情况
a 提交:
显示提交:commit: 提交当前事务或有问题的事务

隐示提交:自动提交,正常退出exit、DCL(grant…to…,revoke…from…),DDL(创建表create,drop)

b 回滚:
1 显示回滚:rollback: 撤销 当前事务或有问题的事务
2 隐士回滚:异常退出(断电);

--查询emp表
SQL> select *from emp;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80           1200                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           2000        300         40
      7521 QINJIALI_3 SALESMAN        7698 22-2月 -81           1650        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           4575                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1650       1400         40
      7698 BLAKE      MANAGER         7839 01-5月 -81           4450                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           4050                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3400                    20
      7839 KING       PRESIDENT            17-11月-81           7000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1900                    30
      7876 ADAMS      CLERK           7788 23-5月 -87           1500                    20
      7900 JAMES      CLERK           7698 03-12月-81           1350                    30
      7902 FORD       ANALYST         7566 03-12月-81           3400                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1700                    10

已选择14行。
--更新数据
SQL> update emp set ename='QIN_JIALI' where empno=7521;

已更新 1 行。

SQL> select *from emp;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80           1200                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           2000        300         40
      7521 QIN_JIALI  SALESMAN        7698 22-2月 -81           1650        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           4575                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1650       1400         40
      7698 BLAKE      MANAGER         7839 01-5月 -81           4450                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           4050                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3400                    20
      7839 KING       PRESIDENT            17-11月-81           7000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1900                    30
      7876 ADAMS      CLERK           7788 23-5月 -87           1500                    20
      7900 JAMES      CLERK           7698 03-12月-81           1350                    30
      7902 FORD       ANALYST         7566 03-12月-81           3400                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1700                    10

已选择14行。

--回滚
SQL> rollback;

回退已完成。

SQL> select *from emp;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80           1200                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           2000        300         40
      7521 QINJIALI_3 SALESMAN        7698 22-2月 -81           1650        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           4575                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1650       1400         40
      7698 BLAKE      MANAGER         7839 01-5月 -81           4450                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           4050                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3400                    20
      7839 KING       PRESIDENT            17-11月-81           7000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1900                    30
      7876 ADAMS      CLERK           7788 23-5月 -87           1500                    20
      7900 JAMES      CLERK           7698 03-12月-81           1350                    30
      7902 FORD       ANALYST         7566 03-12月-81           3400                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1700                    10

已选择14行。

保存点 savepoint:
语法:
当执行rollback时,通过指定保存点可以回退到指定的点。
回退事务的几个重要操作
1.设置保存点 savepoint 保存点名
2.取消保存点a之后事务 rollback to 保存点名
3.取消全部事务 rollback

注意:这个回退事务,必须是没有commit前使用的;

SQL> create table student(stuno number,stuname varchar2(20));

表已创建。

SQL> insert into student values(12,'QINJIALI');

已创建 1 行。

SQL> insert into student values(13,'QINWENXI');

已创建 1 行。

SQL> select *from student;

     STUNO STUNAME
---------- --------------------
        12 QINJIALI
        13 QINWENXI

SQL> savepoint hello;

保存点已创建。

SQL> insert into student values(14,'张飞');

已创建 1 行。

SQL> select *from student;

     STUNO STUNAME
---------- --------------------
        12 QINJIALI
        13 QINWENXI
        14 张飞

SQL> rollback to savepoint hello;

回退已完成。

SQL> select *from student;

     STUNO STUNAME
---------- --------------------
        12 QINJIALI

事务的隔离级别:
一个事务对数据库的修改与并行的另一个事务的隔离程度。
首先介绍一下,事务带来的问题:
1 脏读:当一个事务正在访问数据,并对此数据进行了修改(1–>2),但是这种修改还没有提交到数据库(commit);此时,另一个事务也在访问该数据。本质:某个事务(客户端)读取的数据是过时的(另一个事务还没有commit)。
简单说:一个客户端读取的是旧数据;
2 不可重复读:在一个事务(客户端)内,多次读取同一个数据,但是结果不同。 本质:就是事务A拿到了被其他事务B修改并提交后的数据。
3 幻读(虚读):在一个事务(客户端)内,多次读取同一批数据,但是结果不同。

从操作语句来区分:
不可重复读:update
幻读:insert,delete

隔离级别:
在这里插入图片描述

四种类隔离级别的程度是依次递进(解决并发的效果,越来越稳定),但是性能越来越低,并发性、可用性本身就是矛盾的。
oracle只支持两种:Read Committed(默认),Serializable(序列化,并行化)
(oracle自身扩充了一种read only,实际隶属于Serializable级别);

切换隔离级别:
set transaction isolation level Serializable;

SET TRANSACTION READ ONLY;

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

小梅哥Xilinx FPGA学习笔记11——亚稳态 亚稳态就是D触发器输入信号在其数据窗口期内发生变化,导致D触发器的输出进入一段时间的不稳定状态,有可能发生振荡,并最终随机稳定在高电平或者低电平。 阅读详情

相关推荐

AI气象预报:数值模式融合与短临预警的工程实践

气象预报正经历从物理推演到数据驱动的认知范式转变。AI气象预报并非替代传统数值模式,而是通过数值模式融合弥补其在参数化误差、初值敏感性和计算效率上的固有瓶颈。其技术价值在于提升短临预警时效性与空间精度,支撑航空调度、电力调控、防洪应急等关键场景。实践中需兼顾物理一致性、可解释性与业务系统兼容性,避免纯黑箱建模带来的外推失效与不确定性缺失风险。本文聚焦AI作为超分辨率引擎、误差矫正器和短临加速器的三类落地路径,解析HEALPix投影、多尺度图建模、轻量级U-Net等核心适配方法。

weixin_28221501的博客 300

Oracle修炼路程--查询习题

第一题 :查询所有员工的年工资、所在部门的名称,按年薪从低往高排序; SQL> select (sal*12+nvl(comm,0)) 年工资,d.dname 部门名称 from emp e,dept d where e.deptno=d.deptno order by 年工资 asc; 年工资 部门名称 ---------- -------------- 14400 R...

Python_Newer的博客 695

DeepSeek Harness接入QQ实战:把DSH变成赛博群友

大模型应用正从单机问答走向多平台集成,如何将模型能力嵌入即时通讯工具成为工程实践的热点。消息接入、会话管理、插件扩展是构建智能群聊机器人的核心三要素。DeepSeek Harness(DSH)作为一款模型会话工作流管理工具,凭借多会话管理、模型调用编排以及灵活的插件机制,能够在QQ群聊场景中实现“接收消息→模型生成→回复推送”的完整闭环。本文从基础概念切入,详解DSH接入QQ的两种实现路线——外部API转发与原生插件适配,覆盖环境准备、启动调试、接口调用与性能观察,并给出常见问题排查清单。无论是本地AI助理

weixin_27427619的博客 1983

Oracle修炼路程--PL/SQL基础语法

常用工具: 1 plsql developer 2 oracle sql developer PL/SQL是一门为扩展Oracle中SQL功能的编程语言, 常见符号: || 字符串连接符 := 赋值运算符 % 属性索引 使用%type可以使变量获得与字段相同的数据类型 = 相等运算符 1) 变量 SET SERVEROUTPUT ON; declare phello...

Python_Newer的博客 421

[原创]Keil工程STM32F103C8T6无缝转换到STM32F103RCT6

有个项目,老版本是STM32F103C8T6,硬件资源不够了,新版本采用STM32F103RCT6。 无缝过渡,如下: 选定芯片 宏定义改为STM32F10X_HD,USE_STDPERIPH_DRIVER 删除原有的启动汇编文件,更换为高密度器件汇编文件 时钟系统紊乱? 那得看你程序怎么写: 先看F103时钟树 int main(void) { unsigned char stat...

江东风又起 2万+

HX720/HX711 数据采集实战:从硬件配置到姿态解析(附源码详解)

本文详细解析了HX720/HX711数据采集传感器的硬件配置与姿态解析实战技巧,包括选型指南、电路设计避坑、抗干扰方案及源码实现。通过优化驱动代码和数据处理算法,提升采样率与精度,适用于动态称重和工业检测等场景。附源码详解,助力开发者快速掌握高精度数据采集技术。

weixin_30752699的博客 659

Oracle修炼路程--分页查询

一 TOP-N问题 --取出工资最高的5五名员工信息; --第一步:首选对员工信息按照sal进行降序; SQL> select *from emp order by sal desc; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- -...

Python_Newer的博客 419

CATIA二次开发CAA安装

安装资料在网盘里 Win7 64位 以下软件均已管理员身份运行: 1.安装vs2008->自定义安装->选择要安装的功能->Visual C+±>x64编译器和工具 1.2安装SP1 2.安装CATIA V5 R21->win7_XP->CATIA.P3.V5R21.Win64->setup.exe 2.1安装目录改为D盘 2.2环境目录位置默认 3.安装...

qq_39311458的博客 4638

Oracle修炼路程--powerdesigner和oracle

1 环境 Powerdesigner 16.7(64位) Oracle 11g(64位) 2 配置数据源 安装好powerdesigner之后,做E-R图; 如图,物理模型:关系型须子表指向父表。 3 连接数据 1)配置数据源 开始-》搜索“数据源”-》接下来如下图: 到此,数据源配置完毕; 3 pb连接oracle 快捷键:ctrl+g,如图: 点击“确定”之后,即可将表格导入到数据库之中; 4 逆向生成 现在将数据库中的表格,导入到pd中: 填写好账号密码即可连接数据库,然后

Python_Newer的博客 354

【Unity-UGUI控件全面解析】| Canvas 画布组件详解

画布 (Canvas) 是应该容纳所有 UI 元素的区域。画布是一种带有画布组件的游戏对象,所有 UI 元素都必须是此类画布的子项。 创建新的 UI 元素(如使用菜单 GameObject > UI > Image 创建图像)时,如果场景中还没有画布,则会自动创建画布。UI 元素将创建为此画布的子项。 画布区域在 Scene 视图中显示为矩形。这样可以轻松定位 UI 元素,而无需始终显示 Game 视图。 画布 使用 EventSystem 对象来协助消息系统。

努力前行,总会成为自己心中的那道光 2万+

Floyd (弗洛伊德)算法简述

Floyd在1962年由Robert Floyd以其当前公认的形式出版。算法作为三个嵌套for循环的现代公式首先由Peter Ingerman在1962年描述。Floyd 算法是解决图论问题的比较经典的算法,是解决给定的加权图中顶点间的最短路径的一种算法,可以正确处理有向图的最短路径问题。

慕羽★的博客 2万+

Oracle修炼路程--触发器

概念: 与表相关联的PLSQL程序,当执行DML(增删改)自动执行触发器; 创建语法: create or replace trigger 触发器名 before|after—在DML之前或者之后; delete|insert|update [of 列名]–DML语句 on 表名----操作某个表 for each row----对某行数据进行操作 。。。。。plsql代码 无论修改多少行,触发器...

Python_Newer的博客 351

计算机组成原理(第三版)唐朔飞-第七章指令系统-课后习题

机器字长是指CPU一次能处理数据的位数通常与CPU的寄存器位数有关。指令字长是指机器指令中二进制代码的总位数。存储字长是指存储单元中存放二进制代码的总位数。三者可以相等也可以不等视不同机器而定。答:OP(4位)A1(6位)A_1(6位)A1​(6位)A2(6位)A_2(6位)A2​(6位)设二地址指令格式为该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用作扩展标志。一地址指令条数=3∗26=192。

weixin_45735391的博客 7万+

Oracle修炼路程--六种约束

约束: 约束是数据库用来确保数据满足业务规则的手段。具体需要根据业务需求进行相应设置。 常见约束分类: 检查约束(Check):可限制条件,如name>4 唯一约束(Unique):id:1 2 3 4 5 主键约束(Primary key):类似唯一约束 外键约束(Foreign key):两张表关联 非空约束(Not null):不能为空 默认约束(Default):默认某值 约束命名规...

Python_Newer的博客 316

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Oracle修炼路程--视图

视图概念: 视图属于数据库对象(包括表、视图、序列、索引、同义词、触发器)之一, 视图是一个虚表,建立在表的基础之上,可以来自单个表或者多个表。 视图创建 创建视图的语法: create view myview as select 。。。from。。。emp with check option; --举例创建视图myview SQL> create view myview as select...

Python_Newer的博客 290

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Oracle修炼路程--数据字典

概念: 数据字典是oracle数据库最重要的组成部分;它是由表和视图组成,记录了数据库的系统信息;数据字典的所有者为sys用户;用户只能在数据字典上执行查询操作,而其维护和修改是由系统自动完成的! oracle数据字典通常是在创建和安装数据库时被创建的,是oracle系统工作的基础。没有数据字典的支持,oracle数据库系统就不能进行任何工作。 分类 1 静态数据字典表 2 静态数据字典视图 3 ...

Python_Newer的博客 260

Oracle修炼路程--日期函数及转换函数

一 日期函数 a) sysdate:获取当前时间 SQL> select sysdate from dual; SYSDATE -------------- 13-4月 -20 SQL> select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; SYSDATE TO_CHAR(SYSD...

Python_Newer的博客 257

Oracle修炼路程--伪列rowid及rownum

**伪列概念:**类似于表中的列,但是不存在任何表中,可以查询,不可增加、修改或者删除。 一 rownum ronum: 1 逻辑伪列:比如1 2 3 4 5 6 。。 SQL> select rownum,e.* from emp e; ROWNUM EMPNO ENAME JOB MGR HIREDATE ...

Python_Newer的博客 249

Oracle修炼路程--PL/SQL之光标的使用

概念: 光标又名游标,是一个PL/SQL结构,利用光标可以命名这些工作区,并通过光标访问工作区中的信息。 语法: cursor 光标名(参数列表) is select。。。 属性: %isopen 判断光标是否打开,所以第一步打开光标; %rowcount 判断光标已经获取数据的行数; %found ...

Python_Newer的博客 240

Oracle修炼路程--闪回技术

oracle–闪回操作 **闪回概念:**当发生逻辑错误时,从闪回恢复区中取出在发生逻辑错误之前的数据,并进行恢复。 闪回作用: 1 撤销已经提交的事务; 2 恢复被删除的表格; 3 获取表上的历史记录信息; 闪回分类: 1 闪回表中的数据; 2 闪回删除的表; 3 闪回事务查询; 4 闪回数据库; 5 闪回归档日志; 下面阐述每一类闪回技术: 一 闪回表中的数据 实际上是将表中的数据快速恢...

Python_Newer的博客 230

Oracle修炼路程--存储过程/存储函数

一 存储过程 1 概念: 一条或多条SQL语句的集合; 当对数据库进行一系列的操作时,利用存储过程可将复杂的操作封装成一个代码块,以便重复使用。如同java中的方法,调用即可; 2 创建语法: create or replace procedure 过程名(参数列表) as PL/SQL语句; 3 具体语法: 1) 无参数的存储过程 create or replace procedur...

Python_Newer的博客 229

Oracle修炼路程--PL/SQL之例外

概念: 一种PL/SQL标识符,它用于处理PL/SQL程序的运行错误。 类型 一 系统例外: 1 预定义例外:用于处理常见的Oracle错误 2 非预定义例外:用于处理预定义例外所不能处理的Oracle错误 no_data_found: 没有找到数据,报错; too_many_rows:行数太多,报错; zero_divide:被0整除,报错; values_errors: 算术或者转换错误;...

Python_Newer的博客 229

SQL并行执行的机制解析与计划调控实践

并行执行是大数据量场景的核心提速手段,但用错代价极高。本文从问题边界讲起,梳理并行度的确定层级、优化器生成并行计划的逻辑、数据再分布与通信代价、倾斜成因与识别方法,覆盖表设计、索引策略、并行DML、RAC调度与参数取舍,配合三个真实失败案例与诊断步骤,给出一套可落地的并行治理流程与误区清单。

搞定过:百亿级数据、万级QPS、零宕机、AI工业化。 795

VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)

13_VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇) 系列定位 :《SQL Server 数据库全栈运维实战系列》第 13 篇,与《MySQL 数据库全栈运维实战系列》同构对标(对标 MySQL 13 主从与 I…

dk843108982的博客 240

数据库优化不是只加索引:从 SQL、表结构到写入链路的完整取舍

上线之后,有的查询确实变快,但一段时间之后,写入接口越来越卡、有些 SQL 依旧不走索引、高峰时段锁等待堆积。同时,这条查询只需要 id、order_no、amount,还没有形成覆盖索引,依旧会回表。更新语句的过滤条件,必须能够命中索引,锁定尽可能少的行。有时候 SQL 明明有索引,explain 却看到优化器选择全表扫描,不是索引失效,是 MySQL 统计信息不准,优化器误判扫描行数。如果只有三个单列索引,MySQL 优化器只会选择其中一个索引,剩下的条件需要回表过滤,还需要文件排序,效率很低。

acd12009的博客 140

嵌入式数据库横向对比:HSQLDB · Derby · DuckDB · SQLite · H2 · SQLTiny

SQLTiny 是用 C++20 从零实现的轻量嵌入式数据库,核心定位为支持 MySQL Wire Protocol 的多语言、可网络访问的嵌入式数据库。区别于 SQLite(文件锁)、DuckDB(列式分析)、HSQLDB/H2(私有协议),它以极简代码量(~15k LOC)和标准协议兼容,填补了“嵌入式 + 多语言直连 + TCP server”空白。虽当前性能受限于全局锁与无索引 JOIN,但其清晰架构与生态兼容性使其成为教学、原型开发及多语言项目中理想的 MySQL 替代品。

Life is not divided 267

云数仓向PostgreSQL生态延伸的技术动因与工程代价

Snowflake以2.5亿美元收购Crunchy Data,把云数仓的触角伸向PostgreSQL生态。本文从负载补齐、元数据标准化与AI应用低延迟读写三个切面拆解收购动机,逐层分析列存与行存的能力边界、存算分离下引入事务负载的提交延迟预算、逻辑复制的接缝风险、元数据统一与混合负载隔离冲突,并给出迁移落地的分阶段验收清单与七个典型误区,最后提供评估厂商PostgreSQL能力的六项观察指标。

搞定过:百亿级数据、万级QPS、零宕机、AI工业化。 463
上一篇: Oracle修炼路程--视图
下一篇: Oracle修炼路程--序列
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值