MySQL UPDATE语句
# UPDATE语句用于修改表的记录# 把每个员工的编号和上司的编号+1,用order by子句完成(提示按照降序来执行)UPDATE t_emp SET empno=empno+1,mgr=mgr+1ORDER BY empno DESC;# 把月收入前三名的员工减薪100元,用LIMIT子句完成UPDATE t_emp SET sal=sal-100ORDER BY sal+...
·
# UPDATE语句用于修改表的记录
# 把每个员工的编号和上司的编号+1,用order by子句完成(提示按照降序来执行)
UPDATE t_emp SET empno=empno+1,mgr=mgr+1
ORDER BY empno DESC;
# 把月收入前三名的员工减薪100元,用LIMIT子句完成
UPDATE t_emp SET sal=sal-100
ORDER BY sal+IFNULL(comm,0) DESC
LIMIT 3;
# 把10部门中,工龄超过20年的员工,底薪增加200元
UPDATE t_emp SET sal=sal+100
WHERE deptno=10 AND FLOOR(DATEDIFF(NOW(),hiredate)/365)>20;
# 把ALLEN调往RESEARCH部门,职务调整为ANALYST,工作地点调整为北京(修改了两张表)
# UPDATE语句的表连接(内)
# 语法一
# UPDATE 表1 JOIN 表2 ON 条件 SET 字段1=值1,字段2=值2,......;
UPDATE t_emp e JOIN t_dept d
SET e.deptno=d.deptno,e.job="ANALYST",d.loc="BEIJING"
WHERE e.ename="ALLEN" AND d.dname="RESEARCH";
# 语法二
# UPDATE 表1,表2 SET 字段1=值1,字段2=值2,...... WHERE 连接条件
UPDATE t_emp e,t_dept d
SET e.deptno=d.deptno,e.job="ANALYST",d.loc="GUANGZHOU"
WHERE e.ename="ALLEN" AND d.dname="RESEARCH";
# 把底薪低于公司平均底薪的员工,底薪增加150元
UPDATE t_emp e,(SELECT AVG(sal) as avg FROM t_emp) t
SET e.sal=e.sal+150
WHERE e.sal<t.avg;
# update外连接
# UPDATE 表1 [LEFT|RIGHT] JOIN 表2 ON 条件 SET 字段1=值1,字段2=值2,...
# 把没有部门的员工,或者sales部门低于2000元底薪的员工,都调往20部门
UPDATE t_emp e LEFT JOIN t_dept d ON e.deptno=d.deptno
SET e.deptno=20
WHERE e.deptno IS NULL OR (d.dname="SALES" AND e.sal<2000);
更多推荐
已为社区贡献1条内容
所有评论(0)