我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中insert如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中insert如何使用

mysql中insert如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

  insert的语法

  INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

  [INTO] tbl_name [(col_name,...)]

  VALUES ({expr | DEFAULT},...),(...),...

  [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

  或:

  INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

  [INTO] tbl_name

  SET col_name={expr | DEFAULT}, ...

  [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

  或:

  INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]

  [INTO] tbl_name [(col_name,...)]

  SELECT ...

  [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

  如果列清单和VALUES清单均为空清单,则INSERT会创建一个行,每个列都被设置为默认值:

  INSERT INTO tbl_name () VALUES();

  假设worker表只有name和email,插入一条数据:

  insert into worker values(“tom”,”tom@yahoo.com”);

  批量插入多条数据:

  insert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);

  给出要赋值的那个列,然后再列出值的插入数据:

  insert into worker (name) values (‘tom’);

  insert into worker (name) values (‘tom’), (‘paul’);

  使用set插入数据:

  insert into worker set name=’tom’;

  在 SET 子句中未命名的行都赋予一个缺省值,使用这种形式的 INSERT 语句不能插入多行。

  一个expression可以引用在一个值表先前设置的任何列,例如

  INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);

  --但不能这样:

  INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);

  使用INSERT…SELECT语句插入从其他表选择的行。

  insert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;

  --如果每一列都有数据:

  insert into tbl_name1 select col3,col4 from tbl_name2;

  查询不能包含一个ORDER BY子句,而且INSERT语句的目的表不能出现在SELECT查询部分的FROM子句。

  ON DUPLICATE KEY UPDATE

  如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。

  --假设a,b为唯一索引,表table没有1,2这样的行是正常插入数据,冲突时,更新c列的值。

  INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=3;

  --或者是

  INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=values(c);

  --引用其他列更新冲突的行

  INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

  向一个已定义为NOT NULL的列中插入NULL。对于一个多行INSERT语句或INSERT INTO...SELECT语句,根据列数据的类型,列被设置为隐含的默认值。对于数字类型,默认值为0;对于字符串类型,默认值为空字符串('');对于日期和时间类型,默认值为“zero”值。

  INSERT INTO...SELECT的ON DUPLICATE KEY UPDATE

  insert into tbl_name1(a,b,c)

  select col1,col2,col3 from tbl_name2

  ON DUPLICATE KEY UPDATE c=values(c);

  INSERT DELAYED

  如果您的客户端不能等待INSERT完成,则这个选项是非常有用的,当一个客户端使用INSERT DELAYED时,会立刻从服务器处得到一个确定。并且行被排入队列,当表没有被其它线程使用时,此行被插入。

  使用INSERT DELAYED的另一个重要的好处是,来自许多客户端的插入被集中在一起,并被编写入一个块。这比执行许多独立的插入要快很多。

  INSERT DELAYED INTO worker (name) values (‘tom’), (‘paul’);

  使用DELAYED时有一些限制:

  INSERT DELAYED仅适用于MyISAM, MEMORY和ARCHIVE表。对于MyISAM表,如果在数据文件的中间没有空闲的块,则支持同时采用SELECT和INSERT语句。在这些情况下,基本不需要对MyISAM使用INSERT DELAYED。

  INSERT DELAYED应该仅用于指定值清单的INSERT语句。服务器忽略用于INSERT DELAYED...SELECT语句的DELAYED和INSERT DELAYED...ON DUPLICATE UPDATE语句的DELAYED。

  因为在行被插入前,语句立刻返回,所以您不能使用LAST_INSERT_ID()来获取AUTO_INCREMENT值。AUTO_INCREMENT值可能由语句生成。

  对于SELECT语句,DELAYED行不可见,直到这些行确实被插入了为止。

  DELAYED在从属复制服务器中被忽略了,因为DELAYED不会在从属服务器中产生与主服务器不一样的数据。

看完上述内容,你们掌握mysql中insert如何使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中insert如何使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python中insert函数如何使用

在Python中,可以使用insert()函数来向列表中的指定位置插入元素。insert()函数的语法如下:list.insert(index, element)其中,list是要进行插入操作的列表,index是要插入元素的位置,ele
2023-10-23

MySQL中的insert ignore into使用

目录mysql中的insert ignore into1、插入的数据是主键冲突时2、没有主键冲突时,直接插入数据insert ignore into--跳坑MySQL中的insert ignore into最近工作中,使用到了insert
2022-08-18

MySQL中select insert into怎么使用

在MySQL中,SELECT INTO和INSERT INTO是两个不同的操作。SELECT INTO: 用于将查询结果插入到新的表中。语法如下:SELECT column1, column2INTO new_tableFROM old
MySQL中select insert into怎么使用
2024-04-09

MySQL中INSERT+SELECT的使用方式

目录mysql中INSERT+SELECT的使用使用场景1.两表之间2.三表之间3.多表之间MySQL中SELECT INTO FROM的使用总结MySQL中INSERT+SELECT的使用使用场景通过一条sql语句实现从多个表中组合字
MySQL中INSERT+SELECT的使用方式
2024-10-24

MySQL中insert和update怎么使用

在MySQL中,INSERT语句用于向表中插入新的行,UPDATE语句用于更新表中已有行的数据。INSERT语句示例:INSERT INTO table_name (column1, column2, column3)VALUES (va
MySQL中insert和update怎么使用
2024-05-15

MySQL中select insert语句怎么使用

在MySQL中,SELECT INSERT语句用于将SELECT查询的结果插入到另一个表中。其语法如下:INSERT INTO table_name (column1, column2, ...)SELECT column1, colu
MySQL中select insert语句怎么使用
2024-04-09

MySQL中的insert set 和 insert values用法

目录insert set 和 insert values用法insert valuesinsert setmysql 语法 insert into setinsert set 和 insert values用法insert values
2022-08-18

mysql中insert into语句的使用方法

小编给大家分享一下mysql中insert into语句的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Mysql数据库对于插入数据有专门的语句,就是in
2023-06-14

mysql中insert的使用方法是什么

在MySQL中,插入数据使用INSERT INTO语句。语法格式如下:INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, valu
mysql中insert的使用方法是什么
2024-04-09

MySQL中 INSERT INTO 和 SELECT 的组合使用

INSERT INTO 和 SELECT 的组合使用 通过 此SQL,您可以从一个表复制信息到另一个表。INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。语法从一个表中复制所有的列插入到另一个已存在的表
MySQL中 INSERT INTO 和 SELECT 的组合使用
2018-07-13

MySQL insert命令怎么使用

在MySQL中,INSERT命令用于将新数据插入到数据库表中。它的基本语法如下:```sqlINSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...
2023-09-27

MySQL中如何用insert语句在表中添加数据

在MySQL中,可以使用INSERT INTO语句来向表中添加数据。INSERT INTO语句的基本语法如下:INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);其中,表名
2023-10-23

MySQL insert语句怎么使用

MySQL的INSERT语句用于向数据库表中插入新的行。以下是使用INSERT语句的一般语法:INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1,
2023-10-23

pandas如何使用insert插入一列

这篇文章将为大家详细讲解有关pandas如何使用insert插入一列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。把value插入dataframe的指定位置loc中,若插入的数据value已在DataF
2023-06-14

如何优化MySQL的INSERT锁

要优化MySQL的INSERT锁,可以考虑以下几个方面:使用合适的存储引擎:不同的存储引擎对INSERT操作的锁处理方式不同。InnoDB存储引擎支持行级锁,可以减少锁冲突的概率,提高并发性能。如果表的读操作较多,可以考虑使用MyISAM存
如何优化MySQL的INSERT锁
2024-08-14

编程热搜

目录