广告
返回顶部
首页 > 资讯 > 数据库 >SQL 数据的删除(DELETE 语句的使用方法)
  • 342
分享到

SQL 数据的删除(DELETE 语句的使用方法)

SQL数据的删除(DELETE语句的使用方法) 2019-03-30 23:03:33 342人浏览 猪猪侠
摘要

目录一、DROP TABLE 语句和 DELETE 语句二、DELETE 语句的基本语法三、指定删除对象的 DELETE 语句(搜索型 DELETE)请参阅 学习重点 如果想将整个表全部删除,可以使用 DROP TABLE 语句,如

SQL 数据的删除(DELETE 语句的使用方法)

目录
  • 一、DROP TABLE 语句和 DELETE 语句
  • 二、DELETE 语句的基本语法
  • 三、指定删除对象的 DELETE 语句(搜索型 DELETE)
  • 请参阅

学习重点

  • 如果想将整个表全部删除,可以使用 DROP TABLE 语句,如果只想删除表中全部数据,需使用 DELETE 语句。

  • 如果想删除部分数据行,只需在 WHERE 子句中书写对象数据的条件即可。通过 WHERE 子句指定删除对象的 DELETE 语句称为搜索型 DELETE 语句。

一、DROP TABLE 语句和 DELETE 语句

上一篇我们学习了插入数据的方法,本文我们来学习如何删除数据。删除数据的方法大体可以分为以下两种。

DROP TABLE 语句可以将表完全删除

DELETE 语句会留下表(容器),而删除表中的全部数据

KEYWORD

  • DROP TABLE 语句

  • DELETE 语句

① 中的 DROP TABLE 语句我们已经在 表的删除和更新 中学过了,此处再简单回顾一下。DROP TABLE 语句会完全删除整张表,因此删除之后再想插入数据,就必须使用 CREATE TABLE 语句重新创建一张表。

反之,② 中的 DELETE 语句在删除数据(行)的同时会保留数据表,因此可以通过 INSERT 语句再次向表中插入数据。

本文所要介绍的删除数据,指的就是只删除数据的 DELETE 语句。

此外,不管使用哪种方法,删除数据时都要慎重,一旦误删,想要恢复数据就会变得十分困难。

二、DELETE 语句的基本语法

DELETE 语句的基本语法如下所示,十分简单。

语法 2 保留数据表,仅删除全部数据行的 DELETE 语句

DELETE FROM <表名>;

执行使用该基本语法的 DELETE 语句,就可以删除指定的表中的全部数据行了。因此,想要删除 Product 表中全部数据行,就可以参照代码清单 13 来书写 DELETE 语句。

代码清单 13 清空 Product 表

DELETE FROM Product;

如果语句中忘了写 FROM,而是写成了“DELETE <表名>”,或者写了多余的列名,都会出错,无法正常执行,请大家特别注意。

前者无法正常执行的原因是删除对象不是表,而是表中的数据行(记录)。这样想的话就很容易理解了吧 [1]

后者错误的原因也是如此。因为 DELETE 语句的对象是行而不是列,所以 DELETE 语句无法只删除部分列的数据。因此,在 DELETE 语句中指定列名是错误的。当然,使用星号的写法(DELETE * FROM Product ;)也是不对的,同样会出错。

法则 4

DELETE 语句的删除对象并不是表或者列,而是记录(行)。

