oracle insert 方法 分类

来源:互联网 发布:2g神优化单机游戏 编辑:程序博客网 时间:2024/06/05 00:12

1、最基本的insert --单表单行插入

insert into tablename(列名。。。) values(value。。。)

2.单表多行插入

1. insert into select --将select 的结果集插入到目标表中 select 可以是你可以写出来的任意select

insert into table select * from dual;全字段插入

insert into table(col。。。)select * from dual ;对应字段插入



2. merge into 满足条件的update 不满足的insert into

格式:
MERGE INTO 要变更的表 A
USING 数据来源表 B
ON (2表的关联条件 )---括号必须有
WHEN MATCHED THEN  ---满足关联条件的 则 进行更新
UPDATE SET A.列=B.列
WHEN NOT MATCHED THEN ---未满足关联条件的  则 进行插入
INSERT (A表中的列) VALUES(B表对应的列);


3.多表多行插入 insert all 

1、无条件 insert all -- 多表多行插入(将a 表的数据插入到b表和c表中)

insert all

into b(b表的目标列) values(a表列)

into c(c表的目标列) values(a表列)

select 列。。。 from a;


2、有条件的insert

语法:

insert [all | first]

when condition then insert_into_clause values_clause

[when condition then] [insert_into_clause values_clause]

.......

[else] [insert_into_clause values_clause]

Subquery;

例子:

insert all

when id>5 then into test(id,name) values(id,name)

when id<>2 then into test2(id) values (id)

else into test3 valuse(name)

select id,name from table;

使用all关键字时,oracle 会将扫描所有判断条件 只要满足就执行之后的into语句

使用first关键字时,oracle会从上向下一次判断满足就执行之后的into语句然后跳出此次插入(之后执行最先满足条件的那个into)


3、旋转insert ---将一个表的多个列的数据放到另一表的1个列中

insert all

into table1 values(year,month,aaa)

into table1 values(year,month,bbb)

into table1 values(year,month,ccc)

select year,month,aaa,bbb,ccc from table;


1 0
原创粉丝点击