1、删除表中的记录:
DELETE
FROM table1;
TRUNCATE TABLE table1;
2、删除表中的部分记录,只能用DELETE:
DELETE
FROM table1
WHERE id > 5;
3、如果不加WHERE字句,那么DELETE和TRUNCATE是一样的,但有一点不同:DELETE返回被删除的记录数,TRUNCATE返回0。
4、如果一个表中有自增字段,使用TRUNCATE TABLE和没有WHERE字句的DELETE删除表中的全部记录后,该自增字段将起始值恢复为1;
如果不想使自增字段恢复为1,可以在DELETE语句中加上永真条件,如WHERE 1或WHERE 1=1
总结
DELETE可以使用WHERE字句选择删除指定的记录,还可以返回被删除的行数,但是执行速度不快。
TRUNCATE只能删除全部记录,不能删除指定记录,不能返回被删除的记录数,但执行速度非常快。