TCL_事务控制语言

TCL

    transaction  事务   --  DML

           定义为把一连串的操作作为单个逻辑工作单元处理

               -----     例如:银行转账


事务特性   ACID

    原子性     atomicity           所有的数据修改  要么一起执行  要么不执行

    一致性     congsistency     所有的数据修改同时得到反应

    隔离性     isolation             另一个事务需要在此事务结束之后才能执行

    持久性     durability           数据变动是永久的

  

使用事务的优点:

   他们保证了数据的一致性

   使用事务使得数据修改更为灵活而且修改过程是可控的

   即使在用户处理失败或者系统发生故障时数据仍然是安全的

   事务保证DML(数据操纵语言)语句对于数据的所作的变动是一致的


隐式事务   DDL

显式事务   DCL   - commit

commit  语句完成显式事务,并且使得所有的修改是永久有效的

rollback   语句终止当前事务,使得数据库返回到以前的状态


实例:

  1. select * from student;
  2. update student set sex = ‘人‘ where stuNo = ‘00011‘;
  3. commit;
  4. rollback; -- 回滚至上一commit之后
  5. show autocommit; -- 默认off
  6. set autoCommit on;
  7. set autoCommit off;
  8. create table AA(
  9. AA char(10)
  10. ); -- 隐式commit
  11. select * from bankcount;
  12. -- 多条语句 事务
  13. update bankcount set money = money - 10000 where countno = ‘110 000 2000 888‘;
  14. update bankcount set money = money + 10000 where countno = ‘110 000 2000 889‘;
  15. rollback;
  16. commit;
  17. -- rollback 定义保存点 savePoint;
  18. SAVEPOINT aa;
  19. update bankcount set money = money + 10000 where countno = ‘110 000 2000 888‘;
  20. SAVEPOINT bb;
  21. update bankcount set money = money - 10000 where countno = ‘110 000 2000 889‘;
  22. rollback to bb; -- 回滚之保存点之后
  23. commit;



在下列情况下,数据修改自动被回滚:

1. 系统崩溃或发生故障.

2. SQL*Plus 意外终止.

隔离性:

上锁防止多个用户同时修改数据.

上锁可以是隐式或显式的.

上锁的一些基本内容:

上锁可预防并发事务之间的破坏性的交互.

上锁是自动施行的,无须用户干预.

上锁把操作限制到可能的最小粒度.

只有在事务结束后,上锁才被解除.

DML行数据排它锁

事务排它锁



来自为知笔记(Wiz)

时间: 2024-10-12 07:22:49

TCL_事务控制语言的相关文章

事务控制语言DTL

一.什么是事务? · 数据库中的事务,是指可以将"多条相关语句执行"看做是"一条语句执行"的一种内部机制.即事务是一种可以保证"多条语句一次性执行完成"或者一条语句都不执行的机制. 三.事务的特点 原子性--事务中的语句,应该都能做到,要么全部完成,要么都不做. 一致性--让数据保持逻辑上的"合理性" 隔离性--如果多个事务同时并发执行,但每个事务就像独立运行一样 持久性--一个事务执行成功,就明确物理硬盘的数据改变 四.事务

数据库---数据控制语言(DCL)

数据控制,其实就是"分配权限"--就涉及到用户.则主要就是2个问题: 用户管理: 权限分配: 有哪些权限.mysql中的权限mysql中,权限是系统内定的一些"名词"(单词),大约30个,每个权限表示"可以做什么工作". 则分配权限就是相当于让某个用户可以做哪些工作.主要权限如下: mysql中的用户:mysql中的用户信息都存储在系统数据库mysql的user表中.创建用户语法形式: create user '用户名'@'允许其登录的地址' i

mysql----事务控制语言--TCL

TCL:事务控制语言 事务:一个或者一组sql语句组成的一个执行单元,这个执行单元,要么都执行要么都不执行 案例;转账 张三丰 1000 郭襄 1000 场景,张三丰给郭襄转账500块钱 update 表 set 张三丰的余额=500 where name='张三丰'; update 表 set 郭襄的余额=1500 where name='郭襄'; 事务的特性ACID 这是必须要记住的 show ENGINES 事务的创建: 隐式事务:事务没有明显的开启或者结束的标记 比如,之前学习过的ins

Oracle数据库语句大全

转自:http://blog.sina.com.cn/s/blog_b5d14e2a0101c56z.html ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的. PRIMARY KEY (主键)--用来唯一的标识出表的每

oracle概念

01.DDL 数据定义语言 create alter drop truncate 02.DML 数据操作语言 insert delete update select 03.TCL 事务控制语言 commit rollback 04.DCL 数据控制语言 rovoke grant sql分类 A(Atomicity):原子性 一个事务是一个不个分割的工作单位,要么所有的语句都执行成功, 要么所有的语句都不执行. C(Consistency):一致性 事务必须是是一个数据库从一个一致性状态变到另一个

SQL中的四种语言DDL,DML,DCL,TCL

1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema. DDL是SQL语言的四大功能之一.用于定义数据库的三级结构,包括外模式.概念模式.内模式及其相互之间的映像,定义数据的完整性.安全控制等约束DDL不需要commit.CREATEALTERDROPTRUNCATECOMMENTRENAME 2.DML(Data Manipulation Lang

mysql学习笔记(三)--- 基本的SQL语句

[正文] 主要内容: 一.cmd命令行的常用命令 二.数据定义语言(DDL) 三.数据操纵语言(DML) 四.数据查询语言(DRL) 五.事务控制语言(TCL) 一.cmd命令行的常用命令: 当我们使用MySQL 5.5 Command Line Client这个客户端登陆时,只能登陆root用户.如果今后创建了别的用户,就很麻烦了,所以我们不用MySQL 5.5 Command Line Client这个客户端,而是直接使用cmd. 登录MySQL数据库: 因为在这之前安装MySQL的时候,已

Oracle第三章——SQL语言

SQL语言是高级的结构化查询语言,大大减轻了用户的负担.目前查询语言分为四种,数据定义语言(DDL).数据操纵语言(DML). 事务控制语言(TCL).数据控制语言(DCL). 一.数据定义语言(DDL) 1.CREATE CREATE命令用于创建模式对象,如创建表的格式为:CREATE TABLE [schema.]table (column datatype [, column datatype]);,其中, schema是对象的持有者,即用户对应的模式,如果在用户自己的模式中创建则可以不指

Oracle系列:(10)小结

使用NVL(a,b)通用函数,统计员工年收入,NVL()作用于任何类型,即(number/varchar2/date) 通用函数:参数类型可以是number或varchar2或date类型 使用NVL2(a,b,c)通用函数,如果a不为NULL,取b值,否则取c值,统计员工年收入 使用NULLIF(a,b)通用函数,在类型一致的情况下,如果a与b相同,返回NULL,否则返回a,比较10和10.0是否相同 使用SQL99标准通用语法中的case表达式,将职位是分析员的,工资+1000:职位是经理的