单表修改:
update tab set column1 = value1,。。。where 条件;
多表修改:
sql 92语法:update table1 tab1,table2 tab2
set column1 = value1,。。。
where 链接条件
and 筛选条件
sql 99 语法:update table1 tab1
[inner | left | right ] join table2 tab 2
on 链接条件
set column1 = value1,。。。
where 筛选条件
实例:
表中"燕"老师教的课的成绩都更改为此课程的平均成绩;
1 UPDATE beicaiSC sc inner JOIN (--sql99 语法实现两表间的数据交换
2 select
3 tc.cno,round(avg(sc.score),2) av 查询出课程的平均成绩和对应的课程ID
4 from
5 (
6 select co.tno tno,te.tname tname,co.cno cno,co.cname cname
7 from beicaiTEA te
8 join beicaicou co
9 on(te.tno=co.tno)
10 where te.tname=‘燕‘
11 )tc --内部表,查询出燕老师所教课程
12 join beicaiSC sc
13 on(tc.cno=sc.cno) --链接条件就是课程ID相同的课
14 group by tc.cno--根据课程分组
15
16 ) cnn on cnn.cno = sc.cno量表的链接条件就是课程ID
17 set sc.score = cnn.av --赋值