在sql命令中delete和drop都是可以用于刪除數(shù)據(jù)庫的元素,那么它們之間有什么區(qū)別?下面本篇文章就給大家簡(jiǎn)單比較一下delete和drop,介紹delete和drop的區(qū)別,希望對(duì)大家有所幫助。
DELETE命令的簡(jiǎn)單介紹
DELETE是一種數(shù)據(jù)操作語言(DDL)命令,可以使用DELETE命令來從表中刪除部分或全部記錄??梢院蚖HERE子句一起使用,用于刪除滿足添加的某些記錄;如果未指定WHERE條件,則將刪除所有記錄?!鞠嚓P(guān)視頻教程推薦:MySQL教程】
注:使用DELETE命令無法刪除整個(gè)表或域、約束。
DELETE命令的語法如下:
DELETE?FROM?relation_name??where條件;
如果使用外鍵鏈接兩個(gè)表并從引用的表中刪除元組,則還將自動(dòng)刪除引用表中的數(shù)據(jù)以保持引用完整性。
DROP命令的簡(jiǎn)單介紹
DROP是一種數(shù)據(jù)定義語言(DDL)命令,可以從數(shù)據(jù)庫中刪除一個(gè)或多個(gè)表,它將刪除表的所有相關(guān)數(shù)據(jù),索引,觸發(fā)器,約束和權(quán)限規(guī)范
DROP命令的語法如下:
DROP?SCHEMA?schema_name?restrict; DROP?Table?table_name?CASCADE;
DROP命令有兩個(gè)名為CASCADE和RESTRICT的行為選項(xiàng)。當(dāng)CASCADE用于DROP模式時(shí),它會(huì)刪除所有相關(guān)元素,如模式,域和約束中的所有表。
當(dāng)我們使用CASCADE從架構(gòu)中刪除表時(shí),它會(huì)刪除所有約束,視圖以及引用正在刪除的關(guān)系的元素。
注:無法刪除任何外鍵約束引用的表。
DELETE和DROP的主要區(qū)別
1、DELETE是一個(gè)數(shù)據(jù)操作語言命令,而DROP是一個(gè)數(shù)據(jù)定義語言命令。
2、DELETE命令用于從表中刪除部分或全部元組。而,DROP命令用于從數(shù)據(jù)庫中刪除一個(gè)或多個(gè)表,可以刪除表的所有相關(guān)數(shù)據(jù),索引,觸發(fā)器,約束和權(quán)限規(guī)范。
3、DELETE可以與WHERE子句一起使用,但DROP不能與任何命令一起使用。
4、可以使用DELETE命令執(zhí)行回滾操作,因?yàn)樗褂镁彌_區(qū);但在使用DROP命令的情況下無法操作回滾,因?yàn)樗苯犹幚韺?shí)際數(shù)據(jù)。。
5、由于DELETE命令不刪除表,因此不會(huì)釋放任何空間;而drop命令會(huì)刪除整個(gè)表,從而釋放內(nèi)存空間。