sql语句连表修改数据

sql语句连表修改数据,第1张

一、首先,打开SQL Server管理工具,使用SQL语句创建一个测试表。

二、然后在测试表中插入三个测试数据

三、接着 用select * from tblUpdate语句,查询刚刚插入的数据。

四、使用update tblUpdate set Col2 批量修改整个表的数据。

五、使用update tblUpdate set Col2 =批量修改指定条数的记录。

1、首先你要保证你的两个表都有主键,或者有关联字段

例如:

表A(id,name,date)

id是主键

表B(id,name,date)

id是主键

1)导入B数据数据到A表保留date字段值(确切的说这种情况应该叫利用【B】表数据更新【A】表数据),用下面的sql就可以达到目的:

update

A

set

A.date=(select

B.date

from

B

where

B.id=A.id)

说明:这样做的话要保证A表和B表都有数据并且id字段能够关联上,而且这样修改的数据只是关联上的数据,假设A表中有【id=1】的数据而B表中没有

【id=1】的数据,那么A表中【id=1】的数据就不会被修改。

2)如果A表和B表都没有主键的话,那么寻找一个能够关联两个表数据的字段(这个字段可以从一定意义上作为"主键"区分表中数据),假设是id和name字段联合起来:

update

A

set

A.date=(select

B.date

from

B

where

B.id=A.id

and

B.name=A.name)

说明:在这个更新中更新条目也只限定于能够关联上的数据。

3)如果A表中没有数据只是想把B表中的数据全部插入A表(B表中date字段的值必须被保留的话)

insert

into

A

select

*

from

B

说明:在这个语句中,把B表中所有的数据不加修改的全部放入了B表,自然也就包含了date字段的值不变。

insert

intp

A

select

1,'张三',date

from

B

说明:在这个语句中,把B表中的date字段的只保留,id和name字段分别换成了【1】和【张三】(当然是所有数据的id和name字段都换了)

2、综合上面的观点

1)如果表1没有数据:insert

into

表1

select

*

from

表2

2)如果表1中有数据,并且和表2中的数据完全关联的上的话:

update

表1

set

表1.sj=(select

表2.sj

from

表2

where

表2.字段X=表1.字段X

and....)

3)如果表1中有数据,但是表2中只有一部分能够关联上,目的是关联上的更新,关联不上的插入表1的话:

先:update

表1

set

表1.sj=(select

表2.sj

from

表2

where

表2.字段X=表1.字段X

and....)

后:insert

表1

select

*

from

表2

where

表2.关联字段X

not

in(select

表1.关联字段X

from

表1)

and

表2.关联字段Y

not

in(select

表1.关联字段Y

from

表1)....

---

以上,希望对你有所帮助。

1.首先打开数据库查询语句,输入查询语句先查询一下数据表中的数据内容。

2.输入查询语句,:Select * from Student,输入完毕之后选择全部内容...

3.执行完毕之后,在Student表中的第四行数据(StudentName中的“崔”)...

4.在你的数据表上,用鼠标右击选择里面的“编辑前200行”。

5.编辑完毕之后,可以在查询表中看到你的所有数据。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9862695.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存