详解数据库三种删除⽅法:deletedroptruncate
Delete
Delete :删除数据表中的⾏(可以删除某⼀⾏,也可以在不删除数据表的情况下删除所有⾏)。
删除某⼀⾏:Delete from 数据表名称 where 列名称=值;
删除所有⾏:Delete * from 数据表名称
Drop
Drop :删除数据表或数据库,或删除数据表字段。
删除数据库:drop database 数据库名称
删除数据表:(表的结构、属性、索引也会被删除)
use 数据库名称
drop table 数据表1名称,数据表2名称
删除数据表字段(列):
use 数据库名称delete删除表格还是内容
alter table 数据表名称
drop column 字段名(列名称)
Truncate
Truncate:删除数据表中的数据(仅数据表中的数据,不删除表)。
truncate table 数据表名称
“ TRUNCATE TABLE语句是⼀种快速、⽆⽇志记录的⽅法。TRUNCATE TABLE语句与不含有 WHERE ⼦句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE语句速度更快,并且使⽤更少的系统资源和事务⽇志资源。”
⽐较
删除数据的速度,⼀般来说: drop> truncate > delete
“与 DELETE 语句相⽐,TRUNCATE TABLE语句具有以下优点:所⽤的事务⽇志空间较少。
DELETE 语句每次删除⼀⾏,并在事务⽇志中为所删除的每⾏记录⼀项。TRUNCATE TABLE 通过释放⽤于存储表数据的数据页来删除数据,并且在事务⽇志中只记录页释放。使⽤的锁通常较少。当使⽤⾏锁执⾏ DELETE 语句时,将锁定表中各⾏以便删除。TRUNCATE TABLE 始终锁定表和页,⽽不是锁定各⾏。如⽆例外,在表中不会留有任何页。
执⾏ DELETE 语句后,表仍会包含空页。例如,必须⾄少使⽤⼀个排他 (LCK_M_X) 表锁,才能释放堆中的空表。如果执⾏删除操作时没有使⽤表锁,表(堆)中将包含许多空页。对于索引,删除操作会留下⼀些空页,尽管这些页会通过后台清除进程迅速释放。
与 DELETE 语句相同,使⽤ TRUNCATE TABLE语句清空的表的定义与其索引和其他关联对象⼀起保留在数据库中。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论