删除语句
(一)delete方式
1.单表的删除
语法:delete from 表明 where 筛选条件;
2.多表的删除
sql192语法:
delete 需要删除的表的别名
from 表1 别名,表2 别名
where 连接条件 and 筛选条件;
sql199语法:
delete 需要删除的表的别名
from 表1 别名
inner|left|right join 表2 别名
on 连接条件
where 筛选条件;
(二)truncate方式(清空数据)
语法:truncate table 表名;
delete和truncate的区别:
1.truncate语句不能加where条件。
2.truncate的删除效率比delete高一点。
3.假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除返回删除的行数。
5.truncate删除不能回滚,delete删除可以回滚。
问题:执行update和delete语句时,出现You are using safe update mode and you tried to update a table without a WHE,即mysql在保护模式下,无法更改。
解决办法:执行
set sql_safe_updates=0;
或
set sql_safe_updates=off;