MySQL中的delete语句
程序员文章站
2022-05-30 22:38:29
...
MySQL中的delete语句
一、3类删除语句
1.drop删除整个表,包括结构和内容
2.truncate删除表中所有数据,但不能与where一起使用
3.delete删除表中指定数据,能与where一起使用
程度:drop>truncate>delete
二、基础delete语句
1.delete from table_name;
delete from table; 删除表中所有记录,且无法复原,后期如需还原只能用insert into 重新插入
注意:此处不可对table_name取别名,会报错
2.delete from table where clause;
1).当子查询的from 的表和更新、删除对象使用同一张表时,会报错
解决方法:对子句的结果集取别名,变成二重子句
适用于update和delete
例:
delete from person where id=(select max(id) from person);
会报错1093 - You can’t specify target table ‘person’ for update in FROM clause
应该改成:
delete from person
where id=(select max_id from
(select max(id) as max_id from person) as p);
2).where后面跟的in子查询不能带where,带的话需要取别名,变二重子句
此外,in子查询的速度比较慢,一般用表连接的方式代替
说到表连接的话,就需要用delete做多表删除了
三、delete删除多表数据
1.delete t1 from t1,t2 where clause
delete的联结删除是指通过在两个表之间建立联结删除关系,来实现删除一个表的数据的同时删除另一个表中相关的数据。
1).delete t1 from table as t1,table as t2 where t1.id=t2.id
2).delete t1 from t1,t2 where t1.id=t2.id and
3).delete t1 from t1 left join t2 on t1.id=t2.id where
上一篇: 实验4 简单查询—单表无条件和有条件查询
下一篇: 数据库(四)C++连接MySQL
推荐阅读
-
影响MySQL中mysqld安全的四个选项_MySQL
-
简单谈谈PHP中的include、include_once、require以及require_once语句
-
实例详解MySQL中触发器的使用方法
-
load data infile将excel文件中的数百万条数据在1分钟内导入数据_MySQL
-
详解SQL Server 2008中的联机事务处理_MySQL
-
mysql语句如何插入含单引号或反斜杠的值详解
-
MySQL数据库中每个表占用的空间大小_MySQL
-
sql server跟my sql 命令(语句)的区别,sql server与mysql的比
-
PHP中的MySQLi扩展学习(四)mysqli的事务与预处理语句
-
Mysql重置密码过程中遇到的问题解析