第3章 SQL 習題 - 3.10
阿新 • • 發佈:2018-11-19
3.10 考慮3.9中的關係資料庫,給出下面每個查詢的SQL表示式:
a.修改資料庫使'Jones'現在居住在'Newtown'市。
update employee set city = 'Newtown' where employee_name = 'Jones';
b.為'公司_1'所有工資不超過100000美元的經理增長10%的工資,對工資超過100000美元的只增長3%。
先看看'公司_1'中的所有經理的工資情況吧。
select distinct manager_name, salary from works, managers where company_name = '公司_1' and works.employee_name = managers.manager_name;
manager_name | salary
--------------+---------
僱員_2 | 9000.00
(1 row)
看來按照題目要求,僱員_2應該增長10%的工資,工資應該變為9900。
with manager(manager_name, manager_salary) as ( select distinct manager_name, salary from works, managers where company_name = '公司_1' and works.employee_name = managers.manager_name ) update works set salary = case when salary <=100000 then salary * 1.1 else salary * 1.03 end from manager where works.employee_name = manager.manager_name;
執行後咱們查一查僱員_2的工資增長情況:
select manager_name, salary from works natural join managers
where company_name = '公司_1' and works.employee_name = manager_name;
manager_name | salary
--------------+---------
僱員_2 | 9900.00
(1 row)