一、基本查询
1. 查询雇员的姓名及其工资。
SELECT e.employee_name,w.salary
FROM employee e,works w
WHERE e.employee_name=w.employee_name
2. 显示每位雇员工资原数额及上浮20%的结果。
SELECT employee_name,salary,salary*1.2
FROM works;
3. 显示 WORKS 表的雇员名称以及工资的两倍。
SELECT employee_name,salary*2
FROM works;
4. 显示雇员的 employee_name 和 salary, 其中 employee_name 属性列显示为“姓名”, salary 属性列显示为‘工资’。
SELECT employee_name 姓名,salary 工资
FROM works;
5. 显示 MANAGES 表中不同的经理名称。 注意: 去掉重复的名称。
SELECT DISTINCT manager_name FROM manages
6. 查询雇员姓名和工资, 并按工资从小到大排序。
SELECT employee_name,salary FROM works
ORDER BY salary;
7. 查询雇员信息,先按公司名从小到大排序,公司名相同时按工资从小到大排序。
SELECT employee_name,company_name,salary
FROM works
ORDER BY company_name ASC,salary ASC
--DESC为降序,ASC为升序
二、简单条件查询
1. 显示公司名称为“Alibaba”的雇员的姓名和工资。
SELECT employee_name,salary
FROM works
WHERE company_name='Alibaba'
2. 显示工资大于等于 10000 的雇员姓名和工资。
SELECT employee_name,salary
FROM works
WHERE salary>=10000
3. 显示在公司 Tensent 和 Huawei 的雇员的姓名和工资。
SELECT employee_name,salary
FROM works
WHERE company_name='Tensent' OR company_name='Huawei'
4. 显示不在公司 Tensent 和 Huawei 的雇员的姓名和工资。
SELECT employee_name,salary
FROM works
WHERE company_name!='Tensent' AND company_name!='Huawei'
5. 显示工资在10000和15000之间的雇员的姓名。注意:可以使用BETWEEN...AND...
SELECT employee_name
FROM works
WHERE salary BETWEEN 10000 AND 15000
6. 显示公司'Alibaba'和公司'Baidu'中工资大于 15000 的雇员的所有信息。
SELECT *
FROM works
WHERE (company_name='Alibaba' OR company_name='Baidu') AND salary>15000
7. 显示所有以‘G’字母开头的员工的姓名。
SELECT employee_name
FROM employee
WHERE employee_name LIKE 'G%'
8. 在employee中,查询所有以‘n’字母结尾的员工姓名,且‘n’前面只有 4个字母。
SELECT employee_name
FROM employee
WHERE employee_name LIKE '____n'
9. 在manages中,查询manager_name为空的记录。
SELECT *
FROM manages
WHERE manager_name IS NULL
三、分组查询
1. 根据company_name对works表中的数据进行分组,统计每家公司名及雇员人数。
SELECT company_name,COUNT(employee_name)
FROM works
GROUP BY company_name
2. 根据company_name对works表中的数据进行分组,并显示雇员人数大于3 的分组信息。
SELECT company_name,COUNT(employee_name)
FROM works
GROUP BY company_name
HAVING COUNT(employee_name)>3
3. 显示每个公司中所有雇员的总工资大于 50000 的公司名称及其所有员工的总工资数。
SELECT company_name,sum(salary)
FROM works
GROUP BY company_name
HAVING sum(salary)>50000