COMMIT和ROLLBACK的用法

从功能上划分,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,在运行脚本后,表已经建好了,并不在需要你再进行显式提交。

时间: 2024-08-28 22:18:55

COMMIT和ROLLBACK的用法的相关文章

JDBC Tutorials: Commit or Rollback transaction in finally block

http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Commit or Rollback transaction in finally block In most of JDBC books, the transaction management idiom that is followed is, after executing the update s

START TRANSACTION, COMMIT, and ROLLBACK Syntax-from cyber

START TRANSACTION [WITH CONSISTENT SNAPSHOT] BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] SET autocommit = {0 | 1} These statements provide control over use of transactions: START TRANSACT

四、全局事务的commit和rollback

所有文章 https://www.cnblogs.com/lay2017/p/12485081.html 正文 上一篇文章中,我们看了看DefaultCoordinator作为分布式事务的协调者,关于全局事务begin的流程. DefaultCoordinator把begin的核心实现交付给了DefaultCore,DefaultCore将会构造处一个GlobalSession,一份放到内存里面,一份持久化(默认持久化到 ~/sessionStore/root.data). 总结下来就是begi

oracle的启动与关闭原理-事务commit或者rollback

4.事务 4.1事务的概念 从第一个DML语句开始执行,以rollback或者commit为结束标记,之前所有的DML操作(insert,update,delete )都是属于这个事务的范围内. 4.2 事务的提交操作 (1)首先解锁一个用户并改密码 SQL> alter user scott account unlock; User altered. SQL> alter user scott identified by scott; User altered. (2)连接到scott用户S

MYSQL的COMMIT和ROLLBACK

从功能上划分,SQL 语言可以分为DDL,DML和DCL三大类. 1. DDL(Data Definition Language)      数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 :     CREATE---创建表     ALTER---修改表     DROP---删除表 2. DML(Data Manipulation Language)      数据操纵语言,SQL中处理数据等操作统称为数据操纵语言 :      INSERT---数据的插入     DEL

BEGIN TRAN...COMMIT TRAN 意思与用法

BEGIN TRAN标记事务开始 COMMIT TRAN 提交事务 一般把DML语句(select ,delete,update,insert语句)放在BEGIN TRAN...COMMIT TRAN 之间作为一个事务处理 也就是那些语句执行过程中如果遇到错误,无论哪句遇到错误,所有语句都会回滚到BEGIN TRAN之前的状态.

《oracle每天一练》触发器不能调用或间接调用COMMIT,ROLLBACK等DCL语句

触发器不能调用或间接调用COMMIT,ROLLBACK等DCL语句 在触发器中不能运行 ddl语句和commit,rollback语句 ddl语句:DDL语句用语定义和管理数据库中的对象,如Create,Alter,Drop,truncate等:DDL操作是隐性提交的!         操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数

python MySQLdb用法

数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TESTDB. 在TESTDB数据库中您已经创建了表 EMPLOYEE EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME. 连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123",你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令. 在你的机子上已经安装了 Pyt

[数据库] Navicat for Oracle基本用法图文介绍

引自百度百科:Navicat for Oracle是一套超强的Oracle数据库系统管理工具.它有极具巧思的图形化用户界面(GUI),让你可以快速且容易的以安全且简单的方法建立.组织.存取及共享资讯.Navicat for Oracle可以让用户连接本地/远端Oracle Server.提供一些实用的工具如数据/结构同步.导入/导出.备份及报表以协助管理数据的流程. 本文主要通过图文的方法介绍了Navicat for Oracle的基本用法,因为最近做J2EE项目涉及到远程数据库连接,故使用了该