delete drop和truncate的區別

2022-06-27 14:24:13 字數 1042 閱讀 9209

delete:用於刪除表中的行,可以刪除某一行,也可以在不刪除表的情況下刪除所有的行。

drop:用於刪除表,將表的結構、屬性、索引全部刪除。

truncate:用於刪除表內的資料,僅刪除表內資料,不刪除表本身。

truncate和不帶where子句的delete都能刪除表中的全部行。

truncate和delete只刪除表資料,保留表結構。

truncate和drop都是ddl。

truncate table比 delete table速度快,且使用的系統和事務日誌資源少。

delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。

truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度快。

truncate table是刪除內容,釋放空間,但不刪除定義。

delete table是刪除內容不刪除定義,不釋放空間。

drop table是刪除內容和定義,釋放空間

表和索引所佔空間:

truncate操作後,這個表和索引所佔的空間會恢復到初始大小。

delete操作不會減少表或索引所占用的空間。

drop語句將表所占用的空間全部釋放。

應用範圍:

truncate只能對table。

delete可以是table和view。

truncate和delete只刪除資料,drop則刪除整個表(結構和資料)。

truncate與不帶where的delete :只刪除資料,而不刪除表的結構(定義)。drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴於該錶的儲存過程/函式將被保留,但其狀態會變為:invalid。

在速度上drop>truncate>delete。

表是一本書,delete是根據條件撕下書的內容,truncate是把書的內容撕下來燒了,drop是把書燒了。

truncate與delete drop的區別

注意事項 1.在oracle中資料刪除後還能回滾是因為它把原始資料放到了undo表空間。2.dml語句使用undo表空間,ddl語句不使用undo,而delete是dml語句,truncate是ddl語句,另外ddl語句是隱式提交.所以truncate操用不能回滾,而delete操作可以。trunc...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...

rpx和樣式和class和flex

5 style 靜態的樣式統一寫到 class 中。style 接收動態的樣式,在執行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。例 6 class 用於指定樣式規則,其屬性值是樣式規則中類選擇器名 樣式類名 的集合,樣式類名不需要帶上.樣式類名之間用空格分隔。關於f...