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

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


          網站導航:
           
          主站蜘蛛池模板: 漯河市| 大足县| 兰西县| 保山市| 衡阳县| 陇西县| 达孜县| 拉萨市| 原平市| 永德县| 大兴区| 托克托县| 义乌市| 丰顺县| 特克斯县| 涡阳县| 通海县| 澄江县| 平顶山市| 布拖县| 灵宝市| 鞍山市| 和静县| 梅河口市| 阜平县| 兰坪| 巫溪县| 灵寿县| 桃源县| 栾城县| 华容县| 英吉沙县| 嘉禾县| 施甸县| 滦平县| 建湖县| 东港市| 将乐县| 龙泉市| 高安市| 图们市|