SQL insert into语句写法讲解
方式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的优势)
到此这篇关于SQL insert into语句写法讲解的文章就介绍到这了,更多相关SQL insert into语句内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/wangqingbo0829/article/details/52353085
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。