insertinto语句的四种写法
⽅式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);
insert语句字段顺序在插⼊批量数据时 ⽅式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这种⽅式,不能批量增加数据。(参考:)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论