Oracle的sql語句練習題含答案_第1頁
Oracle的sql語句練習題含答案_第2頁
Oracle的sql語句練習題含答案_第3頁
Oracle的sql語句練習題含答案_第4頁
Oracle的sql語句練習題含答案_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Oracle的sql語句練習題含答案(二)Oracle_SQL練習題11 .選擇部門30中的所有員工.2.列出所有辦事員(CLERK)的姓名,編號和部門編號.3.找出傭金高于薪金的員工.4.找出傭金高于薪金的60%的員工.5.找出部門10中所有經(jīng)理(MANAGER)和部門20中所有辦事員(CLERK)的詳細資料.6.找出部門10中所有經(jīng)理(MANAGER),部門20中所有辦事員(CLERK),既不是經(jīng)理又不是辦事員但其薪金 大于或等于2000的所有員工的詳細資料.7.找出收取傭金的員工的不同工作.8.找出不收取傭金或收取的傭金低于100的員工.9.找出各月倒數(shù)第3天受雇的所有員工.10.找出早

2、于12年前受雇的員工.11 .以首字母大寫的方式顯示所有員工的姓名.12.顯示正好為5個字符的員工的姓名.13.顯示不帶有R的員工的姓名.14.顯示所有員工姓名的前三個字符.15.顯示所有員工的姓名,用a替換所有A16.顯示滿10年服務(wù)年限的員工的姓名和受雇日期.17.顯示員工的詳細資料,按姓名排序.18.顯示員工的姓名和受雇日期 ,根據(jù)其服務(wù)年限,將最老的員工排在最前面.19.顯示所有員工的姓名、工作和薪金,按工作的降序排序,若工作相同則按薪金排序.20.顯示所有員工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同則將最早年份的員工排在最前面.21.顯示在一個月為30天的情況所

3、有員工的日薪金,忽略余數(shù).22.找出在(任何年份的)2月受聘的所有員工。23.對于每個員工,顯示其加入公司的天數(shù).24.顯示姓名字段的任何位置包含A的所有員工的姓名.25.以年月日的方式顯示所有員工的服務(wù)年限.答案:1.select ename,job,mgr,hiredate,sal,comm ,deptnofrom emp where deptno=30;2.select ename,empno,deptnofrom emp where job=CLERK;3.select * from emp where commsal;4.select *from empwhere commsal*0

4、.6;5.select empno ,ename, job,hiredate,sal,comm,deptnofrom empwhere( job=MANAGER and deptno=10)or( job=CLERK and deptno=20);6.select empno,ename,job, hiredate,sal, deptnofrom empwhere ( job=MANAGER and deptno=10)or( job=CLERK and deptno=20)or(job MANAGER and jobCLERK) and sal=2000);7.select distinct

5、 ename,job,comm from empwhere NVL(comm,0)0;注意如果像上面這樣寫,就job ename comm 3個同時不同的都列出來正確的是:select distinct jobfrom empwhere NVL(comm,0)0;8.select ename,comm. from emp where NVL(comm,0)=0 or NVL(comm,0)100;如果按上面的寫法就重復(fù)了,直接可以寫成select ename,commfrom empwhere NVL(comm,0)1211.select initcap(ename) name ,job, h

6、iredatefrom emp;12. select ename,job,hiredate from emp where length(ename)=5;13select ename, job from emp where ename not like %R%;14.select substr(ename, 1,3) name,job,hiredatefrom emp ;15select replace(ename, A,a) name,job,hiredatefrom emp;16select ename, job, hiredatefrom empwhere months_between(

7、sysdate,hiredate)/12=10;17. select * from emp order by ename;18.select ename, hiredate from emp order by hiredate desc;19.select ename,job, sal from emp order by job desc, sal asc;20.select ename, to_char(hiredate,yyyy) year, to_char(hiredate,mm) monthsfrom emporder by months, year asc;21.select ena

8、me, sal/30 dailysalfrom emp;22.select ename, hiredatefrom empwhere to_char(hiredate,mm)=02;23.select ename,sysdate-hiredate天數(shù)from emp;24.select ename from emp where instr(ename,A,1)0;25. select ename, to_char(hiredate,yyyy/mm/dd)from emp ;-26.列出至少有一個員工的所有部門select dname from emp,dept where emp.deptno

9、=dept.deptno group by dname;select distinct dname from emp,dept where emp.deptno=dept.deptno;- -說明:(1) select中出現(xiàn)的字段一定要出現(xiàn)在group by中;- -(2)如果select中出現(xiàn)的字段不出現(xiàn)在group by中,則一定要出現(xiàn)在select的聚合函數(shù)中,對于想出現(xiàn)的字段,可用max()或min()。- -(3)默認的情況是按group by中的字段來排序,如果要用order by來自己排序,則order by后的字段-一定是group by后的字段,不能是聚合函數(shù)的字段-27.列

