前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >insert into 语句的四种写法

insert into 语句的四种写法

作者头像
全栈程序员站长
发布2022-09-14 13:24:26
7510
发布2022-09-14 13:24:26
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

方式1、 INSERT INTO t1(field1,field2) VALUE(v001,v002);

明确只插入一条Value

方式2、 INSERT INTO t1(field1,field2) VALUES(v101,v102),(v201,v202),(v301,v302),(v401,v402);

在插入批量数据时 方式2 优于 方式1.

【特注】当 id 为自增,即 id INT PRIMARY KEY AUTO_INCREMENT 时,执行 insert into 语句,需要将除 id 外的所有 field 列举出来(有没有感觉,好不方便,期待 mysql 提供一个简便方法来标记这种情况,因为在早测试数据的时候,普遍会使用,而列举出除 id 外所有字段,真有麻烦感)。

方式3.1、 INSERT INTO t2(field1,field2) SELECT colm1,colm2 FROM t1 WHERE ……

这里简单说一下,由于可以指定插入到 talbe2 中的列,以及可以通过相对较复杂的查询语句进行数据源获取,可能使用起来会更加的灵活一些,但我们也必须注意,我们在指定目标表的列时,一定要将所有非空列都填上,否则将无法进行数据插入,还有一点比较容易出错的地方就是,当我们写成如下简写格式:

方式3.2、 INSERT INTO t2 SELECT colm1,colm2,…… FROM t1

此时,我们如果略掉了目标表的列的话,则默认会对目标表的全部列进行数据插入,且 SELECT 后面的列的顺序 必须和目标表中的列的定义顺序完全一致 才能完成正确的数据插入,这是一个很容易被忽略的地方,值得注意。

【特注】由于插入操作只粗略地对表 t1、t2 按顺序对所有字段进行 [数据类型] 检查,不对 [字段名] 核对。这是把双刃剑,既提供便利,又存在可能因粗心造成风险。在使用中,需确认顺序,使用中建议使用 [方式3.1] 或 [方式4].

方式4、INSERT INTO 表名 SET 列名1 = 列值1,列名2=列值2,…;(博友提供,感谢)

不过用INSERT INTO SET这种方式,不能批量增加数据。(参考:mysql数据库中插入数据INSERT INTO SET的优势

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159651.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方式1、 INSERT INTO t1(field1,field2) VALUE(v001,v002);
  • 方式2、 INSERT INTO t1(field1,field2) VALUES(v101,v102),(v201,v202),(v301,v302),(v401,v402);
  • 方式3.1、 INSERT INTO t2(field1,field2) SELECT colm1,colm2 FROM t1 WHERE ……
  • 方式3.2、 INSERT INTO t2 SELECT colm1,colm2,…… FROM t1
  • 方式4、INSERT INTO 表名 SET 列名1 = 列值1,列名2=列值2,…;(博友提供,感谢)
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档