多表插入語句

2021-12-30 02:27:03 字數 3293 閱讀 3313

多表插入語句分為以下四種:

①無條件insert。

②有條件insert all。

③轉置insert。

④有條件insert first。

首先建立測試用表:

create table emp(

empno number(4),

ename varchar2(10),

job varchar2(9),

deptno number(2)

);insert into emp values(7500, 'a', 'salesman', 10);

insert into emp values(7501, 'b', 'manager', 20);

insert into emp values(7502, 'c', 'clerk', 30);

insert into emp values(7503, 'd', 'clerk', 10);

insert into emp values(7504, 'e', 'salesman', 20);

insert into emp values(7505, 'f', 'manager', 30);

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;

select * from emp;

查詢語句執行結果如下:

一.無條件insert

sql**如下:

insert all

into emp1(empno, ename, job) values(empno, ename, job)

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

select empno, ename, job, deptno from emp where deptno = 10;

select * from emp1;

select * from emp2;

第一條查詢語句的執行結果如下:

第二條查詢語句的執行結果如下:

因為沒有加條件,所以會同時向兩個表中插入資料,且兩個表中插入的條數一樣。

二.有條件insert all

sql**如下:

delete emp1;

delete emp2;

insert all

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

into emp1(empno, ename, job) values(empno, ename, job)

when deptno in (10, 20) then

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

select empno, ename, job, deptno from emp;

select * from emp1;

select * from emp2;

第一條查詢語句的執行結果如下:

第二條查詢語句的執行結果如下:

當增加條件後,就會按條件插入,如empno=7500等資料在兩個表中都有。

三.有條件insert first

sql**如下:

delete emp1;

delete emp2;

insert first

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

into emp1(empno, ename, job) values(empno, ename, job)

when deptno in (10, 20) then

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

select empno, ename, job, deptno from emp;

select * from emp1;

select * from emp2;

第一條查詢語句的執行結果如下:

第二條查詢語句的執行結果如下:

insert first語句中,當第乙個表符合條件後,第二個表將不再插入對應的行,表emp2中不再有與表emp1相同的資料,這就是insert first 與 insert all的不同之處。

四.轉置insert

轉置insert與其說是乙個分類,不如算作「insert all」的乙個用法。

建立測試用表:

create table t1 (

c1 varchar2(10),

c2 varchar2(10)

);create table t2 as

select 'a' as d1,

'b' as d2,

'c' as d3

from dual;

sql**如下:

insert all

into t1(c1, c2) values('1', d1)

into t1(c1, c2) values('2', d2)

into t1(c1, c2) values('3', d3)

select d1, d2, d3 from t2;

select * from t1;

查詢語句執行結果如下:

可以看到,裝置insert的實質就是把不同列的資料插入到同乙個表的不同行中。

Oracle insert多表插入語句

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 沒有條件in...

oracle之多表插入語句

1 無條件insert 首先建一張表 再建立如下兩張表 create table emp1 id varchar2 4 name varchar2 50 sal number 7,2 create table emp2 id varchar2 4 name varchar2 50 money num...

四 插入語句

向表中新增乙個新記錄,你要使用sql insert 語句。這裡有乙個如何使用這種語句的例子 insert mytable mycolumn values some data 這個語句把字串 some data 插入表mytable的mycolumn欄位中。將要被插入資料的字段的名字在第乙個括號中指定...