删除
删除和清空(表)
在 MySQL 中,删除数据表的行为是完全删除该表,而不是仅清空表中的数据。当你执行 DROP TABLE 语句时,MySQL 将删除整个表以及与该表相关联的任何索引、触发器、约束等。
例如,如果你执行以下命令:
DROP TABLE mytable;
那么 MySQL 将删除名为 mytable 的数据表,包括其中的所有数据和结构定义。
如果你只想删除表中的数据,而不是删除整个表,可以使用 TRUNCATE TABLE 命令。TRUNCATE TABLE 命令将删除表中的所有数据,并重置表的计数器。与 DROP TABLE 不同,TRUNCATE TABLE 保留了表的结构定义,因此可以在必要时快速重新填充数据。
例如,如果你执行以下命令:
TRUNCATE TABLE mytable;
那么 MySQL 将删除名为 mytable 的数据表中的所有数据,但不删除表本身。表结构将保持不变,因此可以随时重新填充数据。
需要注意的是,DROP TABLE 和 TRUNCATE TABLE 命令都是不可逆的操作,因此在执行这些命令之前,务必确保你已经备份了需要保留的数据。
删除记录
DELETE FROM table_name [WHERE Clause]
要删除 MySQL 表中的记录,可以使用 DELETE FROM 语句。DELETE FROM 可以删除表中的全部记录,也可以根据条件删除部分记录。
以下是一些示例代码:
-
删除表中的全部记录:
DELETE FROM table_name;
-
根据条件删除记录:
DELETE FROM table_name WHERE condition;
其中,table_name 是要删除记录的表名,condition 是删除记录的条件。例如,要删除姓张的学生记录,可以使用以下语句:
DELETE FROM students WHERE last_name='张';
需要注意的是,DELETE FROM 语句会永久性地从表中删除记录,因此在执行前请确保已备份数据或确认不再需要这些记录。
多表连接删除
/*删除“李勇”选修“数据库原理”课程的选课记录*/ delete sc from student s join sc on s.sno = sc.sno join course c on sc.cno = c.cno where s.sname = '李勇' and c.cname = '数据库原理'