SQL-删除表drop、truncate和del

本文详细解释了SQL中drop、truncate和delete三个关键字的区别,包括它们的功能、执行速度、对表结构的影响以及对事务日志的作用。并通过实例展示了如何使用这些命令来管理数据库表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、SQL中的语法

   1、drop table 表名称                         eg: drop table  dbo.Sys_Test
   2、truncate table 表名称                     eg: truncate  table dbo.Sys_Test                  
   3、delete from 表名称 where 列名称 = 值      eg: delete from dbo.Sys_Test where test='test'

二、drop,truncate,delete区别

    1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。

       drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。

    2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。

       注意:truncate 不能删除行数据,要删就要把表清空。

    3、delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存

       以便进行进行回滚操作。

       truncate与不带where的delete :只删除数据,而不删除表的结构(定义)

    4、truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete。

       如果要删除表定义及其数据,请使用 drop table 语句。  
    5、对于由foreign key约束引用的表,不能使用truncate table ,而应使用不带where子句的delete语句。由于truncate table 记录在日志中,所以它不能激活触发器。

    6、执行速度,一般来说: drop> truncate > delete。

    7、delete语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。

             truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。 

 

 

truncate 与delete 比较:

truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。

truncate 比 delete速度快,且使用的系统和事务日志资源少。

truncate 操作后的表比Delete操作后的表要快得多。

当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

### Java 中小型企业在春季招聘中的情况 #### 招聘要求 对于Java开发岗位,中小企业通常会关注候选人的实际编程能力解决问题的能力。除了基本的Java语法技术栈掌握外,企业还期望候选人具备一定的项目经验团队协作能力[^1]。 具体来说,在技术方面的要求可能包括但不限于: - 掌握核心Java语言特性 - 熟悉常用的框架如Spring、MyBatis等 - 对数据库操作有一定的理解实践经验 - 有版本控制系统(如Git)的操作经验 此外,软技能同样重要,良好的沟通技巧以及快速学习新事物的能力也是雇主所看重的特质之一[^2]。 #### 提供福利与待遇 为了吸引更多优秀的人才加入,许多中小型企业会在薪资之外提供一系列具有竞争力的福利措施来增强员工归属感工作满意度。常见的福利政策包括但不限于: - **五险一金**:按照国家规定缴纳社会保险及住房公积金; - **带薪休假**:除法定节假日外,还有额外的年假天数可供享受休息时间; - **培训机会**:定期组织内部或外部的技术分享会议,鼓励支持员工参加各种形式的学习活动以提升自我价值; - **弹性工作制度**:部分公司允许远程办公或者灵活调整上下班时间以便更好地平衡生活与工作的关系; - **其他激励机制**:比如绩效奖金、年终奖、股票期权计划等等,这些都可以作为吸引并留住人才的有效手段[^5]。 ```java // 示例代码展示了一种简单的奖励计算方法 public class BonusCalculator { private double baseSalary; public BonusCalculator(double salary){ this.baseSalary = salary; } // 计算年度现优异者的奖金数额 public double calculateYearlyBonus(){ return baseSalary * 0.2; // 假定为两个月工资作为年终奖 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值