程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 從SQL語言的分類談COMMIT和ROLLBACK的用法

從SQL語言的分類談COMMIT和ROLLBACK的用法

編輯:關於SqlServer

從功能上劃分,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,在運行腳本後,表已經建好了,並不在需要你再進行顯式提交。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved