sql 2
NULL值参与任何数学运算其结果仍为NULL,因此“NULL+100”结果仍为NULL。
在NEW_Teacher2表中,将所授课程学时超过40个(COURSE表),或者是在STUDENT表中其所授课程的成绩存在优秀(超过85分)的教师发放100元的奖金。实例代码:
UPDATE NEW_Teacher2 SET SAL = SAL +100
WHERE
CNO IN (SELECT CNO FROM COURSE WHERE CNO = NEW_Teacher2.CNO AND CTIME >= 40)
OR
CNO IN (SELECT CNO FROM STUDENT WHERE CNO = NEW_Teacher2.CNO GROUP BY CNO HAVING MAX(MARK) >= 85)
UPDATE NEW_Teacher2 SET SAL = SAL * 0.95 WHERE SAL <= 1500 AND SAL >800
![]()
/*继续更新大于1500的工资*/
![]()
UPDATE NEW_Teacher2 SET SAL = SAL * 0.9 WHERE SAL >1500
在NEW_ Teacher2表中,当男教师的工资少于所有男教师的平均工资时,将该男教师的工资提高5%。实例代码:
UPDATE NEW_Teacher2 SET SAL = SAL +SAL * 0.05
WHERE TSEX='男'
AND SAL < (SELECT avg(SAL) FROM NEW_Teacher2 WHERE TSEX='男')
在NEW_Teacher2表中,将所授课程学时超过40个(COURSE表),或者是在STUDENT表中其所授课程的成绩存在优秀(超过85分)的教师发放100元的奖金。实例代码:






12.1.5 分步更新表
有时对数据库表中的数据完成某种更新操作,需要使用UPDATE语句分几步完成,这时特别需要注意数据更新的顺序。
实例8 分步更新表
在NEW_Teacher2表中,工资超过1500的缴纳10%所得税,超过800的缴纳5%所得税,其余的不缴税。重新计算缴税后各教师的工资。实例代码:





在NEW_ Teacher2表中,当男教师的工资少于所有男教师的平均工资时,将该男教师的工资提高5%。实例代码:


