mysql删除语句delete、drop、truncate区别简述

一、delete

  1. 作用:可用于删除表中某一行多行所有行),但不影响表结构、熟悉、索引。通俗而言:把表当作一个装东西的箱子,delete作用只是把箱子东西剔除,而不扔掉箱子也不影响箱子的内部架构。
  2. 语法 :
删除单行,按照某个筛选条件(值唯一,否则删除多行)
    delete from 表名 where 列名=值;
删除多行,按照某个筛选条件(多个值)
    delete from 表名 where 列名=值1 or 列名=值2;
    若列名相同还可以用下列表示
    delete from 表名 where 列名in(值1,值2)
删除所有行
    delete from 表名
    或
    delete *from 表名

例:

1、删除单行——删除学生表(表名:student)中 学号(id_num)为10的学生信息

delete from student where id_num=10;

2、 删除多行——删除学生表(表名:student)中 学号(id_num)为10和5的学生信息

 delete from student where id_num=10 or id_num=5;

或者

 delete from student where id_num in(10,5);

3、删除学生表中所有行(也可以说成所有列),即删除表中所有学生信息,后续可以继续插入。

delete from student 

delete *from student

     


二、drop 

  1. 作用:用于删除整表(整个表结构、属性、索引都会被删除)。通俗而言:把表当作一个装东西的箱子,drop作用把整个箱子全部扔掉,包括箱子中的东西。
  2. 语法
删除表
drop table 表名

 例:

删除学生表(student),后续不可再插入信息,需要重新建表

drop table student


三、truncate 

  1. 作用:用于删除表内数据,但是保留了表结构,类似于delete from 表名
  2. 语法
truncate table 表名

例:

删除学生表(student)中信息,后续可以继续插入信息。

 truncate table student

等同于

delete *from student

delete from student


四、作用场景与区别

  1. 无需表中所有信息与该表:使用drop
  2. 无需表中信息但需要保留i表,用truncate或者delete from table;
  3. 删除表中部分信息,使用delete

delete、truncate与drop区别:是否删除表结构、索引、属性

delete与truncate的区别:两者都可以用于删除全表信息,且不删除表结构、索引与属性,但是对于有主外键关系的表,不能使用truncate而应该使用delete语句,这是由于truncate不记录在日志中,不能够激活触发器


小结

        delete和truncate都可以删除表信息而不影响表结构,drop直接删除整个表,包括表结构、索引、属性,truncate和delete区别在于对有主外键关系的表,不能使用truncate。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木子!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值