目录
引言
学完了MySQL的查询语言(DQL语言)、数据操作语言(DML语言)和DDL语言,今天让我们学习有关数据库的另一个语言【TCL语言】那么,TCL语言是关于什么的呢?让我们正式进入小课堂学习吧!
TCL语言,即事务控制语言。它表示的是:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行。含义了解了,那么它具有什么特点呢?
特点 ACID
- A 原子性:一个事务是不可再分割的整体,要么都执行要么都不执行
- C 一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态
- I 隔离性:一个事务不受其他事务的干扰,多个事务互相隔离的
- D 持久性:一个事务一旦提交了,则永久的持久化到本地
创建事务
【隐式事务】
又称自动事务:表示没有明显的开启和结束的标记,本身就是一条事务可以自动提交,比如insert、update、delete
【显式事务】
具有明显的开启和结束的标记
前提:必须先设置自动提交功能为禁用
事务的创建分三个步骤,如下:
并发事务
【概念】
多个事务同时操作同一个数据库的相同数据会发生并发事务。
脏读:
一个事务读取了其他事务还没有提交的数据,读到的是其他事务“更新”的数据
不可重复读:
一个事务多次读取,结果不一样
幻读:
一个事务读取了其他事务还没有提交的数据,只是读到的是 其他事务“插入”的数据
解决并发事务
通过设置隔离级别来解决并发问题。隔离界别分为一下四个级别:
mysql中默认隔离级别:repeatable read
oracle中默认隔离级别:read committed