`
zhangziyueup
  • 浏览: 1169678 次
文章分类
社区版块
存档分类
最新评论

从SQL语言的分类谈COMMIT和ROLLBACK的用法

 
阅读更多

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

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

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

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

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

(1) 显式提交

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

(2) 隐式提交

SQL命令间接完成的提交为隐式提交。这些命令是:

ALTERAUDITCOMMENTCONNECTCREATEDISCONNECTDROP

EXITGRANTNOAUDITQUITREVOKERENAME

(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 语句后,数据库已经进行了隐式提交,例如 CREATETABLE,在运行脚本后,表已经建好了,并不在需要你再进行显式提交。

分享到:
评论

相关推荐

    SQL事务用法begin tran,commit tran和rollback tran的用法

    Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务。begin tran表示开始事务, commit tran表示提交事务,rollback tran表示回滚事物

    Sql经典练习题库(附答案)

    它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。 它以记录集合作为操作对象,所有SQL...

    S.Q.LSQL全称

    他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受...

    经典全面的SQL语句大全

     DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)  首先,简要介绍基础语句:  1、说明:创建数据库 CREATE DATABASE database-name  2、说明:删除数据库 drop database dbname  3、说明:备份sql server ...

    ESQLC资料 informax

    1.4.3.2 使用动态SQL的四种方法 88 1.4.3.3 SQLDA 91 1.5 第五节INFORMIX的嵌入SQL/C语言 107 1.5.1 一个简单的入门例子 107 1.5.2 宿主变量 109 1.5.3 嵌入SQL的处理过程 114 1.5.4 动态SQL语言 115 1.5.4.1 SQLDA ...

    ESQLC资料 informix (加上星级评论后可以返还11分)

    1.4.3.2 使用动态SQL的四种方法 88 1.4.3.3 SQLDA 91 1.5 第五节INFORMIX的嵌入SQL/C语言 107 1.5.1 一个简单的入门例子 107 1.5.2 宿主变量 109 1.5.3 嵌入SQL的处理过程 114 1.5.4 动态SQL语言 115 1.5.4.1 SQLDA ...

    SQL21日自学通

    使用SQL 来生成SQL 语句的目的351 几个SQL*PLUS 命令352 SET ECHO ON/OFF353 SET FEEDBACK ON/OFF353 SET HEADING ON/OFF 353 SPOOL FILENAME/OFF353 START FILENAME354 ED FILENAME354 计算所有的表中的行数354 为...

    SQL培训第一期

    结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行的信息查询,select。 ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

    SQL 优化原则

    最高效的删除重复记录方法 ( 因为使用了ROWID)例子: DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO); (9) 用TRUNCATE替代DELETE: 当删除表中的记录时,在...

    SQL必知必会(第3版)--详细书签版

    所属分类: 计算机 > 数据库 > SQL语言 编辑推荐  SQL经典畅销书  涵盖所有主流数据库  学习与参考皆宜... 内容简介  sql 是目前使用最为广泛的数据库语言之一。本书没有涉及理论,而是从实践出发,...

    2009达内SQL学习笔记

    rollback:回溯,回溯到上次操作前的状态,把这次事务操作作废,只有一次(DDL和DCL语句会自动提交,不能回溯)。 可以用commit语句提交,这样就回溯不回了。 set pause on\off :设置分屏(设置不分屏) set pause...

    JDBC事务处理机制探秘

    在最近一次commit()方法调用之后的所有SQL会在方法commit()调用时得到确认。 1. public int delete(int sID) { 2. dbc = new DataBaseConnection(); 3. Connection con = dbc.getConnection(); 4. try { 5. con...

    数据库系统原理实验大纲.doc

    嵌入式SQL以及DBMS与高级语言的接口 了解嵌入式SQL在PowerBuilder中的使用方法 了解SQL Server与各种开发工具的接口,包括PowerBuilder, Delphi, Visual C++, 以及ASP架构、DOT.NET架构等各种环境下对数据库的访问...

    PLSQLDeveloper下载

    SQL语言的分类情况大致如下: 1) 数据定义语言(DDL):Create,Drop,Grant,Revoke,… 2) 数据操纵语言(DML):Update,Insert,Delete,… 3) 数据控制语言(DCL):Commit,Rollback,Savapoint,… 4) 其他:Alter ...

    jdbc连接数据库的方式2

     我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求,而不是使用Java等过程化的编程语言。  如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,...

    Step By Step写测试(书签版).pdf

    5.12 commit&rollback; 5.13 其它命令 5.14 事务管理 5.15 Martini项目下的ibatis文件配置 5.16 数据库测试FAQ 6 Spring和SQL跟踪 6.1 @Tracer 6.2 FAQ 7 JTester插件的使用 7.1 插件功能 7.2 插件安装 7.3 录制变量...

    数据库.txt

    数据库控制语言主要用于控制用户的访问权限,其中包括GRANT语句、REVOKE语句、COMMIT语句和ROLLBACK语句。 GRANT语句用于给用户增加权限,REVOKE语句用于收回用户的权限,COMMIT语句用于提交事务,ROLLBACK语句...

Global site tag (gtag.js) - Google Analytics