oracle中merge into简单实例


merge info用法,简单总计就是“有则更新,无则插入”


1、创建学生表
create table  t_B_info_student   (
  s_no varchar2(10),
  s_name varchar2(100),
  s_sex varchar2(10),
  create_by varchar2(10),
  create_date date
); 

2、添加学生信息
begin
  for i in 1 .. 10 loop
    insert into  t_B_info_student
      (s_no, s_name, s_sex, create_by, create_date)
    values
      ('N' || lpad(i, 9, 0), '姓名' || i,decode(mod(i,2),0,'男','女') , 'admin', sysdate);
  end loop;
end ;  

3、查询学生信息
select * from t_B_info_student ; 
  S_NO S_NAME S_SEX CREATE_BY CREATE_DATE
1 N000000001 姓名1 admin 2016/11/11 10:17:53
2 N000000002 姓名2 admin 2016/11/11 10:17:53
3 N000000003 姓名3 admin 2016/11/11 10:17:53
4 N000000004 姓名4 admin 2016/11/11 10:17:53
5 N000000005 姓名5 admin 2016/11/11 10:17:53
6 N000000006 姓名6 admin 2016/11/11 10:17:53
7 N000000007 姓名7 admin 2016/11/11 10:17:53
8 N000000008 姓名8 admin 2016/11/11 10:17:53
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`MERGE INTO` 是 Oracle 数据库的一种语法,用于将一个表的数据合并到另一个表。它可以根据某些条件来判断是执行插入操作还是更新操作。 `MERGE INTO` 语句的基本语法如下: ``` MERGE INTO table1 USING table2 ON (condition) WHEN MATCHED THEN UPDATE SET column1 = value1, column2 = value2,... WHEN NOT MATCHED THEN INSERT (column1, column2,...) VALUES (value1, value2,...); ``` 其,`table1` 是要被更新或插入数据的目标表,`table2` 是要合并到目标表的源表,`condition` 是用于匹配目标表和源表记录的条件。 当匹配成功时,`UPDATE` 子句将更新目标表的记录。`WHEN NOT MATCHED` 子句将在目标表没有匹配记录时执行插入操作。 以下是一个简单的例子,假设有两个表 `employees` 和 `employee_updates`,需要将 `employee_updates` 的数据合并到 `employees` 表: ``` MERGE INTO employees e USING employee_updates eu ON (e.employee_id = eu.employee_id) WHEN MATCHED THEN UPDATE SET e.salary = eu.salary WHEN NOT MATCHED THEN INSERT (e.employee_id, e.first_name, e.last_name, e.salary) VALUES (eu.employee_id, eu.first_name, eu.last_name, eu.salary); ``` 以上语句将根据 `employee_id` 来匹配 `employees` 表和 `employee_updates` 表的记录,如果匹配成功,则将 `employees` 表相应记录的 `salary` 字段更新为 `employee_updates` 表相应记录的 `salary` 字段。如果匹配不成功,则将 `employee_updates` 表的记录插入到 `employees` 表

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值