从功能上划分,SQL语言可以分为DDL,DML和DCL三大类。

1.DDL(Data Definition Language) 
  数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ;
  CREATE---创建表
  ALTER---修改表
  DROP---删除表

2. DML(Data Manipulation Language) 
  数据操纵语言,SQL中处理数据等操作统称为数据操纵语言 ; 
  INSERT---数据的插入
  DELETE---数据的删除
  UPDATE---数据的修改
  SELECT---数据的查询

3.DCL(Data Control Language) 
  数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等;
  GRANT---授权。
  ROLLBACK---回滚
  COMMIT---提交。

提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。

(1) 显式提交

用COMMIT命令直接完成的提交为显式提交。

(2) 隐式提交

用SQL命令间接完成的提交为隐式提交。

这些命令是:

ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,

EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

(3) 自动提交

若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,

系统将自动进行提交,这就是自动提交。其格式为: SQL>SET AUTOCOMMIT ON;

COMMIT / ROLLBACK这两个命令用的时候要小心。 COMMIT / ROLLBACK 都是用在执行 DML语句(INSERT / DELETE / UPDATE / SELECT )之后的。DML 语句,执行完之后,处理的数据,都会放在回滚段中(除了 SELECT 语句),等待用户进行提交(COMMIT)或者回滚 (ROLLBACK),当用户执行 COMMIT / ROLLBACK后,放在回滚段中的数据就会被删除。

(SELECT 语句执行后,数据都存在共享池。提供给其他人查询相同的数据时,直接在共享池中提取,不用再去数据库中提取,提高了数据查询的速度。)

所有的 DML 语句都是要显式提交的,也就是说要在执行完DML语句之后,执行 COMMIT 。

而其他的诸如 DDL 语句的,都是隐式提交的。也就是说,在运行那些非 DML 语句后,数据库已经进行了隐式提交,例如 CREATE TABLE,在运行脚本后,表已经建好了,并不在需要你再进行显式提交。

COMMIT和ROLLBACK的用法的更多相关文章

  1. 【SQL系列】从SQL语言的分类谈COMMIT和ROLLBACK的用法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SQL系列]从SQL语言的分类谈COMMIT和 ...

  2. JDBC Tutorials: Commit or Rollback transaction in finally block

    http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...

  3. mysql事务,START TRANSACTION, COMMIT和ROLLBACK,SET AUTOCOMMIT语法

    http://yulei568.blog.163.com/blog/static/135886720071012444422/ MyISAM不支持 START TRANSACTION | BEGIN ...

  4. 14.5.2.2 autocommit, Commit, and Rollback

    14.5.2.2 autocommit, Commit, and Rollback 在InnoDB,所有的用户活动发生在一个事务里, 如果自动提交模式是启用的, 每个SQL语句形成一个单独的事务.默认 ...

  5. 14.3.2.2 autocommit, Commit, and Rollback 自动提交 提交和回滚

    14.3.2.2 autocommit, Commit, and Rollback 自动提交 提交和回滚 如果自动提交模式被启用,在InnoDB里, 所有的用户活动发生在一个事务里, 每个SQL语句 ...

  6. flume-sink报错 java.lang.IllegalStateException: close() called when transaction is OPEN - you must either commit or rollback first

    1. 确认代码无误(根据情况修改,表示若获得不了数据不会自动commit或者rollback): Event event = channel.take(); if (event == null) { ...

  7. Fescar: Fast & Easy Commit And Rollback

    Fescar is an easy-to-use, high-performance, java based, open source distributed transaction solution ...

  8. 说commit,rollback

    事务执行失败后,看做的是commit还是rollback:commit是把执行成功的部分提交了,rollback就是全回滚了.如果rollback失败了,此时不处理,等到客户端断开,MySQL内部默认 ...

  9. oracle 基础知识(五)--回滚(commit和rollback)

    一,commit 01,commit干了啥 commit 就是提交的意思.也就是当你把99%的东西都做好了,然后你执行最后一步的操作...再commit前的话你可能啪啪啪啪啪,敲了几百条sql DML ...

随机推荐

  1. 2017.9.18 include指令和include动作有什么区别?

    问题:include指令和include动作有什么区别? 答:include指令合并静态文档或Jsp页面中的内容,可以用于包括动态生成的输出结果,因此可以包含一个Servlet include指令在编 ...

  2. app上线

    不管第一次还是第二次APP上线都需要三样东西:开发者证书,appID,描述文件

  3. 简单使用mybatis(idea中使用)

    首先创建一个maven项目 第一步:在pom.xml中添加依赖 <dependencies> <!--mybatis--> <dependency> <gro ...

  4. 【赛时总结】 ◇赛时·IV◇ CODE FESTIVAL 2017 Final

    ◇赛时-IV◇ CODE FESTIVAL 2017 Final □唠叨□ ①--浓浓的 Festival 气氛 ②看到这个比赛比较特别,我就看了一看--看到粉粉的界面突然开心,所以就做了一下 `(* ...

  5. JS之执行上下文

    执行上下文(execution context),是JS中的一个很重要的概念.它对于我们理解函数定义,执行时都做了什么有着很大的意义.理解它我们才能明白我们常说的函数声明提升,作用域链,闭包等原理. ...

  6. 【c学习-2】

    #include <stdio.h> #define MYVAR 18 int main(){ //float x=3.14; //x=3.14++; //printf("%c\ ...

  7. SQLSERVER 数据库恢复挂起的解决办法

    如果你的数据库还处于挂起状态,请把我下面代码的test改为你的库名,然后执行完,刷新就正常了: USE masterGOALTER DATABASE test SET SINGLE_USERGOALT ...

  8. python——input()函数

    在使用input()内置函数输入数字时,要注意一点: input()的返回值始终是字符串,所以type(number)永远是<class 'str'>! 如: >>> t ...

  9. 012---Django的用户认证组件

    知识预览 用户认证 回到顶部 用户认证 auth模块 ? 1 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的 ...

  10. Echarts 背景渐变柱状图

    var dom = document.getElementById("container"); var myChart1 = echarts.init(dom); var app ...