10、出薪金比“SMITF4多的所有員工.select ename, sal from emp where sal (select sal from emp where upper(ename)=SMITH);-28.列出所有員工的姓名及其直接上級的姓名.select a.ename, b.ename mgrname from emp a,emp b where a.mgr = b.empno;-29.列出受雇日期早于其直接上級的所有員工select e.ename, m.ename from emp e, emp m where e.mgr=m.empno and (e.hiredate 1500

11、;-33.列出在部門“SALES(銷售部)工作的員工的姓名,假定不知道銷售部的部門編號select ename from emp, dept where emp.deptno = dept.deptno and dname = SALES;-34.列出薪金高于公司平均薪金的所有員工select ename, sal from emp where sal (select avg(sal) from emp);-35.列出與“SCOTT從事相同工作的所有員工-SCOTT從事一種工作select ename from emp where job = (select job from emp wher

12、e upper(ename) = SCOTT);-SCOTT從事多種工作select ename, job from emp where job in (select job from emp where upper(ename) = SCOTT);-36.列出薪金等于部門30中員工的薪金的所有員工的姓名和薪金select ename, sal from emp where sal in(select sal from emp where deptno = 30);-37.列出薪金高于在部門30工作的所有員工的薪金的員工姓名和薪金select ename, sal from emp where

13、 sal (select max(sal) from emp where deptno = 30);-38.列出在每個部門工作的員工數(shù)量、平均工資和平均服務(wù)期限select deptno 部號, count(ename)員工數(shù) 量,avg(sal + nvl(comm, 0)平 均工資, trunc(avg(sysdate-hiredate)平均服務(wù)期限(天)from emp group by deptno;-39.列出所有員工的姓名、部門名稱和工資select ename, dname, sal+nvl(comm,0) from emp, dept where emp.deptno = de

14、pt.deptno;-40.列出從事同一種工作但屬于不同部門的員工的一種組合select distinct e.deptno, e.job from emp e, emp m where e.deptno != m.deptno and e.job = m.job order by e.job;-41.列出所有部門的詳細信息和部門人數(shù)select dept.*, (select count(ename) from emp where emp.deptno(+)=dept.deptno)人數(shù)from dept;-42,列出各種工作的最低工資select job, min(sal + nvl(co

15、mm, 0)最低工資from emp group by job;-43,列出各個部門的MANAGER(經(jīng)理)的最低薪金select min(sal + nvl(comm,0) from emp where upper(job) = MANAGER group by deptno;-顯示部門名稱select dname, min(sal + nvl(comm,0) from emp, dept where emp.deptno = dept.deptno and upper(job) = MANAGER group by dname;-44,列出所有員工的年工資,按年薪從低到高排序select

16、ename, to_char(sal+nvl(comm,0)*12, 9999,9999,00)年工資from emp order by 2;-45,顯示各部門員工薪金最高的前2名select * from (select ename, deptno, sal, row_number() over(partition by deptno order by sal desc)r from emp ) where r =2-46.顯示薪金最高的3位員工select * from (select ename, sal,dense_rank() over(order by sal desc) r fr

17、om emp) where r (select avg(sal) from emp p where e.deptn o=p,deptno);-52,給所有10部門的經(jīng)理(MANAGER)和20部門的職員(CLERK),增加薪金10%。update emp set sal=sal*(1+0.1) where (deptno=10 and upper(job)=MANAGER) or(deptno=20 and upper(job尸CLERK);-53,刪除DEPT中沒有員工的部門。delete from dept where deptno not in(select distinct deptn

18、o from emp);-54,刪除雇傭年限低于20年的員工。delete from emp where trunc(sysdate-hiredate) 2850;4,查詢工資不在1500到2850之間的所有雇員姓名和工資。select ename, sal from emp where sal not between 1500 and 2850;5,查詢10號部門和30號部門工資超過1500的雇員姓名和工資。select ename, sal from emp where sal (select avg(sal) from emp); 19.查詢工資、獎金與SCOTT完全相同的所有員工的姓名

19、、工資和獎金。select ename,sal, comm from emp where (sal,nvl(comm,-1) in (select sal,nvl(comm,-1) from emp whereename=SCOTT);20.查詢81年入職的員工select * from emp where to_char(hiredate, yy尸81;21.按年月日查詢員工信息select to_char(hiredate, yyyy-mm-dd )from emp;22.向DEPT表中插入一條數(shù)據(jù),要求:部門號為50,部門名稱為ADMINISTRATOR,部門位置為BOSTON。Inse

20、rt into dept values(50, ADMINISTRATOR,BOSTON);23.向EMP表中插入一條數(shù)據(jù),要求:員工號為2000,姓名為JOHN ,工資為1000,入職時間為2003年4月7日,部門號為30號。Insert into emp (empno,ename,sal,hiredate,deptno) values(2000, JOHN,1000,07-4月-03,30);24.給10號部門的每個雇員增加10%的工資。然后提交事務(wù)。Update emp set sal=sal*1.1 where deptno=10; commit25.刪除50號部門。然后回滾事務(wù)。Delete from dept where deptno=50;Rollback;新建一張學員信息表(student),要求:1 .字段如下:學號(sid),姓名(name),性另1J (sex),年齡(age),地址(address).2.分別為字段添加約束:學號為主鍵,姓名為非空,性別為檢查約束,年齡為檢查約束,地址為默認約束.3.為表建立自增值(sid),建議初始彳直從為1001,增量為1.4.插入記錄.新建一張課程表(course),要求:1 .字段如下:課程編號

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論