1)查詢所有員工信息,查詢員工編號,員工姓名,工資,職務名稱,職務描述
分析:
1.emp job
2.條件: emp.job_id = job.id
3.內連接查詢
select
t1.id, --
t1.ename, --
t1.salary, --
t2.jname, --
t2.description --
from
emp t1, job t2
where
t1.job.id = t2.id;
2)查詢員工編號,員工姓名,工資,職務名稱,職務描述,部門名稱,部門位置
分析:
1. emp job
2.條件: emp.job_id = job.id and emp.dept_id = dept.id
select
t1.id, --
t1.ename, --
t1.salary, --
t2.jname, --
t2.description, --
t3.dname,
t3.loc
from
emp t1, job t2. dept t3
where
t1.job.id = t2.id and t1.dept_id = t3.id;
3)查詢員工姓名, 工資, 工資等級
分析:
1. emp salarygrade
2.條件: emp.salary >= salarygrade.losalary and emp.salary <= salarygrade.highsalary
select
t1.ename,
t1.salary,
t2.*
from
emp t1, salarygrade t2
where t1.salary between t2.losalary and t2.highsalary;
4)查詢員工姓名,工資,職務名稱,職務描述,部門名稱,部門位置,工資等級
分析:
1.emp dept salary
2.條件: emp.job_id = job.id and emp.dept_id = dept.id and emp.salary
select
t1.ename,
t1.salary,
t2.jname,
from emp t1, job t2, dept t3, salarygrade t4
where
t1.job_id = t2.id
and t1.dept_id = t3.id
and t1.salary between t4.losalary and t4.highsalary
5)查詢部門編號,部門名稱,部門位置,部門人數
分析:
1.部門編號、部門名稱、部門位置 dept 表 部門人數emp表
2.使用分組查詢,按照emp.dept_id完成分組,查詢count(id)
得到哪個部門有多少人
select
count(id)
from
emp
group by dept_id
3.使用子查詢將第2步的查詢結果和dept表進行關聯查詢
select
t1.id, t1.dname, t1.loc, t2.total
from dept t1,
(
select
count(id) total
from
emp
group by dept_id
) t2
where t1.id = t2.dept_id;
6)查詢所有員工的姓名及直接上級的姓名,沒有領導的員工也需要查詢
分析:
1.姓名emp 直接上級的姓名 emp --自己關聯自己的動作(emp表的id和mgr是自關聯)
2.條件emp.id = emp.mgr
select
t1.ename,
t1.mgr,
t2.ename,
t2.id
from emp t1, emp t2
where t1.mgr = t2.id;
3.查詢t1的所有數據 和 交集數據--左外連接查詢
select
t1.ename,
t1.mgr,
t2,id,
t2.ename
from emp t1
left join emp t2 -- 左外連接搞定 沒有領導的員工也需要查詢
on t1.mgr = t2.id