【SQL高级知识】MERGE INTO语句

MERGE INTO语句的案例:

假设我们有两个表格,一个是"users"表格,包含了用户的ID、姓名和地址信息;另一个是"users_updates"表格,包含了用户的ID和更新后的地址信息。我们想要使用MERGE INTO语句将"users_updates"表格中的地址信息合并到"users"表格中。

首先,我们创建"users"表格并插入一些示例数据:

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  address VARCHAR(100)
);

INSERT INTO users (id, name, address)
VALUES (1, 'John', '123 Main St');
INSERT INTO users (id, name, address)
VALUES (2, 'Jane', '456 Elm St');
COMMIT;

查询结果:

SELECT * FROM users;

id | name |   address   
---+------+-------------
 1 | John | 123 Main St
 2 | Jane | 456 Elm St

接下来,我们创建"users_updates"表格并插入一些示例数据:

CREATE TABLE users_updates (
  id INT,
  address VARCHAR(100)
);

INSERT INTO users_updates (id, address)
VALUES (1, '789 Oak St');
INSERT INTO users_updates (id, address)
VALUES (3, '987 Maple St');
COMMIT;

表数据查询结果:

SELECT * FROM users_updates;

id |   address   
---+-------------
 1 | 789 Oak St
 3 | 987 Maple St

现在,我们可以使用MERGE INTO语句将"users_updates"表格中的地址信息合并到"users"表格中,并根据ID进行匹配:

MERGE INTO users AS u
USING users_updates AS uu
ON (u.id = uu.id)
WHEN MATCHED THEN
  UPDATE SET u.address = uu.address
WHEN NOT MATCHED THEN
  INSERT (id, name, address)
  VALUES (uu.id, '', uu.address);

上述MERGE INTO语句执行的操作如下:

  • 对于匹配到的记录(ID存在于两个表格中),更新"users"表格中对应记录的地址信息。
  • 对于未匹配到的记录(ID只存在于"users_updates"表格中),在"users"表格中插入一条新记录,包含ID和更新后的地址信息。

执行完上述语句后,查看"users"表格,我们可以看到更新和插入的结果:

SELECT * FROM users;

id | name |   address   
---+------+-------------
 1 | John | 789 Oak St
 2 | Jane | 456 Elm St
 3 |      | 987 Maple St

如以上示例所示,MERGE INTO语句可以根据指定的条件将两个表格中的数据进行合并和更新,非常方便实用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值