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


    SQL DELETE 语句

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

    DELETE 语法

    DELETE FROM 表名 WHERE 条件;
    
    • 1

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

    演示数据库

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

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    SQL DELETE 示例

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

    DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
    
    • 1

    此时,“Customers” 表将如下所示:

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    删除所有记录

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

    DELETE FROM 表名;
    
    • 1

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

    DELETE FROM Customers;
    
    • 1

    删除表

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

    删除 Customers 表:
    
    DROP TABLE Customers;
    
    • 1
    • 2
    • 3

    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;
    
    • 1
    • 2
    • 3

    MySQL 语法

    SELECT column_name(s)
    FROM table_name
    WHERE condition
    LIMIT number;
    
    • 1
    • 2
    • 3
    • 4

    Oracle 12 语法

    SELECT column_name(s)
    FROM table_name
    ORDER BY column_name(s)
    FETCH FIRST number ROWS ONLY;
    
    • 1
    • 2
    • 3
    • 4

    旧版 Oracle 语法

    SELECT column_name(s)
    FROM table_name
    WHERE ROWNUM <= number;
    
    • 1
    • 2
    • 3

    带有 ORDER BY 的旧版 Oracle 语法

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

    演示数据库

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

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    示例

    使用 SQL Server / MS Access 的 SELECT TOP

    选择 “Customers” 表的前 3 条记录:

    SELECT TOP 3 * FROM Customers;
    
    • 1

    使用 MySQL 的 LIMIT

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

    选择 “Customers” 表的前 3 条记录:

    SELECT * FROM Customers
    LIMIT 3;
    
    • 1
    • 2

    使用 Oracle 12 的 FETCH FIRST

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

    选择 “Customers” 表的前 3 条记录:

    SELECT * FROM Customers
    FETCH FIRST 3 ROWS ONLY;
    
    • 1
    • 2

    使用旧版 Oracle 的 ROWNUM

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

    选择 “Customers” 表的前 3 条记录:

    SELECT * FROM Customers
    WHERE ROWNUM <= 3;
    
    • 1
    • 2

    添加 WHERE 子句

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

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

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

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

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

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

    添加 ORDER BY 关键字

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

    对于 SQL Server 和 MS Access:

    按 CustomerName 字母降序排序结果,并返回前 3 条记录:
    
    SELECT TOP 3 * FROM Customers
    ORDER BY CustomerName DESC;
    
    • 1
    • 2
    • 3
    • 4

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

    SELECT * FROM Customers
    ORDER BY CustomerName DESC
    LIMIT 3;
    
    • 1
    • 2
    • 3

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

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

    最后

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

    看完如果觉得有帮助,欢迎点赞、收藏关注
    在这里插入图片描述

  • 相关阅读:
    2023.11.10联测总结
    指针进阶(2)
    【html】利用生成器函数和video元素,取出指定时间的视频画面
    第五章 输入/输出(I/O)管理
    Hadoop大数据应用:HDFS 集群节点扩容
    深入了解 Layer3:Web3「用途」的下一叙事?
    SQL风格语法(主要)_大数据培训
    x程无忧sign逆向分析
    Linux进程总结详解(上——初识)
    第六章:java ==与equals
  • 原文地址:https://blog.csdn.net/2302_76489021/article/details/134541793