MySQL语句:drop、truncate、delete的用法

目录

1 drop、truncate、delete 语法

2 drop、truncate、delete 差异

2.1 相同点

2.2 不同点

2.3 实际应用中

3 备注:DML与DDL

3.1 DML与DDL的含义:

3.2 DML与DDL的区别:

1 drop、truncate、delete 语法

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

2 drop、truncate、delete 差异

2.1 相同点

drop、truncate、不带where子句的delete,都会清空表中的数据。

【注意:这里说的delete,是指不带where子句的delete语句。】

【带where子句的delete,可以按照筛选条件逐条删除每一行记录,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行重做或者回滚操作。】

2.2 不同点

(1)truncate 和 delete,只删除表中的全部数据,不删除表的定义( 即不删除表的结构 )。drop,不仅删除表中的全部数据,而且删除表的定义、表的索引等,会将表所占用的空间全部释放。

(2)delete 是DML操作,这个操作会放到事务中,只有在事务提交之后才能生效,支持事务的回滚。truncate 和 drop 是DDL操作,操作会立即生效,操作不放到事务中,不能回滚。

(3)执行速度:一般来说:drop > truncate >  delete。

2.3 实际应用中

实际应用中,三者区别是明确的:表废弃了,你不再需要该表时,用 drop。当你仍要保留该表,但是要删除表中所有记录时,用 truncate。当你要删除部分记录时,用 delete,带上where 子句。

3 备注:DML与DDL

3.1 DML与DDL的含义:

1、DML(Data Manipulation Language):数据操作语言,针对数据库的基本操作,SQL中处理数据等操作统称为数据操作语言。简而言之,就是实现了基本的“增删改查”操作。包括的关键字有:select、update、delete、insert等。

2、DDL(Data Definition Language):数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言,对数据库中的某些对象 ( 例如database、table ) 进行管理。包括的关键字有:create、alter、drop、truncate等。

3.2 DML与DDL的区别:

DML操作可以手动控制事务的开启、提交和回滚。DDL操作是隐性提交的,不能rollback。

猜你喜欢

转载自blog.csdn.net/cmm0401/article/details/109862598
今日推荐