4-2.數據的刪除(DELETE語句的使用方法)


DROP TABLE語句和DELETE語句

我們來學習如何刪除數據。 刪除數據的方法大體可以分為以下兩種。

①  DROP TABLE 語句可以將表完全刪除

②  DELETE 語句會留下表(容器),而刪除表中的全部數據

 

DELETE語句的基本語法

保留數據表,僅刪除全部數據行的DELETE語句

DELETE語句的刪除對象並不是表或者列,而是記錄(行)。

 

指定刪除對象的DELETE語句(搜索型DELETE)

想要刪除部分數據行時,可以像 SELECT 語句那樣使用 WHERE 子句指定刪除條件。這種指定了刪除對象的 DELETE 語句稱為搜索型 DELETE。

刪除部分數據行的搜索型DELETE

 

下面讓我們以 Product(商品)表為例,來具體研究一下如何進行 數據刪除

假設我們要刪除銷售單價(sale_price)大於等於 4000 日元的 數據(代碼清單 4-14)。上述表中滿足該條件的是“運動 T 恤”和“高壓鍋”。

WHERE 子句的書寫方式與此前介紹的 SELECT 語句完全一樣。 通過使用 SELECT 語句確認,表中的數據被刪除了 2 行,只剩下 6 行。

可以通過WHERE子句指定對象條件來刪除部分數據。

與 SELECT 語句不同的是,DELETE 語句中不能使用 GROUP BY、 HAVING 和 ORDER BY 三類子句,而只能使用WHERE 子句。原因很簡單, GROUP BY 和 HAVING 是從表中選取數據時用來改變抽取數據形式的, 而 ORDER BY 是用來指定取得結果顯示順序的。因此,在刪除表中數據 時它們都起不到什么作用。

 

只能刪除表中全部數據的TRUNCATE語句

與 DELETE 不同的是,TRUNCATE 只能刪除表中的全部數據,而不能通過 WHERE 子句指定條件來刪除部分數據。也正是因為它不能具體地控制刪除對象, 所以其處理速度比 DELETE 要快得多。實際上,DELETE 語句在 DML 語句中也 屬於處理時間比較長的,因此需要刪除全部數據行時,使用 TRUNCATE 可以縮短 執行時間。

 

刪除數據(只刪除數據,內存還在,如果有自增會延續增長)
語法格式:
delete from 表名 where 條件;
注意:沒有條件全部刪除。


刪除數據(全部刪除,內存無痕跡,如果有自增會重新開始編號)
truncate table 表名; // 表被截斷,不可回滾。永久丟失。


刪除表
drop table 表名; 
drop table if exists 表名; // oracle不支持這種寫法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM