15.DML语句的学习(三)——删除语句

删除语句

(一)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;

发布了90 篇原创文章 · 获赞 48 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Asher_S/article/details/89478564