`

从SQL语言的分类谈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---数据的查询

    DCL(Data Control Language) 
    数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等;
   
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 语句后,数据库已经进行了隐式提交,例如 CREATE TABLE,在运行脚本后,表已经建好了,并不在需要你再进行显式提交。

分享到:
评论

相关推荐

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

    `BEGIN TRAN`、`COMMIT TRAN` 和 `ROLLBACK TRAN` 是SQL Server中用于管理事务的主要命令。下面将详细解释这些命令的用法和作用。 1. `BEGIN TRAN`: `BEGIN TRAN` 语句用于启动一个新的事务。当开始一个事务时,...

    sql 语言资料包sql 语言资料包sql 语言资料包

    此外,它可能涵盖事务处理(BEGIN、COMMIT、ROLLBACK)和存储过程的概念,这些都是数据库管理的重要组成部分。 《Hibernate HQL.ppt》可能是一个关于Hibernate对象关系映射框架的演示文稿,HQL(Hibernate Query ...

    SQL语言基本语句介绍SQL语言基本语句介绍

    本文将深入探讨SQL语言的基本语句,帮助读者掌握其核心概念和用法。 1. 数据库操作与连接 SQL允许我们创建、修改和删除数据库。CREATE DATABASE语句用于创建新的数据库,ALTER DATABASE可以修改已有的数据库属性,...

    microsoft sql server 2008技术内幕 t-sql语言基础

    在T-SQL中,你可以使用BEGIN TRANSACTION、COMMIT和ROLLBACK语句来管理和控制事务。 6. **视图** 视图是虚拟表,基于一个或多个表的查询结果。它们提供了一种方式来封装复杂查询,简化数据访问,并可以作为安全...

    SQL语句大全(SQL语言学习)

    BEGIN TRANSACTION、COMMIT和ROLLBACK分别用于开始、提交和回滚事务。 八、权限管理 1. 用户与角色:创建和管理用户,分配角色,以控制对数据库资源的访问权限。 2. 权限控制:GRANT和REVOKE语句用于赋予或撤销...

    SQL语言总结.docx

    本节课程中,我们将详细介绍SQL语言的基本语句和应用,包括SELECT语句、INSERT语句、UPDATE语句、DELETE语句等,並且通过实际示例来说明每种语句的使用方法。 在学习SQL语言时,需要注意以下几点: * 需要了解...

    SQL资料(sql语言)

    SQL(Structured Query Language)是一种用于管理和处理关系数据库的标准编程语言,它是数据查询、数据更新、数据插入和数据删除的主要工具。SQL的全称是结构化查询语言,它在信息技术领域中扮演着至关重要的角色,...

    手写版SQL语言基础

    BEGIN、COMMIT和ROLLBACK语句分别用于开始、提交和回滚事务。 以上只是SQL语言基础的冰山一角,实际的学习过程中还需要深入理解子查询、窗口函数、游标、存储过程等高级特性。希望安迪的手写版SQL语言基础文档能为...

    SQL语言参考大全(CHM版)

    SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言,其功能强大且广泛应用于各种数据库系统,如MySQL、Oracle、SQL Server等。本资源“SQL语言参考大全(CHM版)”提供了一个全面的SQL学习和查询...

    SQL语言学习循序渐进

    同时,你还会了解事务(TRANSACTION),它是SQL中确保数据一致性的关键概念,包括BEGIN、COMMIT和ROLLBACK操作。 在更高级的主题中,你将接触到视图(VIEW)、存储过程(STORED PROCEDURE)和触发器(TRIGGER)。...

    SQLServer存储过程中事务的使用方法

    本篇将详细介绍如何在SQL Server存储过程中使用事务。 首先,事务有四个基本特性,即ACID(原子性、一致性、隔离性和持久性): 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会留下...

    SQL语言循序渐进学习方法

    SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,其功能强大且广泛应用于各种数据库系统,如MySQL、Oracle、SQL Server等。SQL语言的学习是一个逐步深入的过程,下面将按照循序渐进的方式...

    数据库查询SQL语言参考大全

    5. **事务处理语言 (TPL)** - 处理数据库事务,确保数据的一致性和完整性,如`BEGIN TRANSACTION`, `COMMIT`, `ROLLBACK`等。 **SQL查询的基本语法:** - **SELECT语句** - 用于从数据库中检索数据。例如,`SELECT ...

    SQL语言参考大全(CHM版).rar

    7. **事务和并发控制**:讲解如何使用BEGIN TRANSACTION、COMMIT和ROLLBACK来确保数据的一致性,以及锁定和隔离级别等并发控制机制。 8. **触发器和约束**:触发器可以在特定事件发生时自动执行操作,约束则用于...

    sql 教程和经典sql

    5. **事务处理**:讲解如何使用BEGIN、COMMIT和ROLLBACK来管理数据库事务,确保数据的一致性。 6. **存储过程和函数**:如何创建和调用自定义的SQL代码块,提高代码复用性和效率。 7. **视图**:如何创建和使用视图...

    sql语言详细介绍新手入门

    此外,还有COMMIT和ROLLBACK命令,用于提交或回滚事务,确保数据的一致性。 总的来说,SQL语言是数据库管理的基础,无论是初学者还是专业开发人员,掌握SQL都是必要的技能。通过理解SQL的各个组成部分,可以高效地...

    Microsoft SQL Server 2008技术内幕:T-SQL语言基础—源代码

    书中会介绍BEGIN TRANSACTION、COMMIT和ROLLBACK的用法,以及事务隔离级别的概念。 6. **存储过程**:存储过程是预编译的T-SQL代码块,可以重复使用,提高效率并减少网络流量。书中的存储过程部分将涵盖创建、调用...

    SQL语言参考大全chm版

    7. **事务和并发控制**: 了解如何使用BEGIN、COMMIT、ROLLBACK和SAVEPOINT来管理事务,以及锁和隔离级别在多用户环境中的作用。 8. **数据库设计**: 正确设计数据库模式,理解范式理论(1NF、2NF、3NF等),以及...

Global site tag (gtag.js) - Google Analytics