JAVA数据库mysql面试题——delete 和 truncate 的区别?
delete 和 truncate 的区别?
delete 用来删除数据库表中的信息: delete from 表名 [where 条件].
truncate 它也可删除表中的数据. truncate table 表名 ;
delete 只删除数据,不会删除表中的索引值. 如果自动增长目前是100 , 删除掉后,下次添加会从101开始.
truncate 会删除对应的索引, 把表删除,重新创建一个表.
演示如下:
查询表中数据:SELECT * FROM customer;
开始是空表,我们插入数据:
INSERT INTO customer VALUES(NULL,'赵敏','神龙教');
INSERT INTO customer VALUES(NULL,'张无忌','无党派');
#先使用delete 删除所有数据.
DELETE FROM customer WHERE username='赵敏';
然后添加一条数据:
INSERT INTO customer VALUES(NULL,'令狐冲','华山派');
#使用truncate删除表中数据
执行语句:
TRUNCATE TABLE customer;
总结:
delete 只删除数据,不会删除表中的索引值.
truncate 会删除对应的索引, 把表删除,重新创建一个表.