MySQL中的delete语句
MySQL中的delete语句
⼀、3类删除语句
1.drop删除整个表,包括结构和内容
3.delete删除表中指定数据,能与where⼀起使⽤
程度:drop>truncate>delete
⼆、基础delete语句
1.delete from table_name;
delete from table; 删除表中所有记录,且⽆法复原,后期如需还原只能⽤insert into 重新插⼊
简单的mysql语句注意:此处不可对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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。