第3章 SQL 习题 - 3.17

3.17 考虑图3-20中的关系数据库。给出下面每个查询对应的SQL表达式:

a.为“公司_1”的所有雇员增长10%的工资。

 employee_name | company_name | salary  
---------------+--------------+---------
 雇员_1        | 公司_1       | 8000.00
 雇员_2        | 公司_1       | 9900.00
(2 rows)

上面是工资增长前的情况,现在开始增长10%的工资,然后再看看增长后的情况:

update works set salary = salary * 1.1 where company_name = '公司_1';
select * from works where company_name = '公司_1';
 employee_name | company_name |  salary  
---------------+--------------+----------
 雇员_1        | 公司_1       |  8800.00
 雇员_2        | 公司_1       | 10890.00
(2 rows)

b.为“公司_1”的所有经理增长10%的工资。

update works set salary = salary * 1.1
where company_name = '公司_1' and employee_name in (
	select manager_name from managers
);

再看一下现在的工资情况,会发现身为经理的雇员_2的工资又增长了10%:

 employee_name | company_name |  salary  
---------------+--------------+----------
 雇员_1        | 公司_1       |  8800.00
 雇员_2        | 公司_1       | 11979.00
(2 rows)

c.删除“公司_2”的雇员在works关系中的所有元组。

delete from works where company_name = '公司_2';

 

你可能感兴趣的:(数据库系统概念原书第6版)