備注:以下例題均基于Oracle的scott賬戶中的表
1躁愿、使用in查詢部門(mén)編號(hào)為10,20的所有員工
select * from emp where deptno in(10,20);
2厦瓢、使用like查詢所有名字中包括w的員工信息
select * from emp where ename like '%W%';
3杀捻、使用like查詢所有員工名字中第二個(gè)子字母為w的信息
select * from emp where ename like '_M%';
4古沥、查詢所有員工信息并按部門(mén)編號(hào)和工資進(jìn)行排序
select * from emp order by deptno,sal ASC;
select * from emp order by 1,2 ASC;
5彩扔、顯示員工工資上浮20%的結(jié)果
select ename, sal 原工資 , sal*1.2 上浮后的工資 from emp;
6麻削、顯示emp表的員工姓名以及工資和獎(jiǎng)金的和
select ename, sal+nvl(comm,0) from emp;
7蒸痹、顯示dept表的內(nèi)容,使用別名叫表頭轉(zhuǎn)換成中文顯示
select deptno 部門(mén)編號(hào), dname 部門(mén)名字, loc 部門(mén)地點(diǎn) from dept;
8呛哟、查詢員工姓名和工資叠荠,并按工資從小到大排序
select ename, sal from emp order by sal ASC;
9、查詢員工姓名和雇傭日期竖共,并按雇傭日期排序蝙叛,后雇傭的先顯示
select ename, hiredate from emp order by hiredate DESC;
10、查詢員工信息公给,先按部門(mén)標(biāo)號(hào)從小到大排序借帘,再按雇傭時(shí)間的先后排序
select * from emp order by deptno,hiredate asc;
11、列出在部門(mén)SALES工作的員工姓名
select ename
from emp
where deptno in (select deptno from dept where dname = 'SALES');
select emp.ename
from emp, dept
where emp.deptno = dept.deptno
and dept.dname = 'SALES';
12淌铐、列出所有員工的姓名肺然,部門(mén)和工資
select emp.ename, dept.dname, emp.sal
from emp, dept
where emp.deptno = dept.deptno;
13、列出所有部門(mén)的詳細(xì)信息和部門(mén)人數(shù)
select dept.*, count(ename)
from emp, dept
where emp.deptno(+) = dept.deptno
group by dept.deptno, dept.dname, dept.loc;
14腿准、列出各個(gè)部門(mén)職位為Manager的最低薪金
select deptno, min(sal) from emp where job = 'MANAGER' group by deptno;
15际起、查詢部門(mén)人數(shù)至少是1的部門(mén)名字
select dept.dname
from emp, dept
where emp.deptno = dept.deptno
group by dept.dname
having count(ename) >= 1;
16拾碌、列出工資比SMITH多的員工
select ename
from emp
where sal > (select sal from emp where ename = 'SMITH');
17、列出所有員工的對(duì)應(yīng)領(lǐng)導(dǎo)的姓名
select e1.ename, e2.ename 領(lǐng)導(dǎo) from emp e1 left join emp e2 on e1.mgr = e2.empno;
18街望、求出某個(gè)員工的領(lǐng)導(dǎo)校翔,并要求這些領(lǐng)導(dǎo)的薪水高于或等于3000
select distinct e.e2mgr
from (select e1.ename, e2.ename e2mgr, e2.sal e2sal
from emp e1
left join emp e2 on e1.mgr = e2.empno) e
where e.e2sal >= 3000
19、列出部門(mén)名稱灾前,和這些部門(mén)的員工信息
select dept.dname,
dept.deptno,
emp.empno,
emp.ename,
emp.job,
emp.mgr,
emp.hiredate,
emp.sal,
emp.comm
from dept
left join emp on emp.deptno = dept.deptno;
20防症、列出所有職位為CLERK的員工姓名及部門(mén)名稱,部門(mén)人數(shù)
select ename, dname, enum, job
from emp
left join (select dept.deptno, dname, count(ename) as enum
from emp, dept
where emp.deptno = dept.deptno
group by dept.deptno, dname) a on emp.deptno = a.deptno
where job = 'CLERK';