posts - 8, comments - 13, trackbacks - 0, articles - 43
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          先簡單回顧下sql語言的幾種語言:ddl,dml,dcl,它們分別是:

          ddl即data definition language,例如常用的:create,alter,drop,truncate,grant,revoke,comment;

          dml即data manipulation language,我們經常使用的:select,insert,update,delete等都是數據操作語言。

          dcl即data control language,數據控制語言,平時基本用不到,如commit,savepoint,rollback,set transaction。

           

          所以區別主要在:

          • delete是dml語句,這個操作使用放在rollback segement里,事務提交后才生效,是可以回滾的;truncate是ddl語句,它不在rollback segement里的,事務自動提交,操作立即生效,沒有回滾一說,除非自身失敗;
          • 還有一個關鍵,雖然truncate是數據定義語言,但是truncate和delete操作一樣,都只刪除數據不刪除表結構,兩者的主要區別在于,truncate操作是沒有備份的,所以它執行速度比delete快;而另一個ddl語句drop,將刪除的是結構包括被依賴的觸發器,索引,約束,依賴該表的存儲過程會被保留。剛才又搜索了下truncate和drop操作之后數據也還是可以找回來的:http://dbsnake.com/2010/06/truncate-drop-recovery.html

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 巴林右旗| 牙克石市| 兖州市| 海阳市| 大埔县| 德惠市| 宁都县| 汶川县| 闵行区| 永嘉县| 高青县| 县级市| 宁远县| 苍山县| 红安县| 芜湖县| 壶关县| 高尔夫| 咸阳市| 利津县| 木兰县| 墨竹工卡县| 临夏市| 宜昌市| 合肥市| 万山特区| 邹城市| 汪清县| 比如县| 神池县| 年辖:市辖区| 获嘉县| 临沧市| 唐山市| 新巴尔虎左旗| 永寿县| 基隆市| 大洼县| 满洲里市| 永康市| 巴彦县|