三、指定删除对象的 DELETE 语句(搜索型 DELETE

想要删除部分数据行时,可以像 SELECT 语句那样使用 WHERE 子句指定删除条件。这种指定了删除对象的 DELETE 语句称为搜索型 DELETE [2]

KEYWORD

  • 搜索型 DELETE

搜索型 DELETE 的语法如下所示。

语法 3 删除部分数据行的搜索型 DELETE

DELETE FROM <表名>
 WHERE <条件>;

下面让我们以 Product(商品)表为例,来具体研究一下如何进行数据删除(表 1)。

表 1 Product

product_id
(商品编号)
product_name
(商品名称)
product_type
(商品种类)
sale_price
(销售单价)
purchase_price
(进货单价)
reGISt_date
(登记日期)
0001 T 恤衫 衣服 1000 500 2009-09-20
0002 打孔器 办公用品 500 320 2009-09-11
0003 运动 T 恤 衣服 4000 2800
0004 菜刀 厨房用具 3000 2800 2009-09-20
0005 高压锅 厨房用具 6800 5000 2009-01-15
0006 叉子 厨房用具 500 2009-09-20
0007 擦菜板 厨房用具 880 790 2008-04-28
0008 圆珠笔 办公用品 100 2009-11-11

假设我们要删除销售单价(sale_price)大于等于 4000 日元的数据(代码清单 14)。上述表中满足该条件的是“运动 T 恤”和“高压锅”。

代码清单 14 删除销售单价(sale_price)大于等于 4000 日元的数据

DELETE FROM Product
 WHERE sale_price >= 4000;

WHERE 子句的书写方式与此前介绍的 SELECT 语句完全一样。

通过使用 SELECT 语句确认,表中的数据被删除了 2 行,只剩下 6 行。

-- 确认删除后的结果
SELECT * FROM Product;

执行结果

product_id | product_name | product_type | sale_price | purchase_price | regist_date
-----------+--------------+--------------+------------+----------------+-----------
 0001      | T恤衫        | 衣服         |        1000 |             500 | 2009-09-20
 0002      | 打孔器       | 办公用品     |         500 |             320 | 2009-09-11
 0004      | 菜刀         | 厨房用具     |        3000 |            2800 | 2009-09-20
 0006      | 叉子         | 厨房用具     |         500 |                 | 2009-09-20
 0007      | 擦菜板       | 厨房用具     |         880 |             790 | 2008-04-28
 0008      | 圆珠笔       | 办公用品     |         100 |                 | 2009-11-11

法则 5

可以通过 WHERE 子句指定对象条件来删除部分数据。

SELECT 语句不同的是,DELETE 语句中不能使用 GROUP BYHAVINGORDER BY 三类子句,而只能使用 WHERE 子句。原因很简单, GROUP BYHAVING 是从表中选取数据时用来改变抽取数据形式的,而 ORDER BY 是用来指定取得结果显示顺序的。因此,在删除表中数据时它们都起不到什么作用。

专栏

删除和舍弃

标准 sql 中用来从表中删除数据的只有 DELETE 语句。但是,很多数据库产品中还存在另外一种被称为 TRUNCATE 的语句。这些产品主要包括 oracleSQL ServerpostgresqlMysql 和 DB2。

KEYWORD

  • TRUNCATE 语句

TRUNCATE 是舍弃的意思,具体的使用方法如下所示。

语法 A 只能删除表中全部数据的 TRUNCATE 语句

TRUNCATE <表名>;

DELETE 不同的是,TRUNCATE 只能删除表中的全部数据,而不能通过 WHERE 子句指定条件来删除部分数据。也正是因为它不能具体地控制删除对象,所以其处理速度比 DELETE 要快得多。实际上,DELETE 语句在 DML 语句中也属于处理时间比较长的,因此需要删除全部数据行时,使用 TRUNCATE 可以缩短执行时间。

但是,产品不同需要注意的地方也不尽相同。例如在 Oracle 中,把 TRUNCATE 定义为 DDL,而不是 DML [3]。使用 TRUNCATE 时,请大家仔细阅读使用手册,多加注意。便利的工具往往还是会存在一些不足之处的。

请参阅

  • 数据的插入
  • 数据的删除
  • 数据的更新
  • 事务

(完)


  1. INSERT 语句相同,数据的更新也是以记录为基本单位进行的。下一篇将要学习的 UPDATE 语句 也是如此。 ↩︎

  2. 虽然“搜索型 DELETE”是正式用语,但实际上这种说法并不常用,而是简单地称为 DELETE 语句。 ↩︎

  3. 因此,Oracle 中的 TRUNCATE 不能使用 ROLLBACK。执行 TRUNCATE 的同时会默认执行 COMMIT 操作。 ↩︎

您可能感兴趣的文档:

--结束END--

本文标题: SQL 数据的删除(DELETE 语句的使用方法)

本文链接: https://www.lsjlt.com/news/8917.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL 数据的删除(DELETE 语句的使用方法)
    目录一、DROP TABLE 语句和 DELETE 语句二、DELETE 语句的基本语法三、指定删除对象的 DELETE 语句(搜索型 DELETE)请参阅 学习重点 如果想将整个表全部删除,可以使用 DROP TABLE 语句,如...
    99+
    2019-03-30
    SQL 数据的删除(DELETE 语句的使用方法)
  • MySQL 中delete删除sql语句用法
    mysql如何要删除一个一行或者多行,用sql语句delete关键词,固定用法 delete from 表名。 1,delete删除一行 delete fro...
    99+
    2022-10-18
  • SQL语句中删除表数据drop、truncate和delete的用法
    一、SQL中的语法 1、drop table 表名称 eg: drop table dbo.Sys_Test 2、truncate table 表名称 eg: truncate table dbo.Sys_Test ...
    99+
    2023-08-31
    sql 数据库 sqlserver mysql Powered by 金山文档
  • 如何使用delete语句删除数据
    这篇文章主要介绍如何使用delete语句删除数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!怎么使用delete语句删除数据?创建一个临时表,用于演示sqlserver语...
    99+
    2022-10-18
  • 数据库删除语句delete的作用是什么
    小编给大家分享一下数据库删除语句delete的作用是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数据库删除语句d...
    99+
    2022-10-18
  • 使用T-SQL语句操作数据表-删除数据
    1.使用 delete 语句删除表中的数据:语法:delete from <表名> [where <删除条件>]delete 是删除的意思 ...
    99+
    2022-10-18
  • SQL删除多列语句的写法
    最近在写SQL过程中发现需要对一张表结构作调整(此处是SQL Server),其中需要删除多列,由于之前都是一条SQL语句删除一列,于是猜想是否可以一条语句同时删除多列,如果可以,怎么写法? 第一次猜想如下...
    99+
    2022-10-18
  • SQL DELETE语句的用法有哪些
    SQL DELETE语句用于从数据库表中删除一行或多行数据。DELETE语句的用法如下:1. 删除整个表中的所有数据:```...
    99+
    2023-10-11
    SQL
  • 创建数据库与删除数据库的sql语句
    这篇文章主要介绍“创建数据库与删除数据库的sql语句”,在日常操作中,相信很多人在创建数据库与删除数据库的sql语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”创建数据库与...
    99+
    2022-10-18
  • 使用T-SQL语句插入、更新、删除数据表
        在对数据进行管理时,使用SSMS进行数据维护有可视化、方便的优点,但是在批量维护或重复维护时,使用SSMS就不方便了,还容易出错,这就需要编写SQL语句对数据库进行维护SQL和T...
    99+
    2022-10-18
  • sql删除数据的3种方法
    一、delete删除数据 delete from 表名 where codition 这行代码可以删除记录表中的记录,但是并不能释放数据库中被占用的数据块表空间(删除表数据,保留表结构,可以加where)。...
    99+
    2023-09-01
    mysql Powered by 金山文档
  • SQL删除重复数据的方法
    这篇文章将为大家详细讲解有关SQL删除重复数据的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在sql中,可以使用select语句删除重复数据,语法为:“s...
    99+
    2022-10-18
  • 数据库中删除字段的sql语句怎么写
    这篇文章给大家分享的是有关数据库中删除字段的sql语句怎么写的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。删除字段的sql语句是“ALTER TABLE”,具体语法格式为“ALT...
    99+
    2022-10-18
  • SQL 数据的插入(INSERT 语句的使用方法)
    目录一、什么是 INSERT二、INSERT 语句的基本语法三、列清单的省略四、插入 NULL五、插入默认值六、从其他表中复制数据请参阅 学习重点 使用 INSERT 语句可以向表中插入数据(行)。原则上,INSERT 语句每次执行...
    99+
    2020-12-13
    SQL 数据的插入(INSERT 语句的使用方法)
  • SQL 数据的更新(UPDATE 语句的使用方法)
    目录一、UPDATE 语句的基本语法二、指定条件的 UPDATE 语句(搜索型 UPDATE)三、使用 NULL 进行更新四、多列更新请参阅 学习重点 使用 UPDATE 语句可以更改(更新)表中的数据。 更新部分数据行时可以使...
    99+
    2017-08-23
    SQL 数据的更新(UPDATE 语句的使用方法)
  • SQL语句中的数据删除和更新是怎样的
    SQL语句中的数据删除和更新是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.删除1)删除记录 Delete from ...
    99+
    2022-10-19
  • sql语句修改数据的方法
    这篇文章主要介绍了sql语句修改数据的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sql语句修改数据SQL 中,可以使用 UPDAT&...
    99+
    2022-10-18
  • 如何使用SQL语句在MySQL中更新和删除数据?
    如何使用SQL语句在MySQL中更新和删除数据?在MySQL数据库中,更新和删除数据是非常常见的操作。通过使用SQL语句,我们可以方便地更新和删除表中的数据。本文将介绍如何使用SQL语句在MySQL中更新和删除数据,并提供具体的代码示例。更...
    99+
    2023-12-17
    MySQL SQL语句 更新删除数据
  • 数据库中删除表字段的sql语句有哪些
    小编给大家分享一下数据库中删除表字段的sql语句有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!删除表字段的sql语句有哪些...
    99+
    2022-10-18
  • MySQL两种删除用户语句的区别(delete user和drop user)
    Tip: 在MySQL中,我们经常需要创建用户和删除用户,创建用户时,我们一般使用create user或者grant语句来创建,create语法创建的用户没有任何权限,需要再使用grant语法来分配权限,而gran...
    99+
    2022-05-25
    MySQL 删除用户语句 MySQL delete user MySQL drop user
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作