数据库操作使用 sql批量插入添加数据命令方法分享
下面我将详细讲解 SQL 中三种批量插入数据的方法:
一、INSERT INTO SELECT
使用 INSERT INTO SELECT 的方法可以把一个表中已有的数据批量插入到另一个表中。具体步骤如下:
- 确定目标表和原始表
- 使用 SELECT 语句获取需要插入的数据
- 将获取到的数据插入到目标表中
示例:
我们需要将一个从另一个表中获取到的学生信息批量插入到另一个表中。
- 确定目标表和原始表:
- 目标表:student_info
原始表:student
- 使用 SELECT 语句获取需要插入的数据:
SELECT
student_name,
student_age,
student_gender
FROM
student;
- 将获取到的数据插入到目标表中:
INSERT INTO
student_info(student_name, student_age, student_gender)
SELECT
student_name,
student_age,
student_gender
FROM
student;
二、INSERT INTO VALUES
使用 INSERT INTO VALUES 的方法可以一次性插入多行数据,具体步骤如下:
- 确定表名和要插入的列名
- 编写 VALUES 子句,并按照列的顺序指定值
- 执行 SQL 语句
示例:
我们需要将多个学生的信息插入到 student_info 表中。
- 确定表名和要插入的列名:
表名:student_info
列名:student_name, student_age, student_gender
- 编写 VALUES 子句,并按照列的顺序指定值:
INSERT INTO
student_info(student_name, student_age, student_gender)
VALUES
('张三', 20, '男'),
('李四', 22, '男'),
('王五', 21, '女');
- 执行 SQL 语句
三、INSERT INTO SET
使用 INSERT INTO SET 的方法可以一次性插入多行数据,并且可以指定列的值。具体步骤如下:
- 确定表名
- 使用 SET 子句指定列的值
- 执行 SQL 语句
示例:
我们需要将多个学生的信息插入到 student_info 表中,并且其中一名学生的年龄有误,需要进行修改。
- 确定表名:
表名:student_info
- 使用 SET 子句指定列的值:
INSERT INTO
student_info(student_name, student_age, student_gender)
VALUES
('张三', 20, '男'),
('李四', 22, '男'),
('王五', 21, '女'),
('赵六', 18, '女'),
('钱七', 23, '男'),
('孙八', 19, '女')
ON DUPLICATE KEY UPDATE
student_age = VALUES(student_age);
在以上示例中,使用 ON DUPLICATE KEY UPDATE 来指定当插入的数据已经存在时执行更新操作。这里我们只对 student_age 进行更新。
最后执行 SQL 语句即可完成批量插入数据的操作。