Oracle資料庫習題

來源:互聯網
上載者:User

標籤:

以下習題都已Oracle資料庫中預設表為主體

1、列出至少有一個員工的所有部門。

SELECT DISTINCT D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO;

SELECT * FROM DEPT WHERE DEPTNO IN(SELECT DISTINCT DEPTNO FROM EMP);

SELECT DISTINCT D.DNAME FROM EMP E JOIN DEPT D USING(DEPTNO);

2、列出薪金比“SMITH”多的所有員工。(大於最大薪水SMITH員工)

SELECT ENAME FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME =‘SMITH‘);


3、列出所有員工的姓名及其直接上級的姓名。
SELECT E.ENAME,M.ENAME FROM EMP E,EMP M WHERE E.MGR=M.EMPNO;

SELECT E.ENAME,M.ENAME FROM EMP E JOIN EMP M ON(E.MGR=M.EMPNO);


4、列出受雇日期早於其直接上級的所有員工。

SELECT E.ENAME FROM EMP E,EMP M WHERE E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE;
SELECT E.ENAME FROM EMP E JOIN EMP M ON(E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE);

5、列出部門名稱和這些部門的員工資訊,包括那些沒有員工的部門。

SELECT D.DNAME,E.ENAME FROM EMP E FULL OUTER JOIN DEPT D USING(DEPTNO);

6、列出所有job為“CLERK”(辦事員)的姓名及其部門名稱。

SELECT E.ENAME,D.DNAME FROM EMP E FULL OUTER JOIN DEPT D USING(DEPTNO) WHERE JOB=‘CLERK‘;

SELECT E.ENAME,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND JOB =‘CLERK‘;

7、列出最低薪金大於1500的各種工作。

SELECT JOB,MIN(SAL) FROM EMP GROUP BY JOB HAVING MIN(SAL)>1500;

8、列出在部門“SALES”(銷售部)工作的員工的姓名,假定不知道銷售部的部門編號。

SELECT * FROM EMP E JOIN DEPT D USING (DEPTNO) WHERE D.DNAME=‘SALES‘;

9、列出薪金高於公司平均薪金的所有員工。
SELECT ENAME,SAL FROM EMP WHERE SAL>(SELECT AVG(SAL) FROM EMP);


10、列出與“SCOTT”從事相同工作的所有員工。

SELECT JOB FROM EMP WHERE ENAME=‘SOCTT‘;

SELECT ENAME FROM EMP WHERE ENAME<>‘SCOTT‘AND JOB=(SELECT JOB FROM EMP WHERE ENAME=‘SCOTT‘);

11、列出薪金等於部門30中員工的薪金的所有員工的姓名和薪金。

SELECT ENAME,SAL FROM EMP WHERE SAL IN (SELECT SAL FROM EMP WHERE DEPTNO=30)AND DEPTNO<>30;

 


12、列出薪金高於在部門30工作的所有員工的薪金的員工姓名和薪金。

SELECT ENAME,SAL FROM EMP WHERE SAL>ALL(SELECT SAL FROM EMP WHERE DEPTNO=30);

13、列出在每個部門工作的員工數量、平均工資和平均服務期限。
SELECT D.DNAME,COUNT(E.ENAME),AVG(SAL),AVG(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12)FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY D.DNAME;

14、列出所有員工的姓名、部門名稱和工資。

SELECT E.ENAME,D.DNAME,SAL FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO;

15、列出從事同一種工作但屬於不同部門的員工的一種組合。

select distinct M.ename from emp e,emp m where e.job=m.job and e.deptno<>m.deptno;

16、列出所有部門的詳細資料和部門人數。

SELECT d.DNAME,COUNT(E.ENAME) FROM EMP E ,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY D.DNAME;

17、列出各種工作的最低工資。
SELECT JOB,MIN(SAL) FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY E.JOB;

SELECT JOB,MIN(SAL) FROM EMP E JOIN DEPT D ON(E.DEPTNO=D.DEPTNO) GROUP BY E.JOB;

18、列出各個部門的MANAGER(經理)的最低薪金(job為MANAGER)。

SELECT DEPTNO,MIN(SAL) FROM EMP WHERE JOB=‘MANAGER‘GROUP BY DEPTNO;


19、列出所有員工的年工資,按年薪從低到高排序。

SELECT ENAME,(SAL*12+nvl(comm,0)*12)年薪 FROM EMP ORDER BY 年薪;

SELECT ENAME,(SAL*12+nvl(comm,0)*12)年薪 FROM EMP ORDER BY 1;

 

Oracle資料庫習題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.