Oracle insert多表插入語句

2021-10-05 22:54:03 字數 1973 閱讀 7486

oracle 多表插入

**如下:

create table emp1 as select empno, ename, job from emp where 1=2

;create table emp2 as select empno, ename, deptno from emp where 1=2

;--沒有條件insert

insert all

into emp1(empno, ename, job) values (empno, ename, job) --可以指定emp1部分字段插入

into emp2(empno, ename, deptno)values (empno, ename, deptno)

select empno, ename, job, deptno from emp

--有條件的insert all

insert all

when job in('salesman', 'manager')

then into emp1(empno, ename, job) values(empno, ename, job) --可以指定emp1部分字段插入

when deptno in('20', '30')

then into emp2(empno, ename, deptno) values(empno, ename, deptno)

select empno, ename, job, deptno from emp

--insert first

--first 語句中,當第乙個表符合條件後,第二個表就不會再插入對應的行,

--表emp2中不會有與emp1相同的資料存在,這就是與insert all的不同之處

insert first

when job in('salesman', 'manager')

then into emp1(empno, ename, job) values(empno, ename, job) --可以指定emp1部分字段插入

when deptno in('20', '30')

then into emp2(empno, ename, deptno) values(empno, ename, deptno)

select empno, ename, job, deptno from emp

--轉置insert

create table t2(d varchar2(10), des varchar2(50));

create table t1 as

select '熊樣,精神不佳' as d1,

'貓樣,溫馴聽話' as d2,

'狗樣,神氣活現' as d3,

'鳥樣,嚮往明天' as d4,

'花樣,願你快樂像花兒一樣' as d5

from dual;

insert all

into t2(d, des) values('周一', d1)

into t2(d, des) values('周二', d2)

into t2(d, des) values('週三', d3)

into t2(d, des) values('周四', d4)

into t2(d, des) values('周五', d5)

select d1, d2, d3, d4, d5 from t1;

select * from t2

--等價於

insert into t2(d,des)

select '周一', d1 from t1 union all

select '周二', d1 from t1 union all

select '週三', d1 from t1 union all

select '周四', d1 from t1 union all

select '周五', d1 from t1 union all

**均摘自書本

oracle insert的擴充套件

向乙個表發散彈槍 insert into table name column column.select statement 每次只能插入乙個表,但效能上比寫多條insert語句要高。另外,oracle還提供create table table name as select as不可少!實現直接建立...

oracle insert的擴充套件

向乙個表發散彈槍 insert into table name column column.select statement 每次只能插入乙個表,但效能上比寫多條insert語句要高。另外,oracle還提供create table table name as select as不可少!實現直接建立...

SQL 使用一條INSERT語句完成多表插入

這是一條顛覆常規的插入方法,一條insert語句可以完成向多張表的插入任務。小小地展示一下這種插入方法。1.建立表t並初始化測試資料,此表作為資料來源。sec ora10g create table t x number 10 y varchar2 10 sec ora10g insert into...