SQL如何用表A更新表B

文章标题很短,因为问题的描述过于具体,标题就会显得过长。

这个问题更为准确地描述应该是这样:表结构雷同或者有相似字段的两张表A和B,如何用A表的字段数据去更新B表字段的数据?

操作方法:

1 update B
2 set B.clolumn_name = A.cloumn.name
3 from A,B
4 where A.ID = B.ID

实例验证。

俗话说,铁打的营盘流水的兵,政府也一样。政府内阁,会随着领导人的变更而发生变更。

分别创建两个表:cabinet和cabinet_new。

cabinet表的内容是在任美国政府内阁成员信息表。

cabinet_new表的内容是新总统的内阁成员信息表。

创建两个表并插入信息,语句如下:

 1 create table cabinet
 2 (
 3     post VARCHAR(12),
 4     name VARCHAR(32)
 5 )
 6 
 7 create table cabinet_new
 8 (
 9     post_new VARCHAR(12),
10     name_new VARCHAR(32)
11 )
12 
13 INSERT INTO cabinet
14 VALUES ('总统','奥巴马')
15 INSERT INTO cabinet
16 VALUES ('国务卿','克里')
17 INSERT INTO cabinet
18 VALUES ('国防部长','盖茨')
19 INSERT INTO cabinet
20 VALUES ('财政部长','盖特纳')
21 INSERT INTO cabinet
22 VALUES ('司法部长','霍尔德')
23 INSERT INTO cabinet
24 VALUES ('商务部长','骆家辉')
25 INSERT INTO cabinet
26 VALUES ('能源部长','朱棣文')
27 
28 INSERT INTO cabinet_new
29 VALUES('总统','特朗普')
30 INSERT INTO cabinet_new
31 VALUES('国务卿','蒂勒森')
32 INSERT INTO cabinet_new
33 VALUES('国防部长','马蒂斯')
34 INSERT INTO cabinet_new
35 VALUES('财政部长','努钦')
36 INSERT INTO cabinet_new
37 VALUES('司法部长','塞申斯')
38 INSERT INTO cabinet_new
39 VALUES('商务部长','罗斯')
40 
41 select * from cabinet
42 select * from cabinet_new

执行结果:

随着奥巴马退职,新总统特朗普也即将上任,相应的,内阁成员也要更换。

对数据表来说,就是将cabinet表中的数据用cabinet_new更新。

根据上述操作方法,编写更新语句并做查询:

1 update cabinet
2 set cabinet.name = cabinet_new.name_new
3 from cabinet,cabinet_new
4 where cabinet.post = cabinet_new.post_new
5 
6 select * from cabinet
7 select * from cabinet_new

执行结果:

有执行结果可以知道,更新成功,操作方法可行。

 

posted @ 2022-05-28 18:52  美人她爹  阅读(2159)  评论(0编辑  收藏  举报