INSERT语句多表插入。简而言之:用一条插入语句将记录插入到多个表中。
创建表
CREATE TABLE test_1(
part_id number,
part_char varchar2(30)
);
INSERT INTO test_1 VALUES(100, 'a');
INSERT INTO test_1 VALUES(200, 'b');
INSERT INTO test_1 VALUES(300, 'c');
INSERT INTO test_1 VALUES(400, 'd');
CREATE TABLE test_2 as
SELECT * FROM test_1
WHERE 1=2;
CREATE TABLE test_3 as
SELECT * FROM test_1
WHERE 1=2;
test_1表中有4条数据,test_2和test_3表中没有数据。
第一种插入:
/*全表插入*/
INSERT ALL
INTO test_2 VALUES(part_id, part_char)
INTO test_3 VALUES(part_id, part_char)
SELECT part_id, part_char FROM test_1;
执行过后会将test_1表中的4条数据分别插入test_2和test_3表中。
/*加条件插入*/
DELETE FROM test_2;
DELETE FROM test_3;
INSERT ALL
WHEN part_id<250 THEN INTO test_2 VALUES(part_id, part_char)
WHEN part_id>250 THEN INTO test_3 VALUES(part_id, part_char)
SELECT part_id, part_char FROM tset_1;
执行过后会将test_1表中<250的数据插入test_2,>250的插入test_3。
INSERT ALL
WHEN part_id<150 THEN INTO test_2 VALUES(part_id, part_char)
ELSE INTO test_3 VALUES(part_id, part_char)
SELECT part_id, part_char FROM test_1;
和上面差不多。
第二种插入:
DELETE FROM test_2;
DELETE FROM test_3;
INSERT FIRST
WHEN part_id>300 THEN INTO test_2 VALUES(part_id, part_char)
WHEN part_id>100 THEN INTO test_3 VALUES(part_id, part_char)
SELECT part_id, part_char FROM test_1;
SQL> SELECT * FROM test_1;
PART_ID PART_CHAR
---------- ------------------------------
100 a
200 b
300 c
400 d
SQL> SELECT * FROM test_2;
PART_ID PART_CHAR
---------- ------------------------------
400 d
SQL> SELECT * FROM test_3;
PART_ID PART_CHAR
---------- ------------------------------
200 b
300 c
从结果中可以看出,此种插入源表中的每条记录只会被插入一次,test_1表中大于300的数据只有一条,即part_id=400的记录,同时满足于part_id>300和part_id>100,由于此条记录已插入到test_2中,所以在test_3表中不再被插入。
--Over--
分享到:
相关推荐
表结构的创建比较简单,但是表的数据量太大,一时也想不到怎么把sqlserver表数据复制到oracle中,于是请教公司主管,用存储过程实现可以查询出所有数据的insert脚本,在oracle库中创建好表,直接把sqlserver中的...
在Oracle数据库中,进行多表关联的批量插入、批量更新和批量删除操作是常见的数据库管理任务,尤其是在处理大量数据时,这些操作能显著提高效率并减少资源消耗。本文将详细探讨这三个方面,并通过实例代码来展示如何...
此方法将大量数据一次性加载到PL/SQL表变量中,然后逐条插入。 七、文件导入 在实际操作中,可能需要从外部文件(如`.sql`文件)导入数据。比如`ts_code_20110316.sql`和`ts_msg_20110316.sql`这样的文件,通常包含...
在Oracle SQL中,可以使用INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN来合并来自两个或更多表的数据。JOIN操作基于不同表之间的关联列。 八、子查询 子查询是在SELECT、FROM或WHERE子句中嵌套的查询,用于返回...
1. **Oracle数据库结构**:Oracle数据库由多个组件组成,包括表空间、数据文件、控制文件、重做日志文件等。表空间是存储数据的主要单位,数据文件则实际存储了数据库的数据。控制文件记录了数据库的元数据,重做...
INSERT语句是SQL语言的基本组成部分,用于向数据库表中插入新的数据记录。通过生成这些语句,我们可以方便地在目标环境中重新创建源数据库中的数据状态,而无需进行完整数据库的导入导出操作,这对于测试环境或数据...
在Oracle数据库中插入图片涉及到BLOB(Binary Large Object)数据类型,这是Oracle用来存储大量二进制数据,如图片、音频或视频文件等的一种方式。本文将详细介绍如何在Oracle数据库中插入、查询和管理图片。 首先...
1. **SQL基础**:Oracle SQL遵循SQL标准,包括基本的SELECT语句用于查询数据,INSERT用于插入新记录,UPDATE用于修改现有记录,以及DELETE用于删除记录。理解这些基本操作是学习Oracle SQL的第一步。 2. **子查询**...
SQL的基本组成部分包括SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)和DDL(数据定义语言),如CREATE(创建)、ALTER(修改)和DROP(删除)等。在Oracle SQL中,我们还可以使用DML(数据操纵...
3. **SELECT查询**:Oracle SQL的查询语法丰富,可以使用WHERE子句进行条件过滤,GROUP BY和HAVING子句进行分组统计,ORDER BY子句进行排序,以及JOIN操作连接多个表。 4. **视图**:视图是虚拟表,基于一个或多个...
Oracle 多表 Update 语句详解 在 Oracle 中,Update 语句是数据库操作中的重要组成部分。 Update 语句可以对数据库中的数据进行修改,更新和插入。今天,我们将讨论 Oracle 中的 Update 语句,包括 Update 语句的...
Data row to insert sql是一个小的工具软件,可以将数据库表中指定数据转换成相应的insert sql语句。目前支持的数据库类型为oracle,db2,ms sql server。 目前还有一些缺陷,还有待完善,具体如下: 1、对ms sql ...
### Oracle SQL*Plus 口袋参考手册第二版关键知识点概览 #### 1.1 引言 本书《Oracle SQL*Plus Pocket Reference, 2nd Edition》是一部针对Oracle SQL*Plus及其常用SQL查询和数据操作语句的快速参考指南。作者...
1. **SQL基础知识**:本书首先介绍了SQL的基本概念,包括数据定义(DDL)、数据操纵(DML)和数据控制(DCL)语句,如CREATE TABLE用于创建表,INSERT用于插入数据,UPDATE用于更新数据,DELETE用于删除数据,以及...
Oracle SQL和PL/SQL是两种在Oracle数据库管理系统中广泛使用的编程语言,它们在数据库管理和开发领域扮演着核心角色。Oracle SQL是SQL标准的一个实现,主要用于查询、操作和管理Oracle数据库中的数据,而PL/SQL是一...
可以在关键表上设置触发器,每当有数据插入或更新时自动记录相关操作到审计日志表中,从而方便后续的数据审计工作。 #### 四、总结 《Pro Oracle SQL》这本书不仅全面介绍了 Oracle SQL 的基础知识,还深入探讨了...
这包括了解SQL(结构化查询语言)的基本语法,如SELECT语句用于查询数据,INSERT语句用于插入新记录,UPDATE语句用于修改现有记录,以及DELETE语句用于删除记录。此外,还会介绍如何使用FROM子句指定数据源,WHERE...
3. 数据操作语言(DML):DML用于执行数据库中的数据操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)和查询(SELECT)数据。 4. 数据查询(SELECT语句):SELECT语句是进行数据查询的核心,它包含了多种...
INSERT语句是用来向数据库表中插入新记录的基本SQL命令。它的基本格式如下: ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ``` Oracle导出INSERT语句工具可能包含以下特性: 1. **选择表**:...