• MySQL数据库8(十二)高级数据操作


    高级数据操作

    新增数据

    多数据插入

    只要写一次insert指令,但是可以直接插入多条记录。

    基本语法:insert into 表名 [(字段列表)] values(值列表),(值列表)…;

     

    主键冲突

    主键冲突:在有的表中,使用的是业务主键(字段有业务含义),但是往往在进行数据插入而的时候,又不能确定数据表中是否已经存在对应的主键。

     

    主键冲突的解决方案:

    1、主键冲突更新:类似插入数据语法,如果插入的过程中主键冲突,可以采用更新方法。

    insert into 表名 [(字段列表)] values(值列表) on duplicate key update 字段 = 新值;

    2、  主键冲突替换:

    当主键冲突之后,干掉原来的数据,重新插入进入。

    replace into表名 [(字段列表)] values(值列表);

     

    蠕虫赋值

    蠕虫赋值:一分为二,成倍的增加,从已有的数据中获取数据,并且将获取到的数据插入到数据表中。

    基本语法:insert into 表名 [(字段列表)] select */字段列表 from 其他表;

     

    注意:

    1、蠕虫复制的确通常是重复数据,没有太大业务意义:可以在短期内快速增加表的数据量,从而测试表的压力,还可以通过大量数据来测试表的效率(索引)

    2、蠕虫复制虽好,但要注意主键冲突。

    更新数据

    1、在更新数据的时候,特别要注意,通常是跟随条件更新,而不是批量更新。

    update 表名 set 字段名 = 新值 where 判断条件;

    2、如果没有条件,是全表更新数据,但是可以使用limit来显示更新的数量;

    update 表名 set 字段名 = 新值 [where 判断条件] limit 数量;

    删除数据

    1、删除数据的时候尽量不要全部删除,应该使用where进行判定

    2、删除数据的时候可以使用limit来限制要删除的具体数量。

    delete删除数据的时候无法重置auto_increment

     

    Mysql有一个能够重置表选项中的自增长的语法:

    truncate 表名;  ==》drop  ==》create

     

  • 相关阅读:
    CF763C Timofey and Remoduling
    CF762E Radio Stations
    CF762D Maximum Path
    CF763B Timofey and Rectangles
    URAL1696 Salary for Robots
    uva10884 Persephone
    LA4273 Post Offices
    SCU3037 Painting the Balls
    poj3375 Network Connection
    Golang zip压缩文件读写操作
  • 原文地址:https://www.cnblogs.com/sun-yanglu/p/9583685.html
Copyright © 2020-2023  润新知