SQL插入多条记录的5种高效方法

大家好!在这篇文章中,我们将着重介绍在SQL中插入多行数据的方法。

需要使用SQL插入多行数据的查询

SQL插入查询用于将数据插入到特定表的列中。

普通的SQL INSERT语句一次只能插入一行数据。如果我们需要一次性插入多行数据,使用单行插入的方式将会效率低下。

因此,为了提高执行效率,我们需要采用特殊的SQL INSERT语法,使其能够一次性插入多行数据。

在理解了在SQL中插入多行数据的需求后,让我们开始具体实现。


传统的SQL插入查询用于插入多条记录

传统的SQL INSERT方法需要为每行数据执行一次插入语句。在这种技术中,我们需要多次编写并执行INSERT语句,才能将多行数据插入到表中。

这种方法的主要缺点是执行多次插入语句所带来的性能开销,尤其是在需要插入大量数据时。

create table Info(id integer, Cost integer, city varchar(200));
insert into Info(id, Cost,city) values(1, 100,"Pune");
insert into Info(id, Cost,city) values(2, 50, "Satara");
insert into Info(id, Cost,city) values(3, 65,"Pune");
insert into Info(id, Cost,city) values(4, 97,"Mumbai");
insert into Info(id, Cost,city) values(5, 12,"USA");
select * from Info;

输出结果:

1	100	Pune
2	50	Satara
3	65	Pune
4	97	Mumbai
5	12	USA

使用INSERT-SELECT-UNION查询批量插入多条记录

在上面的示例中,我们使用了传统的INSERT INTO方法插入多条记录。但观察代码可以发现,”INSERT INTO”子句被重复了多次,这导致了代码冗余。

为了解决这个问题,我们可以使用INSERT-SELECT-UNION查询来一次性插入多行数据,提高代码的简洁性和执行效率。

SQL UNION操作符结合INSERT语句,可以让我们通过单个查询插入由SELECT语句检索的多行数据。

create table Info(id integer, Cost integer);
INSERT INTO Info (id, Cost)  
SELECT 1, '123'  
UNION ALL   
SELECT 2, '234'  
UNION ALL  
SELECT 3, '456';  

select * from Info;

输出结果:

1	123
2	234
3	456

批量插入多条记录的行构建

SQL INSERT查询是一种使用方法,在其中我们使用一个单独的插入查询在单个执行点内插入多条记录。

语法:

INSERT INTO Table (columns)  
VALUES (val1, val2, valN); 

下面是一个示例:

create table Info(id integer, Cost integer,city nvarchar(200));
INSERT INTO Info (id,Cost,city)  
VALUES (1,200, 'Pune'), (2, 150,'USA'), (3,345, 'France');  

select * from Info;

输出结果:

1	200	Pune
2	150	USA
3	345	France

结论

通过本教程,我们已经完成了这个主题的学习。在此过程中,我们介绍了三种不同的技术来同时向表格中插入多条记录的数据值。

如果您遇到任何疑问,请随时在评论区留言。

欲了解更多与SQL相关的文章,请访问SQL JournalDev。


参考资料

  • SQL Insert into multiple rows – StackOverFlow
bannerAds