delete语法

ads
MySQL DELETE 语句用于从表中删除不再需要的记录。此查询从表中删除指定行并生成删除行数。我们可以在单个查询中删除多个记录,通过使用 delete 语句,我们还可以设定条件删除数据。
一旦我们使用这个查询删除了记录,数据将无法恢复。因此,在从表中删除任何记录之前,建议创建数据库的备份。数据库备份允许我们在将来需要时恢复数据。

语法格式

以下是 DELETE 语句删除数据的通用语法:
DELETE FROM table_name
[WHERE Clause]
上面的语句中,我们必须首先指定表名。其次,我们必须在WHERE子句中指定删除记录的条件,这是可选的。如果在语句中省略WHERE子句,该查询将从数据库表中删除整个记录。
如果要使用单个delete查询从多个表中删除记录,则必须使用delete语句添加JOIN子句。
如果希望在不知道已删除行数的情况下删除表中的所有记录,则必须使用提供更好性能的TRUNCATE table语句。

用命令行删除数据

这里我们将在 SQL DELETE 命令中使用 WHERE 子句来删除 MySQL 数据表 runoon_tbl 所选的数据。

DELETE 语句

以下实例将删除 runoon_tbl 表中 runoon_id 为3 的记录:
mysql> use RUNOON;
Database changed

mysql> DELETE FROM runoon_tbl WHERE runoon_id=3;
Query OK, 1 row affected (0.23 sec)

LIMIT 子句

Limit 子句用于限制从结果集中返回的行数,而不是获取表中的全部记录。有时我们想限制要从表中删除的行数;在这种情况下,我们可以使用LIMIT子句如下:
DELETE FROM table_name
WHERE condition
ORDER BY colm1, colm2, …
LIMIT row_count;
以下查询首先根据 runoon_title 的字母顺序对数据进行排序,然后从表中删除前三条记录:
mysql> DELETE FROM runoon_tbl ORDER BY runoon_title LIMIT 3;

 JOIN 子句

JOIN 子句用于添加两个或多个表。每当我们想从单个查询中的多个表中删除记录时,我们将使用 DELETE 语句的 JOIN 子句。请参考以下查询:
mysql> DELETE Employees, Payment FROM Employees
INNER JOIN Payment
ON Employees.emp_id = Payment.emp_id
WHERE Employees.emp_id = 102;


使用 PHP 脚本删除数据

PHP使用 mysqli_query() 函数来执行SQL语句, 你可以在 SQL DELETE 命令中使用或不使用 WHERE 子句。
该函数与 mysql> 命令符执行SQL命令的效果是一样的。

MySQL DELETE 语句测试

以下PHP实例将删除 runoon_tbl 表中 runoon_id 为 3 的记录:
<?php
$dbhost = 'localhost'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");

$sql = 'DELETE FROM runoon_tbl
WHERE runoon_id=3'
;

mysqli_select_db( $conn, 'RUNOON' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法删除数据: ' . mysqli_error($conn));
}
echo '数据删除成功!';
mysqli_close($conn);
?>
执行前数据查询结果:
mysql> SELECT * FROM runoon_tbl WHERE runoon_id=3;
+-----------+---------------+---------------+-----------------+
| runoon_id | runoon_title | runoon_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3 | 学习 Python | RUNOON.COM | 2016-05-06 |
+-----------+---------------+---------------+-----------------+
1 row in set (0.00 sec)
执行后数据查询结果:
mysql> SELECT * FROM runoon_tbl WHERE runoon_id=3;
Empty set (0.00 sec)

长按二维码,查阅更多教程

最后编辑于:2024/1/7 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com