從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命令間接完成的提交為隱式提交。這些命令是:

              ALTERAUDIT,COMMENT,CONNECT,CREATE,DISCONNECTDROP,

          EXIT,GRANT,NOAUDIT,QUIT,REVOKERENAME。

              (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 © 久城

          主站蜘蛛池模板: 左权县| 定南县| 平凉市| 加查县| 怀集县| 临泉县| 章丘市| 广元市| 兴业县| 石首市| 青岛市| 苗栗市| 瓮安县| 恩平市| 兴安县| 信丰县| 西畴县| 海林市| 宕昌县| 莱阳市| 区。| 宁城县| 姚安县| 隆林| 平昌县| 台北市| 讷河市| 新邵县| 富平县| 金昌市| 谢通门县| 商都县| 浦江县| 新蔡县| 峨眉山市| 宜川县| 松潘县| 寻乌县| 郴州市| 永吉县| 阜康市|