sql中的三種刪除方式區別

2021-10-24 10:16:30 字數 1554 閱讀 3777

一、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。

Hql中的三種刪除方式

關於hibernate的刪除方式搞了一上午,終於完成啦。hibernate的刪除方式 方式一 string hql select p from province as p where p.id query query session.createquery hql query.setstring 0...

sql三種分頁方式

表中主鍵必須為標識列,id int identity 1,1 1.分頁方案一 利用not in和select top分頁 語句形式 select top 10 from testtable where id not in select top 20 id from testtable order b...

三種繼承方式的區別

class parent public int m npub protected int m nptd private int m nprt class child1 public parent int getptd int gerprt a class child2 protected paren...