Oracle常见sql语句练习及答案(经典题目,方便练习)
注意: 所有的題目基于scott賬戶的表來(lái)進(jìn)行寫SQL。
1.查詢員工號(hào)為7499的員工的姓名和部門號(hào)
select ename,deptno from emp where empno=7499;
2.選擇工資不在5000到12000的員工的姓名和工資
select ename ,sal from emp where sal<5000 or sal>12000;或
select ename ,sal from emp where sal not between 5000 and 12000;
3.選擇雇用時(shí)間在1998-02-01到1998-05-01之間的員工姓名,job_id 和雇用時(shí)間
select ename,job,hiredate from emp where hiredate>to_date(‘1998-02-01’,‘yyyy-mm-dd’)
and hiredate<to_date(‘1998-05-01’,‘yyyy-mm-dd’);
4.選擇在20或50號(hào)部門工作的員工姓名和部門號(hào)
select ename,deptno from emp where deptno in(20,50);或
select ename,deptno from emp where deptno =20 or deptno =50
5.選擇在1992年雇用的員工的姓名和雇用時(shí)間
select ename,hiredate from emp
where extract(year from hiredate) = ‘1992’;
6.選擇公司中沒(méi)有管理者的員工姓名及job
select ename,job from emp where mgr is null;
8.選擇員工姓名的第三個(gè)字母是a的員工姓名
select ename from emp where instr(ename,‘A’)= 3;或
select ename from emp where ename like ‘__A%’;
9.選擇姓名中有字母a和e的員工姓名
select ename as 姓名 from emp where instr(ename,‘A’)>0 and instr(ename,‘E’)>0; 或
select ename from emp
where ename like ‘%A%’ and ename like ‘%E%’;
10.查詢員工號(hào),姓名,工資,以及工資提高百分之20%后的結(jié)果
select empno,ename,sal,(sal+sal0.2) from emp;*
11.將員工的姓名按首字母排序,并寫出姓名的長(zhǎng)度(length)
select ename,length(ename) from emp
order by ascii(substr(ename,1,1));
12.查詢各員工的姓名,并顯示出各員工在公司工作的月份數(shù)
select ename,trunc(months_between(sysdate,hiredate)) from emp;
13.查詢員工的姓名,以及在公司工作的月份數(shù) (worked_month),并按月份數(shù)降序排列
select ename,trunc(months_between(sysdate,hiredate)) worked_month from emp order by worked_month desc;
14.查詢公司員工工資的最大值,最小值,平均值,總和
select max(sal),min(sal),avg(sal) ,sum(sal) from emp;
15.查詢各工種(job)的員工工資的最大值,最小值,平均值,總和
select max(sal),min(sal),avg(sal) ,sum(sal) from emp group by job;
16.選擇各個(gè)工種(job)的員工人數(shù)
select job,count(1) from emp group by job
17.查詢員工最高工資和最低工資的差距(DIFFERENCE)
select max(sal)-min(sal) difference from emp
18.查詢各個(gè)管理者手下員工的最低工資,其中最低工資不能低于6000,沒(méi)有管理者的員工不計(jì)算在內(nèi)
select mgr,min(sal) from emp where mgr is not null
group by mgr having min(sal)>4000;
19.查詢所有部門的名字,工作地點(diǎn),員工數(shù)量和工資平均值.
select d.dname,d.loc,count(1),avg(sal) from dept d inner join emp e on e.deptno=d.deptno group by d.dname,d.loc;
20. 查詢和scott相同部門的員工姓名和雇用日期
select ename,hiredate,deptno from emp
where deptno=(select deptno from emp where ename=‘SCOTT’);
21. 查詢工資比公司平均工資高的員工的員工號(hào),姓名和工資。
select empno,ename,sal from emp where sal>(select avg(sal) from emp);
22. 查詢各部門中工資比本部門平均工資高的員工的員工號(hào), 姓名和工資
select empno,ename,sal from emp e
where sal>(select avg(sal) from emp where deptno=e.deptno);
23. 查詢和姓名中包含字母u的員工在相同部門的員工的員工號(hào)和姓名
select empno,ename
from emp where deptno in(select deptno from emp
where instr(ename,‘U’)>0);
或
select e1.empno,e1.ename from emp e1 ,emp e2
where instr(e2.ename,‘U’,1,1) > 0 and e1.deptno=e2.deptno;
24. 查詢管理者是King的員工姓名和工資
select ename,sal from emp
where mgr = (select empno from emp where ename = ‘KING’ );
25. 使用PL/SQL實(shí)現(xiàn)9*9的乘法口訣表
declare
v_result number;
v_i number;
v_j number;
begin
for v_i in 1…9
loop
for v_j in 1…v_i
loop
v_result:=v_iv_j;
dbms_output.put(v_i||’’||v_j||’=’||v_result||’ ‘);
end loop;
dbms_output.put_line(’’);
end loop;
end;
總結(jié)
以上是生活随笔為你收集整理的Oracle常见sql语句练习及答案(经典题目,方便练习)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 不同类型的 BPM 软件与客户
- 下一篇: ccc