加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_池州站长网 (https://www.0566zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL数据库(15):高级数据操作-新增数据

发布时间:2023-02-13 13:27:44 所属栏目:MySql教程 来源:
导读:  高级数据操作-新增数据 多数据插入

  只要写一次insert数据库插入操作,可以插入多条数据

  基本语法

  insert into 表名 [(字段列表)] values (值列表), (值列表)...;
  create table my_
  高级数据操作-新增数据 多数据插入
 
  只要写一次insert数据库插入操作,可以插入多条数据
 
  基本语法
 
  insert into 表名 [(字段列表)] values (值列表), (值列表)...;
  create table my_student(
      id int primary key auto_increment,
      name varchar(10)
  );
  insert into my_student (name) values ('张三'), ('李四'), ('王五');
  mysql> select * from my_student;
  +----+--------+
  | id | name   |
  +----+--------+
  |  1 | 张三   |
  |  2 | 李四   |
  |  3 | 王五   |
  +----+--------+
  主键冲突
 
  insert into my_student (id, name) values (1, '张飞');
  ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
  1、主键冲突更新
 
  如果插入过程中主键冲突,那么采用更新方式
 
  insert into 表名 [(字段列表)] on duplicate key update 字段=新值;
  insert into my_student (id, name) values (1, '张飞')
  on duplicate key update name = '张飞';
  mysql> select * from my_student;
  +----+--------+
  | id | name   |
  +----+--------+
  |  1 | 张飞   |
  |  2 | 李四   |
  |  3 | 王五   |
  +----+--------+
  2、主键冲突替换
 
  replace into 表名 [(字段列表)] values (值列表);
  replace into  my_student (id, name) values (1, '刘备');
  mysql> select * from my_student;
  +----+--------+
  | id | name   |
  +----+--------+
  |  1 | 刘备   |
  |  2 | 李四   |
  |  3 | 王五   |
  +----+--------+
  蠕虫复制
 
  一分为二,成倍增加
 
  从已有的数据中获取数据,并且插入到数据表中
 
  insert into 表名 [(字段列表)] select */字段列表 from 表名;
  insert into my_student (name) select name from my_student;
  mysql> select * from my_student;
  +----+--------+
  | id | name   |
  +----+--------+
  |  1 | 刘备   |
  |  2 | 李四   |
  |  3 | 王五   |
  |  4 | 刘备   |
  |  5 | 李四   |
  |  6 | 王五   |
  +----+--------+
  注意:
 
  蠕虫复制通常是重复数据,可以短期内复制大量的数据,从而测试表的压力需要注意主键冲突
 

(编辑:我爱制作网_池州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!