SQL删除数据的三种方式:
1.delete:用于删除表中的行数据,如果不带where条件则会删除表中所有数据,删除操作作为事务记录在日志中,可回滚操作还原数据。
delete [from] table_name [where <删除条件>]
2.truncate:只删除表中所有的数据,删除操作不记录在日志中,不能回滚操作还原数据。
truncate table table_name
3.drop:用于删除表(表的数据、结构、属性以及索引也会被删除),并将表所占用的空间全部释放,不能回滚操作还原数据。
drop table table_name
从速度上drop>truncate>delete,但因为drop、truncate不能回滚操作所以要慎重。
还有一个小技巧,按条件删除数据的话,先用select 代替delete,看看查询出来的数据是不是自己需要删除的数据,再用delete替换select,这样可以避免误删,以免后面执行恢复数据操作。
示例:
表的定义如下:
CREATE TABLE [dbo].[stud_grade_all](
[stud_id] [char](10) NOT NULL,
[name] [nvarchar](4) NOT NULL,
[course_id] [char](10) NULL,
[grade] [decimal](4, 1) NULL
)
1.删除stud_grade_all表中‘张三’和‘李伟’的成绩记录:
delete from [dbo].[stud_grade_all]
where name in( '张三','王刚')
2.删除stud_grade_all表中的所有数据,保留stud_grade_all表结构:
delete from [dbo].[stud_grade_all]
truncate table [dbo].[stud_grade_all]
3.删除stud_grade_all表中的数据,以及删除该表:
drop table [dbo].[stud_grade_all]
end
有兴趣的小伙伴可以关注“SQL数据库笔记”公众号,一起学习吧!
|