刪除vs刪除
Delete和Drop命令都屬於SQL(結構化查詢語言)語句,它們用於從數據庫中刪除數據。Delete是一個DML(數據操作語言)命令。它根據用戶指定的條件從表中刪除部分或全部數據。Delete語句只刪除表中的數據記錄,但表結構在數據庫中顯示相同的記錄。Drop命令是一個DDL(數據定義語言)語句,它的作用方式與Delete命令不同。它不是基於條件的語句,因此從表中刪除整個數據,還從數據庫中永久刪除表結構和對該表的所有引用。
刪除語句
如上所述,Delete語句根據提供的條件從表中刪除數據,Where子句與Delete一起使用來指定這個必需的條件。如果Where子句沒有用Delete聲明,那麼將從表中刪除所有表數據。但是,在Delete操作中,現有表結構保持不變。因此,如果用戶想再次重用表,則不需要定義表結構。由於Delete是一個DML命令,因此它在執行後不會自動提交。上一個操作可以回滾,這樣就可以撤消此操作。否則應調用永久性語句進行更改。在執行Delete語句時,它在事務日誌中為每一行刪除記錄一個條目。所以,這影響了手術的速度。同樣,它不會釋放執行後使用的空間。
下面是Delete語句的語法。
從<;表格名稱中刪除>;
或
從<;table_name>;WHERE<;condition>;中刪除;
Drop語句
Drop語句不僅無條件地從數據庫中刪除所有表記錄,而且還永久地從數據庫中刪除相關表的表結構、完整性約束、索引和訪問權限。因此,其他表的所有關係也不再存在,有關該表的信息將從數據字典中刪除。因此,如果用戶想重用該表,他/她需要再次定義表結構和對該表的所有其他引用。Drop是一個DDL命令,在執行該命令之後,它不能再次回滾,因為Drop命令使用自動提交。所以,用戶在使用這個命令時應該非常小心。Drop語句不能應用於系統表,也不能用於具有外鍵約束的表。
Drop命令不僅可以用於SQL表,還可以用於數據庫、視圖和表列,並且存儲在這些對象中的所有數據都會隨著對象一起永久丟失。
下面是Drop命令的典型語法。
刪除表格<;表格名稱>;
刪除和刪除有什麼區別?1Delete和Drop命令從數據庫中刪除表數據。但是Delete語句執行基於條件的刪除,而Drop命令則刪除表中的所有記錄。此外,Delete語句只刪除表中的行,並保留表結構不變,而Drop命令刪除表和表結構中的所有數據,還刪除數據庫中的所有其他引用。Delete是一個DML語句,而Drop是一個DDL命令。所以,Delete操作可以回滾並且不是自動提交的,而Drop操作不能以任何方式回滾,因為它是一個自動提交的語句。Drop命令不能用於已被外鍵約束引用的表,而Delete命令可以代替它。與SQL應用程序中的Delete語句相比,應該仔細使用Drop命令,並對其有很好的理解。 |