SQL DELETE 语句

SQL DELETE 语句用于删除表中的现有记录。

DELETE 语法

DELETE FROM 表名 WHERE 条件;

注意:在删除表中的记录时要小心!请注意DELETE语句中的WHERE子句。WHERE子句指定应删除哪些记录。如果省略WHERE子句,将会删除表中的所有记录!

演示数据库

以下是示例中使用的 Customers 表的一部分:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

SQL DELETE 示例

以下 SQL 语句从 "Customers" 表中删除客户 "Alfreds Futterkiste":

DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';

此时,"Customers" 表将如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

删除所有记录

可以在不删除表的情况下删除表中的所有行。这意味着表结构、属性和索引将保持不变:

DELETE FROM 表名;

以下 SQL 语句将删除 "Customers" 表中的所有行,而不删除表:

DELETE FROM Customers;

删除表

要完全删除表,请使用DROP TABLE语句:

删除 Customers 表:

DROP TABLE Customers;

SQL TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句

SQL SELECT TOP 子句用于指定要返回的记录数。

SQL SELECT TOP 子句

SQL Server / MS Access 语法

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL 语法

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 12 语法

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

旧版 Oracle 语法

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

带有 ORDER BY 的旧版 Oracle 语法

SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number;

演示数据库

以下是示例中使用的 Customers 表的一部分:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

示例

使用 SQL Server / MS Access 的 SELECT TOP

选择 "Customers" 表的前 3 条记录:

SELECT TOP 3 * FROM Customers;

使用 MySQL 的 LIMIT

以下 SQL 语句展示了 MySQL 的等效示例:

选择 "Customers" 表的前 3 条记录:

SELECT * FROM Customers
LIMIT 3;

使用 Oracle 12 的 FETCH FIRST

以下 SQL 语句展示了 Oracle 的等效示例:

选择 "Customers" 表的前 3 条记录:

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

使用旧版 Oracle 的 ROWNUM

以下 SQL 语句展示了旧版 Oracle 的等效示例:

选择 "Customers" 表的前 3 条记录:

SELECT * FROM Customers
WHERE ROWNUM <= 3;

添加 WHERE 子句

以下 SQL 语句从 "Customers" 表中选择前三条记录,其中国家是 "Germany"(对于 SQL Server/MS Access):

SELECT TOP 3 * FROM Customers
WHERE Country='Germany';

以下 SQL 语句展示了 MySQL 的等效示例:

SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;

以下 SQL 语句展示了 Oracle 的等效示例:

SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;

添加 ORDER BY 关键字

在要对结果进行排序并返回排序后结果的前 3 条记录时,添加 ORDER BY 关键字。

对于 SQL Server 和 MS Access:

按 CustomerName 字母降序排序结果,并返回前 3 条记录:

SELECT TOP 3 * FROM Customers
ORDER BY CustomerName DESC;

以下 SQL 语句展示了 MySQL 的等效示例:

SELECT * FROM Customers
ORDER BY CustomerName DESC
LIMIT 3;

以下 SQL 语句展示了 Oracle 的等效示例:

