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下列的❀子句作为查询: DELETEDELETE
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前端网发表,如需转载,请注明页面地址。
code前端网

