MySQL学习入门教程:DELETE语句从单个表中删除数据
了解如何使用MySQLDELETE
语句从单个表中删除数据。
1。 MySQL DELETE 语句简介
要从表中删除数据,请使用 MySQL DELETE
语句。 DELETE
指令的语法解释如下:
DELETE FROM table_name
WHERE condition;
SQL在上面的查询指令中-
- 首先进入需要删除数据的表(♶表)。
- 其次,在
WHERE
子句中,使用条件指定要删除的行记录。如果行满足条件,则删除这些行记录。
请注意,WHERE
子句是可选的。如果省略子句 WHERE
,则命令 DELETE
将删除表中的所有行。
除了从表中删除数据之外,命令DELETE
还返回已删除的行数。
如果您想从多个表中删除单个 DELETE
语句,请阅读以下教程中 中将 对 DELETE JOIN 语句的介绍。
如果您想删除表中的所有行而不知道删除了多少行,则应使用 TRUNCATE TABLE 语句以获得更好的执行性能。
对于有外键约束的表,当您从父表中删除行记录时,使用 DELETE CASCADE ON 选项会自动删除子表中的行记录。
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
语句之前,请先对数据库进行备份,以备恢复删除的数据之用。
假设您要删除办公室号码为办公室号码
4
的员工,则使用DELETE
下列的❀子句作为查询: DELETE
DELETE
DELETE FROM employees
WHERE
officeCode = 4;
SQL要删除 employees
表的所有行,请使用 DELETE
命令如下。 执行上述查询指令后,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
按 customername 对客户的以下语句按字母♷❝ 进行排序,然后删除之前的10
客户:DELETE FROM customers
ORDER BY customerName
LIMIT 10;
SQL同样,以下DELETE
语句选择法国客户(根据F❓信用额度♿F❓❓❓ ( † 法国)客户,按信用额度(creditLimit
)升序排序,并删除第一个5
客户:
DELETE FROM customers
WHERE country = 'France'
ORDER BY creditLimit
LIMIT 5;
SQL在本教程中,您学习了如何使用MySQLTE❙语句从表中删除数据。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。