sql-从一个或多个表中向一个表中插入 多行【表数据复制】

本文介绍了如何使用SQL的INSERT语句结合SELECT查询来从一个或多个表中批量插入数据到目标表。这种方法适用于需要迁移数据或复制表结构的情况。示例包括了基于特定条件选择源数据以及创建新表的尝试,但注意MySQL不支持SELECTINTOOUTFILE语法,可能需要在Oracle等其他数据库系统中使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

INSERT还可以将SELECT语句查询的结果插入到表中,此时不需要把每一条记录的值一个一个输入,只需 要使用一条INSERT语句和一条SELECT语句组成的组合语句即可快速地从一个或多个表中向一个表中插入 多行。 基本语法格式如下:

1. insert into ...select ..from..

INSERT INTO 目标表名
(tar_column1 [, tar_column2, …, tar_columnn])
SELECT
(src_column1 [, src_column2, …, src_columnn])
FROM 源表名
[WHERE condition]
  • 在 INSERT 语句中加入子查询。
  • 不必书写 VALUES 子句。
  • 子查询中的值列表应与 INSERT 子句中的列名对应。

举例:

INSERT INTO emp2
SELECT *
FROM employees
WHERE department_id = 90;

 或者

INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT employee_id, last_name, salary, commission_pct
FROM employees
WHERE job_id LIKE '%REP%';

2. select ..into ...from

试了一下,好像mysql不支持,估计得用Oracle。

语法:

SELECT *
INTO newtable [IN externaldb]    --externaldb外部数据库
FROM table1

实例:

SELECT *
INTO book1_copy1
FROM book1
WHERE id > 1;
SELECT *
INTO book1_copy1
FROM book1
> 1327 - Undeclared variable: book1_copy1
> 时间: 0.011s


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值