SQL刪除語句用法

2021-07-24 10:14:32 字數 930 閱讀 2135

一、drop

語法:drop table tablename 

作用:刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以後要新增資料是不可能的,除非新增乙個表

二、truncate

語法:truncate table tablename 

作用:刪除內容、釋放空間但不刪除定義。與drop不同的是,他只是清空表資料而已.

注意:truncate 不能刪除行資料,要刪就要把錶清空

三、delete

語法:delete table tablename 或  delete table tb where 條件(1=1)

作用:刪除整個表的資料,但是過程是痛苦的(系統一行一行地刪,效率較truncate低)刪除內容不刪除定義,不釋放空間。

關於truncate的小總結:

truncate table 在功能上與不帶 where 子句的 delete語句相同:二者均刪除表中的全部行。

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

delete 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。所以可以對delete操作進行roll back

1、truncate 在各種表上無論是大的還是小的都非常快。如果有rollback命令delete將被撤銷,而 truncate 則不會被撤銷。 

2、truncate 是乙個ddl語言,向其他所有的ddl語言一樣,他將被隱式提交,不能對 truncate 使用rollback命令。 

3、truncate 將重新設定高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過 truncate 操作後的錶比delete操作後的表要快得多。 

4、truncate 不能觸發任何delete觸發器。 

5、當表被清空後表和表的索引講重新設定成初始大小,而delete則不能。 

6、不能清空父表

SQL刪除語句

如果我們要刪除資料庫中表的資料,我們就可以使用delete語句。delete語句的基本語法是 delete from 表名 where 例如,我們想刪除employees表中id 100的記錄,就需要這麼寫 delete from employees where employee id 100 查詢...

SQL語句級聯刪除

如果想刪除主表的時候同時刪除字表資料,可以在建立外來鍵時設定on delete cascade 但是需要注意的是,這樣是比較危險的,盡量在業務中用程式控制刪除。create table a and b 主表 create table department dept id number 4 not n...

SQL語句 nvl 用法

一nvl函式是乙個空值轉換函式 nvl 表示式1,表示式2 如果表示式1為空值,nvl返回值為表示式2的值,否則返回表示式1的值。該函式的目的是把乙個空值 null 轉換成乙個實際的值。其表示式的值可以是數字型 字元型和日期型。但是表示式1和表示式2的資料型別必須為同乙個型別。對數字型 nvl co...