DML语言(重点)———delete

发布时间:2023年12月25日

语法:

delete from 表名 [where? 条件]

-- 删除数据(避免这样写,会全部删除)
DELETE FROM `student`



-- 删除指定数据
DELETE FROM `student` WHERE id='2'

TRUNCATE命令

作用:完全清空一个数据库表,表的结构和索引约束不会变!

代码案例:

-- 清空student表
TRUNCATE `student`

delete 和 truncate 区别:

1.相同点:都能删除数据,都不会删除表的结构?

2.不同点:

(1)truncate 会重新设置自增列,计数器会归零

(2)truncate 不会影响事务

代码案例:

-- 测试delete 和 truncate 区别	
CREATE TABLE `test`(
`id` INT(4) NOT NULL AUTO_INCREMENT,
`coll` VARCHAR(20) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4
INSERT INTO `test`(coll) VALUES ('1'),('2'),('3')
DELETE FROM `test` -- 不会影响自增
TRUNCATE TABLE `test` -- 自增会归零

了解即可:delete删除问题,重启数据库,现象

1.INNODB? ? 自增列会从1开始(存在内存中,断电即失)

2.MyISAM? ? 继续从上一个自增量开始(存在文件中的,不会丢失)

文章来源:https://blog.csdn.net/2301_79221593/article/details/135205691
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。