2024年3月21日发(作者:)
oracle insert into select用法
Oracle INSERT INTO SELECT语法用于从一个表或多
个表中插入数据到另一个表中。它是一种灵活的方法,可
以将数据从一个表复制到另一个表中。
通常,INSERT INTO SELECT 语句需要以下三个部分:
1. INSERT INTO 表示要插入新记录的表。
2. SELECT 子句用于从一个或多个表中检索数据,即
要插入新表中的数据。
3. WHERE 子句用于定义查询条件,以约束检索出的记
录。
基本语法
INSERT INTO table_name (column1, column2, ...)
SELECT expression1, expression2, ... FROM
source_table WHERE condition;
在上面的 INSERT INTO SELECT 语法中:
1. table_name 是要插入新记录的表。
2. column1,column2 是要插入表中的列名。
3. expression1,expression2 是要检索的表达式。
4. source_table 是要从中检索数据的表。
5. condition 是一个条件,用于约束检索出的记录。
例子
让我们看一个 Oracle INSERT INTO SELECT 示例,以
便了解如何使用这个语句。
假设有两个表“orders”和“order_items”,分别具
有以下结构:
表 orders order_id customer_name order_date
------------------------------------ 101
John Doe 2018-01-15 102 David Smith
2018-02-20
表 order_items order_id item_name price ---
-------------------------- 101 Pen
5.00 101 Pencil 3.00 102 Eraser
2.00
现在,假设您想从 orders 表中检索所有订单,并将
其插入到 order_items 表中。您可以使用以下 INSERT
INTO SELECT 语句来实现:
INSERT INTO order_items (order_id, item_name,
price) SELECT order_id, 'Book', 10.00 FROM orders
WHERE order_id=101;
在上面的示例中,我们从 orders 表中检索了
order_id = 101 的所有记录,并将其中的 order_id、
item_name 和 price 字段插入到 order_items 表中。
INSERT INTO SELECT 常用用法
在实际应用中,INSERT INTO SELECT 语句可以用于多
种用途。
1. 将一个表的数据插入到另一个表中
对于将一个表中的数据插入到另一个表中,可以使用
以下 INSERT INTO SELECT 语句:
INSERT INTO table2 SELECT * FROM table1;
在上面的示例中,我们从 table1 中检索了所有字
段,然后将它们插入到 table2 中。
2. 将多个表的数据插入到另一个表中
要将多个表的数据插入到另一个表中,可以使用以下
INSERT INTO SELECT 语句:
INSERT INTO table2 SELECT col1, col2,... FROM
table1 UNION ALL SELECT col1, col2,... FROM table2
UNION ALL SELECT col1, col2,... FROM table3;
在上面的示例中,我们从 table1、table2 和 table3
中检索了相同的列名,然后将它们插入到 table2 中。
3. 将 SELECT 结果插入到表中
要将 SELECT 结果插入到表中,可以使用以下 INSERT
INTO SELECT 语句:
INSERT INTO table1(col1, ) SELECT
expression1, expression2,... FROM table2 WHERE
condition;
在上面的示例中,我们从 table2 中检索了表达式,
然后将其插入到 table1 中。
4. 使用子查询
要使用子查询,可以使用以下 INSERT INTO SELECT
语句:
INSERT INTO table1(col1, ) SELECT
expression1, expression2,... FROM (SELECT col1,
FROM table2) AS alias WHERE condition;
在上面的示例中,我们从子查询中检索了表达式,然
后将其插入到 table1 中。
总结
Oracle INSERT INTO SELECT 语句可以用于将数据从
一个表复制到另一个表中。它是一种灵活的方法,可以用
于将一个表的数据插入到另一个表中,也可以用于将多个
表的数据插入到另一个表中,甚至可以用于将 SELECT 结
果插入到表中,以及使用子查询。


发布评论