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行数据排它锁
             事务排它锁



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

  1. oracle学习笔记(四) DQL数据查询语言和TCL 事务控制语言

    DML 数据管理语言 Data manage language insert, update, delete以及select语句,不过,有人也把select单独出来,作为DQL 数据查询语言 data ...

  2. 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引

    一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...

  3. Oracle事务控制语言

    事务控制语言在各大数据库中都差不多,本文讲讲Oracle和别的数据库不一样的地方 Oracle每条sql语句都是一个事务,像insert.update.delete之类的,每次执行过都要commit提 ...

  4. <MySQL>入门四 事务控制语言 TCL

    -- TCL /* Transcation Control Language 事务控制语言 事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行 案例:转账 name ...

  5. MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL)

    五.数据查询语言(DQL) (重中之重) 完整语法格式: select 表达式1|字段,.... [from 表名 where 条件] [group by 列名] [having 条件] [order ...

  6. oracle学习笔记(四) DML数据控制语言和TCL 事务控制语言

    DML 数据管理语言 Data manage language insert, update, delete以及select语句,不过,有人也把select单独出来,作为DQL 数据查询语言 data ...

  7. TCL(事务控制语言)

    #TCL/*Transaction Control Language 事务控制语言 事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行. 案例:转账 张三丰 1000 ...

  8. mysql事务控制语言TCL

    Transaction Control Language 事务控制语言 事务:一个或一组sql语句组成一个执行单元,这个执行单元作为不可分割的整体执行.如果某个语句执行错误,整个单元回滚到最初的状态. ...

  9. MySQL进阶15--TCL事务控制语言--建立结束事务/设置断点--默认隔离级别--脏读/幻读/不可重复读

    #TCL事物控制语言 : /* Transaction control language : 事物控制语言 事务: 一个或者一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行; ...

随机推荐

  1. 解决MySQL不允许从远程访问的方法

    mysql -u root -p mysql>use mysql; mysql>select 'host' from user where user='root'; mysql>up ...

  2. [MEAN Stack] First API -- 6. Using Express route instance

    For server.js, we update the code by using route instance. By using this, we can remove some duplica ...

  3. mysql索引需要了解的几个注意

    板子之前做过2年web开发培训(入门?),获得挺多学生好评,这是蛮有成就感的一件事,准备花点时间根据当时的一些备课内容整理出一系列文章出来,希望能给更多人带来帮助,这是系列文章的第一篇 注:科普文章一 ...

  4. 使用JS制作一个鼠标可拖的DIV(四)——缩放

    原理与鼠标拖动 DIV 相同. 下面就先实现一个在DIV的右上角显示一个小正方形(类似). 当鼠标按下并拖动时,DIV会以要拖动的元素的左下角的坐标点定位,根据鼠标的拖动,按比例的扩大或缩小. 一.思 ...

  5. spl_autoload_register()和__autoload()区别

    这篇文章主要介绍了spl_autoload_register()和__autoload()区别,需要的朋友可以参考下   关于spl_autoload_register()和__autoload(), ...

  6. [改善Java代码]严格限定泛型类型采用多重界限

    从哲学上来说,很难描述一个具体的人,你可以描述它的长相,性格,工作等,但是人都是有多重身份的,估计只有使用多个And(与操作)将所有的描述串联起来才能描述一个完整的人,人在不同的环境中角色也在不断的更 ...

  7. 关于hadoop2.4.1伪分布式系统的搭建

    1.准备Linux环境 1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip ...

  8. hishop网站迁移后出现DataProtectionConfigurationProvider错误(转)

    配置错误说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件.分析器错误信息: 未能使用提供程序“DataProtectionConfiguration ...

  9. 本机连接虚拟机Oracle时报错的解决办法

    虚拟机安装了Oracle服务器(桌面类)和客户端,里面使用plsql连接自己没有问题. 在本机连接虚拟机没有成功.虚拟机的地址是192.168.126.132,已经确认本机能ping通虚拟机. 先是报 ...

  10. http状态代码含义表

    100 - 表示已收到请求的一部分,正在继续发送余下部分. 101 - 切换协议. 2xx - 成功.服务器成功地接受了客户端请求: 200 - 确定.客户端请求已成功. 201 - 已创建. 202 ...