本节书摘来自异步社区出版社《Oracle SQL疑难解析》一书中的第1章,第1.7节,作者: 【美】Grant Allen , Bob Bryla , Darl Kuhn,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.7 改变行记录的值
Oracle SQL疑难解析
1.7.1 要解决的问题
修改表中一行或多行的值。
1.7.2 解决方法
就像命令的字面意义一样,UPDATE语句是用来修改数据的。假定我们想给部门代码为50的每个员工增加5%的薪水,就可以用下面这个UPDATE语句:
update hr.employees
set salary = salary * 1.05
where department_id = 50;
1.7.3 数据库如何工作
基本的UPDATE语句设计就以UPDATE子句开始:
update hr.employess
这个子句告诉Oracle,要修改哪个表的记录。SET子句指明哪些字段要修改、怎么改——固定值、算式、函数结果、子查询结果或其他方式:
set salary = salary * 1.05
在这个例子中,我们用了自引用的算式,选中的每一行的新的SALARY字段值都是已有值的1.05倍(即,Oracle对选中的每一行都执行这个算式)。至于WHERE子句,我们前面已经在介绍SELECT语句时说过,是用来对表中的行进行选取的,只有那些符合条件(即DEPARTMENT_ID为50)的行会被选中。