SQL的insert into如何执行多行语句

在SQL中,INSERT INTO语句用于向数据库表中插入新的行。当需要在数据库表中插入多行数据时,可以使用INSERT INTO语句的扩展语法来一次插入多行数据,而不是逐条插入。下面将详细介绍如何执行多行语句的INSERT INTO。
插入多行数据的语法
在SQL中,插入多行数据可以使用INSERT INTO语句的扩展语法,主要包括两种方式:使用多个VALUE子句和使用INSERT INTO语句的SELECT子句。
插入多个VALUE子句
在使用INSERT INTO语句插入多行数据时,可以在一个INSERT INTO语句中指定多个VALUE子句,每个VALUE子句对应一行数据。具体语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1_row1, value2_row1, value3_row1, ...),
(value1_row2, value2_row2, value3_row2, ...),
(value1_row3, value2_row3, value3_row3, ...),
...
其中,table_name是要插入数据的表名,后面括号内的column1, column2, column3, …是要插入数据的列名,每个VALUE子句对应一行数据,括号内的value1_row1, value2_row1, value3_row1, …分别是每一行对应列的值。
使用INSERT INTO语句的SELECT子句
除了使用多个VALUE子句插入多行数据外,还可以使用INSERT INTO语句的SELECT子句来插入多行数据。具体语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
SELECT value1, value2, value3, ...
UNION ALL
SELECT value1, value2, value3, ...
UNION ALL
SELECT value1, value2, value3, ...
...
其中,table_name是要插入数据的表名,后面括号内的column1, column2, column3, …是要插入数据的列名,每个SELECT子句对应一行数据,括号内的value1, value2, value3, …分别是每一行对应列的值。使用UNION ALL将多个SELECT子句连接在一起。
示例代码
接下来,将通过示例代码演示如何执行多行语句的INSERT INTO。
插入多个VALUE子句示例
假设有一个名为students的表,包含id, name, age三个字段,现在要向该表中插入多行学生的信息。可以使用以下INSERT INTO语句:
INSERT INTO students (id, name, age)
VALUES (1, 'Alice', 20),
(2, 'Bob', 22),
(3, 'Charlie', 21),
(4, 'David', 23);
执行以上语句后,students表中将插入四行数据。
使用INSERT INTO语句的SELECT子句示例
假设有一个名为classes的表,包含class_id, class_name两个字段,现在要向该表中插入多行班级的信息。可以使用以下INSERT INTO语句:
INSERT INTO classes (class_id, class_name)
SELECT 101, 'English' UNION ALL
SELECT 102, 'Math' UNION ALL
SELECT 103, 'History';
执行以上语句后,classes表中将插入三行数据。
总结
通过以上介绍和示例代码,我们了解了在SQL中如何执行多行语句的INSERT INTO。使用多个VALUE子句或使用INSERT INTO语句的SELECT子句都可以实现一次性插入多行数据的操作,提高了效率并减少了重复的SQL语句编写。在实际应用中,根据不同场景选择适合的方式来插入多行数据,可以更加灵活高效地操作数据库。
极客教程