日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle常见sql语句练习及答案(经典题目,方便练习)

發(fā)布時間:2023/12/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle常见sql语句练习及答案(经典题目,方便练习) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

注意: 所有的題目基于scott賬戶的表來進(jìn)行寫SQL。

1.查詢員工號為7499的員工的姓名和部門號
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.選擇雇用時間在1998-02-01到1998-05-01之間的員工姓名,job_id 和雇用時間
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號部門工作的員工姓名和部門號
select ename,deptno from emp where deptno in(20,50);或
select ename,deptno from emp where deptno =20 or deptno =50

5.選擇在1992年雇用的員工的姓名和雇用時間
select ename,hiredate from emp
where extract(year from hiredate) = ‘1992’;

6.選擇公司中沒有管理者的員工姓名及job
select ename,job from emp where mgr is null;

8.選擇員工姓名的第三個字母是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.查詢員工號,姓名,工資,以及工資提高百分之20%后的結(jié)果
select empno,ename,sal,(sal+sal0.2) from emp;*

11.將員工的姓名按首字母排序,并寫出姓名的長度(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.選擇各個工種(job)的員工人數(shù)
select job,count(1) from emp group by job

17.查詢員工最高工資和最低工資的差距(DIFFERENCE)
select max(sal)-min(sal) difference from emp

18.查詢各個管理者手下員工的最低工資,其中最低工資不能低于6000,沒有管理者的員工不計算在內(nèi)
select mgr,min(sal) from emp where mgr is not null
group by mgr having min(sal)>4000;

19.查詢所有部門的名字,工作地點,員工數(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. 查詢工資比公司平均工資高的員工的員工號,姓名和工資。
select empno,ename,sal from emp where sal>(select avg(sal) from emp);

22. 查詢各部門中工資比本部門平均工資高的員工的員工號, 姓名和工資
select empno,ename,sal from emp e
where sal>(select avg(sal) from emp where deptno=e.deptno);

23. 查詢和姓名中包含字母u的員工在相同部門的員工的員工號和姓名
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實現(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语句练习及答案(经典题目,方便练习)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。