HOWTO · MySQL

使用 phpMyAdmin 删除 MySQL 数据库中的所有行

在本指南中,我们将了解使用 phpMyAdmin 从 MySQL 数据库中删除所有行的最佳方法。

本页内容

我们将学习使用 phpMyAdmin 删除 MySQL 数据库中所有行的最佳方法。我们将探索 DELETE 命令以从给定表中删除行。

我们还将了解 DELETE、DROP 和 TRUNCATE 命令之间的区别。如果我们在表中有关联的外键,我们将看到如何在 MySQL 中 DELETE 行。

我们使用的是 MySQL 版本 8.0.27,你可以从这里下载最新版本。

使用 phpMyAdmin 删除 MySQL 数据库中的行

在 phpMyAdmin 中,你可以通过两种方式简单地删除行。你可以使用图形用户界面 (GUI) 选项和 SQL 查询来完成。

让我们在下面了解它们中的每一个。

在没有 SQL 查询的 phpMyAdmin 中删除行

在某些情况下,你必须一次性删除一张表中的所有行。单击检查所有,然后按删除执行此操作。

使用 phpmyadmin 删除 mysql 数据库中所有行的最佳方法 - 删除 phpmyadmin 中的所有行

如果你只想从所选表中删除一行,请单击删除按钮删除该特定行。请参阅下图。

使用 phpmyadmin 删除 mysql 数据库中所有行的最佳方法 - 删除 phpmyadmin 中的一行

如果你想删除一行或多行但不是全部,你可以先检查它们,然后按 Delete。你可以通过查看以下屏幕截图来按照说明进行操作。

使用 phpmyadmin 删除 mysql 数据库中所有行的最佳方法 - 删除 phpmyadmin 中的多行

如果要从不同的表中删除行,则必须转到每个表,然后如上所述删除。这需要时间和精力。

在这里,SQL 查询开始发挥作用,使工作变得非常容易。

使用 SQL 查询删除 phpMyAdmin 中的行

你可以根据项目要求使用三种不同的方式来实现你的目标。让我们一一了解它们以使用它们。

你可能正在考虑在使用 phpMyAdmin 时在哪里编写 SQL 查询。你可以在 SQL 选项卡下的 phpMyAdmin 中编写 SQL 查询(请参见下面给出的屏幕截图)。

按右下角的 Go 按钮或按 Ctrl+Enter 键执行查询。

使用 phpmyadmin 删除 mysql 数据库中所有行的最佳方法 - 在 phpmyadmin 中使用 sql 查询删除

DROP

DROP 是 Data Definition Language 命令 (DDL) 之一。

该命令用于一次性 DROP 整个表。它会删除该表的权限、触发器、索引、约束、定义和所有数据。

语法
DROP TABLE your_table_name;
注意
我们不能使用 ROLLBACK 命令撤消 DROP 操作。

DELETE

DELETE 命令从给定表中删除一行或多行。它是 Data Manipulation Language (DML) 命令之一。

DELETE 命令与 WHERE 子句一起使用,如果你想 DELETE 一行。WHERE 子句将通过省略 WHERE 子句从表中删除所有行。

DELETE 命令比 TRUNCATE 命令慢,因为它跟踪事务日志中的每个已删除行。DELETE 命令仅从数据库中删除行而不是表。

语法
#delete all rows from the table
DELETE FROM your_table_name;

#delete one row from the table
DELETE FROM your_table_name WHERE your_table_name.id = 1;
注意
如果需要,我们可以使用 ROLLBACK 命令恢复(撤消)。

TRUNCATE

TRUNCATE 命令的工作方式类似于 DELETE 命令,但它是数据定义语言 (DDL) 命令之一。它专门用于删除表中的所有行,因为它不允许使用 WHERE 子句。

与 DELETE 类似,TRUNCATE 也将表保留在数据库中,但删除行。由于它只在事务日志中记录一次,因此它比 DELETE 命令快。

语法
TRUNCATE TABLE your_table_name;
注意
我们不能使用 ROLLBACK 命令撤消操作。

如果你有一个关系数据库,其中一个表使用外键与另一个表关联,该怎么办。现在怎么删?在这种情况下,添加了 ON DELETE CASCADE 选项。

每当在主表中删除一行时,同一行也将在具有外键的另一表中删除。让我们通过下面给出的示例代码来理解。我们创建了两个名为 tb_student 和 tb_course 的表。

CREATE TABLE tb_student
(
     id INT PRIMARY KEY,
     firstname varchar(8),
     lastname varchar(8),
     gender varchar(8)
);

CREATE TABLE tb_course
(
  course_id INT PRIMARY KEY,
  course_name varchar(8),
  student_id INT,
 FOREIGN KEY(student_id) 
 REFERENCES tb_student(id) 
 ON DELETE CASCADE
);

用数据填充这些表。完成后,你可以非常轻松地从 tb_student 中删除行。

这是因为每当你从 tb_student 中删除时,由于外键上的 ON DELETE CASCADE 选项,tb_course 中的相应行也将被删除。

结论

我们探索了从表中删除一行和所有行的不同方法。我们还学会了只删除数据和表及其数据。本教程还强调了在与另一个表关联作为外键的情况下的安全删除。