delete from 表名;truncate table 表名;# 删除除白沙外的所有行数据:delete from 表名 where 字段名 <>'白沙'# 删除除白沙、北京外的数据:delete from 表名 where 字段名 not in('白沙','北京')delete from 表名 where 字段名 <>'白沙' and 字段名<>'北京'# 删除3行数据:delete from pet limit 3;
比 较:
不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。
效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
