SQL DROP 和 TRUNCATE
DROP
DROP用于删除整个数据库或表。DROP语句会破坏现有数据库、表、索引或视图等对象。
SQL中的DROP语句从关系数据库管理系统(RDBMS)中删除组件。
语法:
DROP object object_name
示例:
DROP TABLE table_name;
table_name : 需要删除的表名.
DROP DATABASE database_name;
database_name : 需要删除的数据库名称
TRUNCATE
TRUNCATE语句是一种数据定义语言(DDL)操作,用于标记表的范围以进行重新分配(为空以便重用)。此操作的结果是快速从表中删除所有数据,通常绕过许多完整性强制机制。它在SQL:2008标准中正式引入。
TRUNCATE表mytable语句在逻辑上(尽管不是物理上)等同于从mytable语句中DELETE(没有WHERE子句)。
语法:
TRUNCATE TABLE table_name;
table_name : 要被截断的表的名称.
DATABASE name – student_data
DROP 和 TRUNCATE 对比
- Truncate通常速度非常快,非常适合从临时表中删除数据。
- Truncate保留表的结构以备将来使用,不像drop table,在drop table中,表会连同它的完整结构一起删除。
- 使用DROP语句删除表或数据库 cannot ,因此必须明智地使用它。
- 删除整个数据库
DROP DATABASE student_data;
运行上述查询后,整个数据库将被删除。
- 从student_data数据库中截断Student_details表。
TRUNCATE TABLE Student_details;
运行上述查询后,Student_details表将被截断,即数据将被删除,但该结构将保留在内存中进行进一步的操作。
参考:
- https://en.wikipedia.org/wiki/Truncate_ (SQL)
- https://en.wikipedia.org/wiki/Data_definition_language#DROP_statement