• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    简单了解SQL常用删除语句原理区别

    主要介绍了SQL删除语句DROP、TRUNCATE、 DELETE 的区别,帮助大家更好的理解和学习sql语句,感兴趣的朋友可以了解下

    DROP:

    DROP TABLE test;

    删除表test,并释放空间,将test删除的一干二净。

    TRUNCATE:

    TRUNCATE test;

    删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在。

    DELETE:

    1、删除指定数据

    删除表test中年龄等于30的且国家为US的数据

    DELETE FROM test WHERE age=30 AND country='US';

    2、删除整个表

    仅删除表test内的所有内容,保留表的定义,不释放空间。

    DELETE FROM test 或者 TRUNCATE test;

    truncate table 命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与 delete from 数据表的删除全部数据表记录不一样,delete 命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate 命令删除的数据是不可以恢复的。

    相同点

    truncate 和不带 where 子句的 delete, 以及 drop 都会删除表内的数据。

    不同点:

    1. truncate 和 delete 只删除数据不删除表的结构(定义) ,drop 语句将删除表的结构被依赖的约束(constrain), 触发器(trigger), 索引(index); 依赖于该表的存储过程/函数将保留, 但是变为 invalid 状态。

    2.delete 语句是 dml, 这个操作会放到 rollback segement 中, 事务提交之后才生效; 如果有相应的 trigger, 执行的时候将被触发。 truncate, drop 是 ddl, 操作立即生效, 原数据不放到 rollback segment 中, 不能回滚。 操作不触发 trigger。

    3.delete 语句不影响表所占用的 extent, 高水线(high watermark)保持原位置不动。 显然 drop 语句将表所占用的空间全部释放 。 truncate 语句缺省情况下见空间释放到 minextents 个 extent, 除非使用 reuse storage; truncate会将高水线复位(回到最开始)。

    4.速度:一般来说: drop > truncate > delete 。

    5.安全性: 小心使用 drop 和 truncate, 尤其没有备份的时候。否则哭都来不及。
    最后

    使用上, 想删除部分数据行用 delete, 注意带上 where 子句。 回滚段要足够大。

    想删除表, 当然用 drop。

    想保留表而将所有数据删除。如果和事务无关, 用 truncate 即可。 如果和事务有关, 或者想触发 trigger, 还是用 delete。

    如果是整理表内部的碎片, 可以用 truncate 跟上 reuse stroage, 再重新导入/插入数据。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Mysql一些复杂的sql语句(查询与删除重复的行)
    • 使用SQL批量替换语句修改、增加、删除字段内容
    • SQL语句实现删除重复记录并只保留一条
    • 必须会的SQL语句(四) 数据删除和更新
    • 必须会的SQL语句(二) 创建表、修改表结构、删除表
    • 使用sql语句创建和删除约束示例代码
    • oracle使用sql语句增加字段示例(sql删除字段语句)
    • MySQL中批量删除指定前缀表的sql语句
    • SQL语句删除和添加外键、主键的方法
    • MySQL删除数据Delete与Truncate语句使用比较
    上一篇:MySQL死锁检查处理的正常方法
    下一篇:详解监听MySQL的binlog日志工具分析:Canal
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    简单了解SQL常用删除语句原理区别 简单,了解,SQL,常用,删除,