📅  最后修改于: 2023-12-03 14:47:35.085000             🧑  作者: Mango
在SQL中,INSERT语句是用于向表中插入新行的常用命令。但当需要向表中插入多行时,多次写INSERT语句是繁琐且低效的。因此,SQL提供了多种方式以INSERT多行的方式增加数据。
使用UNION ALL可将多个INSERT语句合并成一个语句。该语句将多个SQL查询的结果集合并成一个结果集。以下是一个使用UNION ALL方式INSERT多行的示例:
INSERT INTO table (column1, column2)
SELECT 'value1', 'value2'
UNION ALL
SELECT 'value3', 'value4'
UNION ALL
SELECT 'value5', 'value6'
该语句将向表table中插入三行数据,每行数据有两个值。其中,'value1'和'value2'插入第一行,'value3'和'value4'插入第二行,'value5'和'value6'插入第三行。
除了使用UNION ALL方式外,还可使用INSERT语句及子查询方式INSERT多行。该方法的基本语法如下:
INSERT INTO table (column1, column2)
SELECT column1_value, column2_value FROM table2
其中,table2为当前数据库中已存在的表,column1_value和column2_value为table2表中的列名。该语句将从table2表中选择指定的列,将其值插入到表table的指定列中。
值得一提的是,VALUES语句也可用于INSERT多行。该语句的基本语法如下:
INSERT INTO table (column1, column2) VALUES
('value1', 'value2'),
('value3', 'value4'),
('value5', 'value6')
该语句将向表table中插入三行数据,每行数据有两个值。其中,第一行数据的第一个值为'value1',第二个值为'value2',以此类推。
总之,无论是使用UNION ALL方式、INSERT语句及子查询、还是VALUES语句,均可用于SQL INSERT多行的情景。在实际开发中,可以根据自己的需求选择适合自己的方式,以提高代码效率。