oracle insert 方法 分类

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;


  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值