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