使用 phpMyAdmin 删除 MySQL 数据库中的所有行
我们将学习使用 phpMyAdmin
删除 MySQL
数据库中所有行的最佳方法。我们将探索 DELETE
命令以从给定表中删除行。
我们还将了解 DELETE
、DROP
和 TRUNCATE
命令之间的区别。如果我们在表中有关联的外键,我们将看到如何在 MySQL
中 DELETE
行。
我们使用的是 MySQL 版本 8.0.27,你可以从这里下载最新版本。
使用 phpMyAdmin
删除 MySQL
数据库中的行
在 phpMyAdmin
中,你可以通过两种方式简单地删除行。你可以使用图形用户界面 (GUI) 选项和 SQL 查询来完成。
让我们在下面了解它们中的每一个。
在没有 SQL
查询的 phpMyAdmin
中删除行
在某些情况下,你必须一次性删除一张表中的所有行。单击检查所有
,然后按删除
执行此操作。
如果你只想从所选表中删除一行,请单击删除
按钮删除该特定行。请参阅下图。
如果你想删除一行或多行但不是全部,你可以先检查它们,然后按 Delete
。你可以通过查看以下屏幕截图来按照说明进行操作。
如果要从不同的表中删除行,则必须转到每个表,然后如上所述删除。这需要时间和精力。
在这里,SQL 查询开始发挥作用,使工作变得非常容易。
使用 SQL
查询删除 phpMyAdmin
中的行
你可以根据项目要求使用三种不同的方式来实现你的目标。让我们一一了解它们以使用它们。
你可能正在考虑在使用 phpMyAdmin
时在哪里编写 SQL
查询。你可以在 SQL
选项卡下的 phpMyAdmin
中编写 SQL
查询(请参见下面给出的屏幕截图)。
按右下角的 Go
按钮或按 Ctrl+Enter 键执行查询。
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
中的相应行也将被删除。
结论
我们探索了从表中删除一行和所有行的不同方法。我们还学会了只删除数据和表及其数据。本教程还强调了在与另一个表关联作为外键的情况下的安全删除。