练习2
1. 创建一个查询,显示收入超过$12,000 的雇员的名字和薪水。
将SQL 语句存到文件
lab2_1.sql 中,运行该查询。
SELECT last_name, salary
FROM employees
WHERE salary > 12000;
2. 创建一个查询,显示雇员号为176 的雇员的名字和部门号。
SELECT last_name, department_id
FROM employees
WHERE employee_id = 176;
3. 修改lab2_1.sql 文件,显示所有薪水不在5000 和12000 之间的雇员的名字和薪水。
将SQL 语句存到文件lab2_3.sql 中。
SELECT last_name, salary
FROM employees
WHERE salary NOT BETWEEN 5000 AND 12000;
4. 显示受雇日期在2002年2月20日和2003年5月1日之间的雇员的名字、岗位和
受雇日期。
按受雇日期顺序排序查询结果。
SELECT last_name, job_id, hire_date
FROM employees
WHERE hire_date BETWEEN '2002-02-20' AND '2003-5-01'
ORDER BY hire_date;
5. 显示所有在部门20 和50 中的雇员的名字和部门号,并以名字按字母顺序排序。
SELECT last_name, department_id
FROM employees
WHERE department_id IN (20, 50)
ORDER BY last_name;
6. 修改lab2_3.sql 列出收入在$5,000 和$12,000 之间,并且在部门20 或50 工作的
雇员的名字和薪水。
将列标题分别显示为Employee 和Monthly Salary,将
lab2_3.sql 保存为lab2_6.sql。
运行lab2_6.sql 中的语句。
SELECT last_name "Employee", salary "Monthly Salary"
FROM employees
WHERE salary BETWEEN 5000 AND 12000
AND department_id IN (20, 50);
7. 显示每一个在1994 年受雇的雇员的名字和受雇日期。
SELECT last_name, hire_date
FROM employees
WHERE hire_date LIKE '2004%';
8. 显示所有没有主管经理的雇员的名字和工作岗位。
SELECT last_name, job_id
FROM employees
WHERE manager_id IS NULL;
9. 显示所有有佣金的雇员的名字、薪水和佣金。
以薪水和佣金的降序排序数据。
SELECT last_name, salary, commission_pct
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY salary DESC, commission_pct DESC;
如果你有时间,完成下面的练习:
10. 显示所有名字中第三个字母是a 的雇员的名字。
SELECT last_name
FROM employees
WHERE last_name LIKE '__a%';
11. 显示所有名字中有一个a 和一个e 的雇员的名字。
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%'
AND last_name LIKE '%e%';
如果你想要额外的挑战,完成下面的练习:
12. 显示所有工作是销售代表或者普通职员,并且薪水不等于$2,500、$3,500 或$7,000
的雇员的名字、工作和薪水。
SELECT last_name, job_id, salary
FROM employees
WHERE job_id IN ('SA_REP', 'ST_CLERK')
AND salary NOT IN (2500, 3500, 7000);
13. 修改lab2_6.sql 显示所有佣金总计为20% 的雇员的名字、薪水和佣金。
保存
lab2_6.sql 为lab2_13.sql。
再运行lab2_13.sql 中的语句。
SELECT last_name "Employee", salary "Monthly Salary",
commission_pct
FROM employees
WHERE commission_pct = 0.20;。