目录

  1. DELETE 语句的基本语法
  2. 删除单条记录
  3. 删除多条记录
  4. 使用 WHERE 限制删除的记录
  5. 删除所有记录
  6. 使用 JOIN 进行删除
  7. 使用 LIMIT 限制删除的条数
  8. 参考资料

DELETE 语句的基本语法

DELETE 语句用于从表中删除记录。它通常与 WHERE 子句一起使用,以限制删除操作只影响符合特定条件的记录。如果没有指定 WHERE 子句,表中的所有记录将被删除。

基本语法:

DELETE FROM table_name
WHERE condition;

  • table_name: 要删除记录的表的名称。
  • condition: 限制删除哪些记录的条件。如果没有 WHERE 子句,所有记录将被删除。

删除单条记录

删除单条记录时,通常会使用唯一标识符(如 ID)来定位该记录。

示例:删除 username 为 ‘alice’ 的用户

DELETE FROM users
WHERE username = 'alice';

此语句将删除 users 表中 username 为 ‘alice’ 的记录。


删除多条记录

DELETE 语句也可以用来删除符合特定条件的多条记录。确保在使用 WHERE 子句时提供足够的条件,以避免删除不应删除的数据。

示例:删除所有状态为 ‘inactive’ 的用户

DELETE FROM users
WHERE status = 'inactive';

此语句将删除所有 status 为 ‘inactive’ 的用户记录。


使用 WHERE 限制删除的记录

WHERE 子句非常重要,因为它确保只删除符合特定条件的记录。如果没有 WHERE 子句,表中的所有记录将被删除。

示例:删除 age 大于 50 的用户

DELETE FROM users
WHERE age > 50;

此语句将删除 users 表中 age 大于 50 的所有用户记录。


删除所有记录

如果想要删除表中的所有记录,可以使用 DELETE 语句而不带 WHERE 子句。然而,表的结构和列将保留,只是数据会被删除。

示例:删除 users 表中的所有记录

DELETE FROM users;

此语句将删除 users 表中的所有记录,但不会删除表结构。


使用 JOIN 进行删除

你可以结合 JOIN 子句来删除涉及多个表的数据。常见的情况是根据关联表中的数据来删除主表中的记录。

示例:根据订单记录删除用户数据

DELETE users
FROM users
JOIN orders ON users.id = orders.user_id
WHERE orders.status = 'cancelled';

此语句将删除 users 表中所有与 orders 表中的 status 为 ‘cancelled’ 相关联的用户。


使用 LIMIT 限制删除的条数

LIMIT 子句可以用来限制删除的记录数。非常适用于需要删除前 N 条记录的情况。

示例:删除 users 表中的前 5 条记录

DELETE FROM users
LIMIT 5;

此语句将删除 users 表中的前 5 条记录。

注意LIMIT 子句不能与 ORDER BY 一起使用时保证顺序删除记录,因此在删除大量数据时要小心使用。


参考资料


如果你有更多问题或需要进一步讨论 DELETE 语句的应用,随时告诉我!