sql清除表中数据,表结构为什么还在?
一、sql清除表中数据,表结构为什么还在
一般的数据库原理是将表结构作为元数据单独存放的,而表实际存储的数据是放在另外一个地方,数据库系统保存两者的对应关系。这样就能用sql语句查询到对应的数据,一般清空数据和删除表是分开的两个操作。
就ORACLE数据库,简单的来说
清除数据你可能用的是delete或者truncate来,而不是drop,drop是直接删除表,delete和truncate是删除表中的数据
比如delete:
delete from a 此法是删除表a中的数据,一条一条删除的;
truncate table a 此法也是删除表a中的数据,但是不是一条一条的删;
drop table a 此法是直接删除表a,包括表中的数据及数据结构。
延伸阅读:
二、SQL TRUNCATE TABLE清空表语句
SQL TRUNCATE TABLE 语句用来删除表中的所有记录,也即清空表,它类似于不带 WHERE 子句的 DELETE FROM 语句。
TRUNCATE TABLE 和 DROP TABLE
DROP TABLE 用来删除表,包括删除该表的数据、结构、索引、触发器、约束等所有信息。一旦使用 DROP TABLE 删除了表,则该表的所有信息都将丢失,该表再也无法使用了。如果您希望存储一些数据,就只能重新创建该表。
TRUNCATE TABLE 仅仅删除表的所有记录,表的结构、索引、触发器、约束等将被保留,后续仍然可以使用该表。
TRUNCATE TABLE 和 DELETE FROM
不带 WHERE 子句的 DELETE FROM 语句同样可以达到清空表的效果,但是 TRUNCATE TABLE 使用的系统资源和日志资源更少,因此比 DELETE FROM 更加快速。
DELETE FROM 语句每删除一行,都会在事务日志中为所删除的行记录一项。TRUNCATE TABLE 通过释放表中数据所用的数据页来删除数据,只会在事务日志中记录页的释放。
此外,TRUNCATE TABLE 还能重置具有自动递增(AUTO_INCREMENT)属性的字段,而 DELETE FROM 却不具备该功能。
总结
当您不再需要该表时,使用 DROP TABLE;当您仍要保留该表,只是想删除所有记录时,使用 TRUNCATE TABLE;当你要删除部分记录时,使用带有 WHERE 子句的 DELETE FROM。
猜你喜欢LIKE
相关推荐HOT
更多>>
PMP的价值有哪些?
一、提升个人能力获得PMP认证是项目管理领域的一个重要里程碑,它要求申请人具备一定的项目管理经验和知识体系。通过准备PMP考试,个人需要系统...详情>>
2023-10-17 23:45:13
接口测试有哪些工具?
一、PostmanPostman是一款强大的HTTP请求工具,主要用于接口测试。它可以支持各种类型的HTTP请求,如GET、POST、PUT等,支持多种数据格式如JSON...详情>>
2023-10-17 21:59:16
DNF和Yum的区别,为什么Yum会被DNF取代?
一、DNF和Yum的区别1、包管理工具Yum:Yum是较早出现的包管理工具,它是Red Hat Linux和CentOS等系统默认使用的软件包管理工具。DNF:DNF是Yum...详情>>
2023-10-17 20:39:12
抗锯齿技术FXAA、FSAA与MSAA有什么区别?
一、概念不同FXAA是一种基于像素的抗锯齿技术,它通过对图像进行模糊处理来消除锯齿状边缘。FSAA是一种基于几何的抗锯齿技术,它通过对图像中的...详情>>
2023-10-17 19:03:55