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

          Posted on 2007-04-23 20:12 久城 閱讀(10218) 評論(1)  編輯  收藏 所屬分類: 數據庫學習


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



          歡迎來訪!^.^!
          本BLOG僅用于個人學習交流!
          目的在于記錄個人成長.
          所有文字均屬于個人理解.
          如有錯誤,望多多指教!不勝感激!

          Feedback

          # re: 從SQL語言的分類談COMMIT和ROLLBACK的用法   回復  更多評論   

          2007-08-15 15:04 by ddd
          看來BZ是剛接觸SQL。。。

          Copyright © 久城

          主站蜘蛛池模板: 方山县| 育儿| 潼南县| 荔浦县| 沾化县| 武安市| 庆安县| 罗江县| 宾阳县| 仙桃市| 蚌埠市| 云和县| 肥乡县| 伊宁县| 宾阳县| 曲周县| 虞城县| 洛南县| 遂溪县| 赞皇县| 无棣县| 普兰县| 镇坪县| 凤山市| 南安市| 嘉禾县| 礼泉县| 陵水| 连山| 宁国市| 泰安市| 清原| 中宁县| 杂多县| 望谟县| 白朗县| 韶山市| 竹山县| 高邑县| 漾濞| 那坡县|