資料庫關鍵詞 drop、truncate和delete的用法
一、SQL中的語法
1、drop table 表名稱 eg: drop table dbo.Sys_Test
2、truncate table 表名稱 eg: truncate table dbo.Sys_Test
3、delete from 表名稱 where 列名稱 = 值 eg: delete from dbo.Sys_Test where test=‘test’
二、drop,truncate,delete區別
1、drop (刪除表):刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以後要新增資料是不可能的,除非新增一個表。
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴於該表的儲存過程/函式將被保留,但其狀態會變為:invalid。
2、truncate (清空表中的資料):刪除內容、釋放空間但不刪除定義(保留表的資料結構)。與drop不同的是,只是清空表資料而已。
注意:truncate 不能刪除行資料,要刪就要把表清空。
3、delete (刪除表中的資料):delete 語句用於刪除表中的行。delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存
以便進行進行回滾操作。
truncate與不帶where的delete :只刪除資料,而不刪除表的結構(定義)
4、truncate table 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用delete。
如果要刪除表定義及其資料,請使用 drop table 語句
5、對於由foreign key約束引用的表,不能使用truncate table ,而應使用不帶where子句的delete語句。由於truncate table 記錄在日誌中,所以它不能啟用觸發器。
6、執行速度,一般來說: drop> truncate > delete。
7、delete語句是資料庫操作語言(dml),這個操作會放到 rollback segement 中,事務提交之後才生效;如果有相應的 trigger,執行的時候將被觸發。
truncate、drop 是資料庫定義語言(ddl),操作立即生效,原資料不放到 rollback segment 中,不能回滾,操作不觸發 trigger。
三、刪除表資料的兩種方法:delete和turncate。具體語句如下:
1、RUNCATE TABLE name :
刪除表中的所有行,而不記錄單個行刪除操作。 在這個指令之下,表格中的資料會完全消失,可是表格本身會繼續存在。
TRUNCATE TABLE 的語法:TRUNCATE TABLE name ,引數 name 是要截斷的表的名稱或要刪除其全部行的表的名稱。
2、Delete from tablename where 1=1
1)、delete語法:
DELETE FROM 表名稱 WHERE 列名稱 = 值。
2)、刪除所有行:
可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:DELETE FROM table_name。
相關文章
- 資料庫:drop、truncate、delete的區別資料庫delete
- HWM和delete,drop,truncate的關係delete
- mysql資料庫中刪除資料的三種形式 drop和 truncate 和 deleteMySql資料庫delete
- 簡述truncate、delete和dropdelete
- 關於delete,drop,truncate的問題delete
- drop、delete 與truncatedelete
- [轉][資料庫SQL語句]truncate/delete/drop同與不同資料庫SQLdelete
- Truncate,Delete,Drop的比較.delete
- truncate delete drop 區別delete
- truncate,delete,drop的異同點delete
- 詳解SQL中drop、delete和truncate的異同SQLdelete
- truncate,delete,drop的異同點(原)delete
- SQL truncate 、delete與drop區別SQLdelete
- truncate和不帶where子句的delete, 以及drop區別delete
- SQL資料庫中Truncate的用法SQL資料庫
- 資料庫Delete的多種用法資料庫delete
- oracle恢復表delete/truncate/drop的方法總結Oracledelete
- Truncate table 詳解及與delete,drop 的區別delete
- Truncate table詳解及與delete,drop的區別delete
- truncate和delete 的區別delete
- 利用Log Explorer將你已經delete,truncate,drop過的資料進行恢復delete
- truncate 和 delete 的效能對比delete
- drop table和truncate table的區別
- 資料庫SQL語句中關於explain關鍵字的用法資料庫SQLAI
- 關於 Oracle 分割槽索引的正確 DROP 和 TRUNCATE 方法Oracle索引
- RMAN恢復單個表空間或被DROP/DELETE/TRUNCATE的表delete
- delete和truncate刪除的區別delete
- Oracle中truncate和delete的區別Oracledelete
- PostgreSQL 資料庫中 DISTINCT 關鍵字的 4 種用法SQL資料庫
- truncate delete 的區別delete
- SQLSERVER 的 truncate 和 delete 有區別嗎?SQLServerdelete
- MySQL和Oracle中的delete,truncate對比MySqlOracledelete
- java繼承-final關鍵詞用法Java繼承
- delete/truncate刪除資料索引空間問題delete索引
- 深入解析delete和truncate不同之處:delete
- Diffrence Between delete and truncatedelete
- truncate 比 delete 慢delete
- SQL – TRUNCATE vs DELETESQLdelete