写点什么

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

作者:小万哥
  • 2023-11-21
    广东
  • 本文字数:1455 字

    阅读完需:约 5 分钟

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

SQL DELETE 语句

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

DELETE 语法

DELETE FROM 表名 WHERE 条件;
复制代码


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

演示数据库

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


SQL DELETE 示例

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


DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
复制代码


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


删除所有记录

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


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_nameWHERE condition;
复制代码


MySQL 语法


SELECT column_name(s)FROM table_nameWHERE conditionLIMIT number;
复制代码


Oracle 12 语法


SELECT column_name(s)FROM table_nameORDER BY column_name(s)FETCH FIRST number ROWS ONLY;
复制代码


旧版 Oracle 语法


SELECT column_name(s)FROM table_nameWHERE ROWNUM <= number;
复制代码


带有 ORDER BY 的旧版 Oracle 语法


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

演示数据库

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


示例

使用 SQL Server / MS Access 的 SELECT TOP

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


SELECT TOP 3 * FROM Customers;
复制代码

使用 MySQL 的 LIMIT

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


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


SELECT * FROM CustomersLIMIT 3;
复制代码

使用 Oracle 12 的 FETCH FIRST

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


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


SELECT * FROM CustomersFETCH FIRST 3 ROWS ONLY;
复制代码

使用旧版 Oracle 的 ROWNUM

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


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


SELECT * FROM CustomersWHERE ROWNUM <= 3;
复制代码

添加 WHERE 子句

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


SELECT TOP 3 * FROM CustomersWHERE Country='Germany';
复制代码


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


SELECT * FROM CustomersWHERE Country='Germany'LIMIT 3;
复制代码


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


SELECT * FROM CustomersWHERE Country='Germany'FETCH FIRST 3 ROWS ONLY;
复制代码

添加 ORDER BY 关键字

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


对于 SQL Server 和 MS Access:


按 CustomerName 字母降序排序结果,并返回前 3 条记录:
SELECT TOP 3 * FROM CustomersORDER BY CustomerName DESC;
复制代码


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


SELECT * FROM CustomersORDER BY CustomerName DESCLIMIT 3;
复制代码


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


SELECT * FROM CustomersORDER BY CustomerName DESCFETCH FIRST 3 ROWS ONLY;
复制代码

最后

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


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



发布于: 刚刚阅读数: 4
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用_MySQL_小万哥_InfoQ写作社区