加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 (https://www.pinziwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL删除表数据

发布时间:2022-10-24 11:24:44 所属栏目:MySql教程 来源:
导读:  在本教程中,您将学习如何使用MySQL DELETE语句从单个表中删除数据。

  1. MySQL DELETE语句介绍

  要从表中删除数据,请使用MySQL DELETE语句。下面说明了DELETE语句的语法:

  DELETE FROM
  在本教程中,您将学习如何使用MySQL DELETE语句从单个表中删除数据。
 
  1. MySQL DELETE语句介绍
 
  要从表中删除数据,请使用MySQL DELETE语句。下面说明了DELETE语句的语法:
 
  DELETE FROM table_name
  WHERE condition;
  SQL
  在上面查询语句中 -
 
  请注意,WHERE子句是可选的。如果省略WHERE子句,DELETE语句将删除表中的所有行。
 
  除了从表中删除数据外,DELETE语句返回删除的行数。
 
  要使用单个DELETE语句从多个表中删除数据,请阅读下一个教程中将介绍的DELETE JOIN语句。
 
  要删除表中的所有行,而不需要知道删除了多少行,那么应该使用TRUNCATE TABLE语句来获得更好的执行性能。
 
  对于具有外键约束的表,当从父表中删除行记录时,子表中的行记录将通过使用ON DELETE CASCADE选项自动删除。
 
  2. MySQL DELETE的例子
 
  我们将使用示例数据库(yiibaidb)中的employees表进行演示。
 
  +-------------+--------------+------+-----+---------+----------------+
  | Field | Type | Null | Key | Default | Extra |
  +-------------+--------------+------+-----+---------+----------------+
  | emp_id | int(11) | NO | PRI | NULL | auto_increment |
  | emp_name | varchar(255) | NO | | NULL | |
  | performance | int(11) | YES | MUL | NULL | |
  | salary | float | YES | | NULL | |
  +-------------+--------------+------+-----+---------+----------------+
  4 rows in set
  SQL
  请注意,一旦删除数据,它就会永远消失。 因此,在执行DELETE语句之前,应该先备份数据库,以防万一要找回删除过的数据。
 
  假设要删除officeNumber为4的员工,则使用DELETE语句与WHERE子句作为以下查询:
 
  DELETE FROM employees
  WHERE
   officeCode = 4;
  SQL
  要删除employees表中的所有行,请使用不带WHERE子句的DELETE语句,如下所示:
 
  DELETE FROM employees;
  SQL
  在执行上面查询语句后,employees表中的所有行都被删除。
 
  MySQL DELETE和LIMIT子句
 
  如果要限制要删除的行数,则使用LIMIT子句,如下所示:
 
  DELETE FROM table
  LIMIT row_count;
  SQL
  请注意,表中的行顺序未指定,因此,当您使用LIMIT子句时,应始终使用ORDER BY子句,不然删除的记录可能不是你所预期的那样。
 
  DELETE FROM table_name
  ORDER BY c1, c2, ...
  LIMIT row_count;
  SQL
  考虑在示例数据库(yiibaidb)中的customers表,其表结构如下:
 
  mysql> desc customers;
  +------------------------+---------------+------+-----+---------+-------+
  | Field | Type | Null | Key | Default | Extra |
  +------------------------+---------------+------+-----+---------+-------+
  | customerNumber | int(11) | NO | PRI | NULL | |
  | customerName | varchar(50) | NO | | NULL | |
  | contactLastName | varchar(50) | NO | | NULL | |
  | contactFirstName | varchar(50) | NO | | NULL | |
  | phone | varchar(50) | NO | | NULL | |
  | addressLine1 | varchar(50) | NO | | NULL | |
  | addressLine2 | varchar(50) | YES | | NULL | |
  | city | varchar(50) | NO | | NULL | |
  | state | varchar(50) | YES | | NULL | |
  | postalCode | varchar(15) | YES | | NULL | |
  | country | varchar(50) | NO | | NULL | |
  | salesRepEmployeeNumber | int(11) | YES | MUL | NULL | |
  | creditLimit | decimal(10,2) | YES | | NULL | |
  +------------------------+---------------+------+-----+---------+-------+
  13 rows in set
  SQL
  例如,以下语句按客户名称按字母排序客户mysql删除表,并删除前10个客户:
 
  DELETE FROM customers
  ORDER BY customerName
  LIMIT 10;
  SQL
  类似地,以下DELETE语句选择法国(France)的客户,按升序按信用额度(creditLimit)进行排序,并删除前5个客户:
 
  DELETE FROM customers
  WHERE country = 'France'
  ORDER BY creditLimit
  LIMIT 5;
  SQL
  类似地,以下DELETE语句选择法国(France)的客户,按升序按信用额度(creditLimit)进行排序,并删除前5个客户:
 
  DELETE FROM customers
  WHERE country = 'France'
  ORDER BY creditLimit
  LIMIT 5;
  SQL
  在本教程中,您已经学会了如何使用MySQL DELETE语句从表中删除数据。
 

(编辑:拼字网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!