4-2.数据的删除(DELETE语句的使⽤⽅法)
DROP TABLE语句和DELETE语句
我们来学习如何删除数据。删除数据的⽅法⼤体可以分为以下两种。
truncate可以加条件吗① 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不⽀持这种写法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论