暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql数据操纵语言之表数据修改和删除

227decision 2020-04-08
697

修改(更新)

    update 表名 set 字段名1=值1 where 字段名=值;


    update 表名 set 字段名1=值1,字段名2=值2 where 字段名=值;

    删除

      delete from 表名 where 字段名=值;


      truncate table 表名;
      delete from 表名;
      drop table 表名;

      注意事项

      删除数据时,做好备份,以便数据回退。


      delete,truncate和drop分析

      • 共同点都是删除数据。

      • delele 会把删除的操作记录给记录起来,以便数据回退,不会释放空间,而且不会删除定义(表结构)。

        truncate不会记录删除操作,会把表占用的空间恢复到最初,不会删除定义。

        drop会删除整张表,释放表占用的空间。

      • truncate能够快速清空一个表,而delete只能一行一行的删除。

      • truncate会重置auto_increment的值为1,而delete后表仍然保持auto_increment。

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

      • 删除速度,一般来说: drop> truncate > delete。

      • 项目中建议使用delete,小心使用 drop 和 truncate,注意备份数据。

      最后修改时间:2020-07-01 12:56:06
      文章转载自227decision,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论