mysql数据库教程-MySQL删除表数据

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

在本教程中,您将学习如何使用MySQL DELETE语句从单个表中删除数据。

1. MySQL DELETE语句介绍

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

DELETE FROM table_name WHERE condition; 

在上面查询语句中 –

  • 首先,指定删除数据的表(table_name)。
  • 其次,使用条件来指定要在WHERE子句中删除的行记录。如果行匹配条件,这些行记录将被删除。

除了从表中删除数据外,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 

假设要删除officeNumber4的员工,则使用DELETE语句与WHERE子句作为以下查询:

DELETE FROM employees  WHERE     officeCode = 4; 

要删除employees表中的所有行,请使用不带WHERE子句的DELETE语句,如下所示:

DELETE FROM employees; 

在执行上面查询语句后,employees表中的所有行都被删除。

MySQL DELETE和LIMIT子句

如果要限制要删除的行数,则使用LIMIT子句,如下所示:

DELETE FROM table LIMIT row_count; 

请注意,表中的行顺序未指定,因此,当您使用LIMIT子句时,应始终使用ORDER BY子句,不然删除的记录可能不是你所预期的那样。

DELETE FROM table_name ORDER BY c1, c2, ... LIMIT row_count; 

考虑在示例数据库(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 

例如,以下语句按客户名称按字母排序客户,并删除前10个客户:

DELETE FROM customers ORDER BY customerName LIMIT 10; 

类似地,以下DELETE语句选择法国(France)的客户,按升序按信用额度(creditLimit)进行排序,并删除前5个客户:

DELETE FROM customers WHERE country = 'France' ORDER BY creditLimit LIMIT 5; 

类似地,以下DELETE语句选择法国(France)的客户,按升序按信用额度(creditLimit)进行排序,并删除前5个客户:

DELETE FROM customers WHERE country = 'France' ORDER BY creditLimit LIMIT 5; 

在本教程中,您已经学会了如何使用MySQL DELETE语句从表中删除数据。

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 mysql数据库教程/a> 只为你绽放。

本文固定链接: http://kua0.com/2019/04/29/mysql数据库教程-mysql删除表数据/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注