SELECT * FROM Customers
ORDER BY CustomerName DESC
FETCH FIRST 3 ROWS ONLY;

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用的更多相关文章

  1. sql记录去重(SQL查询或者删除表中重复记录)

    .查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select*from people where peopleIdin (select peopleIdfrom peopl ...

  2. mysql 删除表中记录

    一.清除mysql表中数据 delete from 表名;truncate table 表名;不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以 ...

  3. Oracle 删除表中记录 如何释放表及表空间大小

    1.查看一个表所占的空间大小:SELECT bytes/1024/1024 ||'MB' TABLE_SIZE ,u.* FROM USER_SEGMENTS U WHERE U.SEGMENT_NA ...

  4. SQL语句删除表中的字段只留下最新一行

    方法一 DELETE FROM A WHERE `name` in ( SELECT a.name FROM( SELECT name FROM A a GROUP BY name HAVING CO ...

  5. ORACLE数据库删除表中记录报record is locked by another user

    在操作ORACLE数据库的时候,由于执行完,没有COMMIT,直接把PL/SQL关闭掉,后来导致那张表被锁住,当编辑时就会出现这个信息,record is locked by another user ...

  6. SQL Server删除表及删除表中数据的方法

    删除表的T-SQL语句为: drop table <表名> drop是丢弃的意思,drop table表示将一个表彻底删除掉. 删除表数据有两种方法:delete和truncate. de ...

  7. SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...

  8. SQL语句 删除表user 中字段name 内容重复的记录,

    public class T01 { public static void main(String[] args) { int j=4; j=j+=j-=j*=j; System.out.printl ...

  9. sql server 中删除表中数据truncate和delete的区别(转载自.net学习网)

    我们都知道truncate table可以用来删除整个表的内容,它与delete后面不跟where条件的效果是一样.但除此之外,我们还清楚它们之间有其它的区别吗?本章我们将一起讨论truncate与d ...

  10. 查询和删除表中重复数据sql语句

      1.查询表中重复数据.select * from peoplewhere peopleId in (select   peopleId   from   people   group   by   ...

随机推荐

  1. 【LeetCode双指针】合并两个有序数组,从后向前遍历

    合并两个有序数组 https://leetcode.cn/problems/merge-sorted-array/ 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m ...

  2. 04、Etcd中常见的概念

    本篇内容主要来源于自己学习的视频,如有侵权,请联系删除,谢谢. 上一章节,我们学习了 Etcdctl 的使用,从中窥探了 Etcd 的强大之处.从这一节开始,后面的内容基本上都是偏理论的东西,争取在看 ...

  3. ABP的版本升级,从7.2.2升级到7.2.3

    1.升级ABP CLI 见前面的文章:ABP开发需要用到的命令 更新最新版本: ~~~ dotnet tool update -g Volo.Abp.Cli ~~~ 2.升级ABP Suite 见前面 ...

  4. 【Azure Function App】在ADF(Azure Data Factory)中调用 Azure Function 时候遇见 Failed to get MI access token

    问题描述 在ADF(Azure Data Factory)中,调用Azure Function App中的Function,遇见了 Failed to get MI access token Ther ...

  5. .Net 5.0 程序在 Linux 环境访问 SqlServer 2008R2 莫名报错:Connection reset by peer

    〇.问题详情 同样的代码,在 Windows 上运行的好好的,拿到 CentOS 7 上运行就出现如下报错: [ex.message]:A connection was successfully es ...

  6. 内存缓存 Gcache VS Caffeine源码详解

    转一篇.后续再尝试自己实践一下

  7. 使用PdfSharp从模板生成Pdf文件

    ​ 最近在做一个生成文档的需求.通过先制作一个包含各字段占位符的文档模板,导入这个模板并填写内容替换掉占位符,再输出成最终文件. 由于版式固定,安全性更好,业务上常用Pdf作为最终标准化的格式, 在. ...

  8. 学习笔记-涛讲F#(中级)

    目录 适配器模式 责任链模式 命令模式 策略模式 工厂模式 单例模式 其它内容 这一系列的视频主要讲了F#设计模式的实现,没有太多其它内容,笔记内容主要是转载Snippets tagged desig ...

  9. 基于AmbiqMicro-AMA3B2KK-KBR的可穿戴智能手环解决方案之心率测量源码解析

    一 前记 梳理该可穿戴产品的手环,产品,是一种成长.也是一个总结. 二 源码解析 1 初始化:这里主要初始化心率的检测间隔时间和心率值的位数. /* initialize heart rate pro ...

  10. springMVC+JDBC:分页示例

    文章来源:http://liuzidong.iteye.com/blog/1067492 一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5 二 工程相关图片: ...