20、SQL Server 数据修改之Update

本文介绍如何使用 SQL 的 Update 语句来更新表中的数据,并通过一个具体的案例展示如何基于复杂的业务逻辑进行数据更新。该案例涉及多表连接、条件设置及复杂的计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据修改之Update 

update命令可以更新表中某行的某列,也可以更新表的所有行中的所有列。

同时,通过使用可选的From子句,可以利用SQL Select的全部功能从非常复杂的数据

源获取用于更新的数据。

一、更新单个表

基本语法:

update 表名 set 列1=值1or表达式or列,列2=值2,列3=值3,....

[from data sources] [where conditions]

注:a、一般语法中没有from data sources 

b、没有where子句时,将更新整个表,所以要非常注意。

c、From Data Sources 可获取数据源中的数据用来更新,但只能更新update后面

紧接的表中的数据(可用子查询来代替解决)

d、语法中的  ‘列’,说的是from data sources中的列

下面是一个示例:

雇员要加薪,但加薪的幅度取决于雇员所在的部门,在岗时间,绩效考核等。

如果每个部门的加薪幅度都存储在Department表中,通过联接Employee

和Department表,在结果集中获取部门的加薪系数,可以使用一个update

语句调整所有雇员的薪水。

update Employee set salary=

salary*(1+(2+(((Datediff(yy,DateHire,'5/1/2002')*0.1)+Datediff(yy,DatePosition,

'5/1/2002')*0.2)+

+(

case 

when Employee.PerformanceRathy>=2 then Employee.PerformanceRathy

else 0

end

)*0.5)*Department.RaiseFactor))/100)

from Employee

inner join Department on Employee.DeptID=Dept.DeptID

注:选择和数据时,就采用基于数据集而不是数据行的方式。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值