SQL ORACLE BASIC ASSIGNMENTS
-
Upload
rajesh-mandal -
Category
Documents
-
view
219 -
download
0
Transcript of SQL ORACLE BASIC ASSIGNMENTS
7/27/2019 SQL ORACLE BASIC ASSIGNMENTS
http://slidepdf.com/reader/full/sql-oracle-basic-assignments 1/7
ASSIGNMENT 3AKASH JAIN (02) AND KOUSTAV CHOUDHURY (38)
___________________________________JOINS________________________________________ _________________ #1. List deptno, dname along with total salary in each department.
SELECT D.DEPTNO,D.DNAME,TOTAL_SALFROM (SELECT DEPTNO,SUM(SAL) TOTAL_SAL FROM EMP GROUP BY DEPTNO) E INNER JOIN DEPT DON E.DEPTNO=D.DEPTNO;
DEPTNO DNAME TOTAL_SAL---------- -------------- ----------
10 ACCOUNTING 875020 RESEARCH 1087530 SALES 9400
________________________________________________________________________________ _____________ #2. List details from emp, dept and salgrade table excluding clerks
and employees with grade 1. Order on their names.
SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,E.SAL,G.GRADE,E.COMM,D.DEPTNO,D.DNAME,D.LOCFROM (SELECT * FROM EMP WHERE JOB!='CLERK') E INNER JOIN DEPT D
ON E.DEPTNO=D.DEPTNOINNER JOIN (SELECT * FROM SALGRADE WHERE GRADE!=1) GON E.SAL BETWEEN G.LOSAL AND G.HISALORDER BY E.ENAME;
EMPNO ENAME JOB MGR HIREDATE SAL GRADECOMM DEPTNO DNAME LOC---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ---------- ---
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 3300 30 SALES CHICAGO
7698 BLAKE MANAGER 7839 01-MAY-81 2850 430 SALES CHICAGO
7782 CLARK MANAGER 7839 09-JUN-81 2450 410 ACCOUNTING NEW YORK7902 FORD ANALYST 7566 03-DEC-81 3000 4
20 RESEARCH DALLAS7566 JONES MANAGER 7839 02-APR-81 2975 4
20 RESEARCH DALLAS7839 KING PRESIDENT 17-NOV-81 5000 5
10 ACCOUNTING NEW YORK7654 MARTIN SALESMAN 7698 28-SEP-81 1250 2
1400 30 SALES CHICAGO7788 SCOTT ANALYST 7566 09-DEC-82 3000 4
20 RESEARCH DALLAS7844 TURNER SALESMAN 7698 08-SEP-81 1500 3
0 30 SALES CHICAGO7521 WARD SALESMAN 7698 22-FEB-81 1250 2
500 30 SALES CHICAGO
10 rows selected. ________________________________________________________________________________ _____________ #3. List employee with grade 3 or 4
SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,E.SAL,G.GRADE,E.COMM,E.DEPTNO
7/27/2019 SQL ORACLE BASIC ASSIGNMENTS
http://slidepdf.com/reader/full/sql-oracle-basic-assignments 2/7
FROM EMP E INNER JOIN (SELECT * FROM SALGRADE WHERE GRADE=3 OR GRADE=4) GON E.SAL BETWEEN G.LOSAL AND G.HISAL;
EMPNO ENAME JOB MGR HIREDATE SAL GRADECOMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ----------
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 3300 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 30 307566 JONES MANAGER 7839 02-APR-81 2975 4
207698 BLAKE MANAGER 7839 01-MAY-81 2850 4
307782 CLARK MANAGER 7839 09-JUN-81 2450 4
107788 SCOTT ANALYST 7566 09-DEC-82 3000 4
207902 FORD ANALYST 7566 03-DEC-81 3000 4
20
7 rows selected. ________________________________________________________________________________
_____________ #4. List employees located in dallas.
SELECT E.EMPNO,E.ENAME,E.JOB,E.MGR,E.HIREDATE,E.SAL,E.COMM,D.DEPTNO,D.DNAME,D.LOCFROM EMP E INNER JOIN (SELECT * FROM DEPT WHERE LOC='DALLAS') DON E.DEPTNO=D.DEPTNO;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DNAME LOC---------- ---------- --------- ---------- --------- ---------- ---------- ---------- --------------
7369 SMITH CLERK 7902 17-DEC-80 800
20 RESEARCH DALLAS7876 ADAMS CLERK 7788 12-JAN-83 110020 RESEARCH DALLAS
7902 FORD ANALYST 7566 03-DEC-81 300020 RESEARCH DALLAS
7788 SCOTT ANALYST 7566 09-DEC-82 300020 RESEARCH DALLAS
7566 JONES MANAGER 7839 02-APR-81 297520 RESEARCH DALLAS
________________________________________________________________________________ _____________ #5. List ename, job, sal, grade, dname with annual renumeration greater than36000
or any clerks.
SELECT E.ENAME,E.JOB,E.SAL,G.GRADE,E.COMM,D.DNAME,E.SAL*12+DECODE(E.COMM,NULL,0,E.COMM) ANNUALFROM EMP E INNER JOIN DEPT DON E.DEPTNO=D.DEPTNOINNER JOIN SALGRADE GON E.SAL BETWEEN G.LOSAL AND G.HISALWHERE E.JOB='CLERK' OR E.SAL*12+DECODE(E.COMM,NULL,0,E.COMM) > 36000;
7/27/2019 SQL ORACLE BASIC ASSIGNMENTS
http://slidepdf.com/reader/full/sql-oracle-basic-assignments 3/7
7/27/2019 SQL ORACLE BASIC ASSIGNMENTS
http://slidepdf.com/reader/full/sql-oracle-basic-assignments 4/7
24507876 ADAMS CLERK 1100 7788 SCOTT ANALYST
30007566 JONES MANAGER 2975 7839 KING PRESIDENT
50007782 CLARK MANAGER 2450 7839 KING PRESIDENT
50007698 BLAKE MANAGER 2850 7839 KING PRESIDENT
50007369 SMITH CLERK 800 7902 FORD ANALYST
3000
11 rows selected. ________________________________________________________________________________ _____________ #8. Find the job that was filled in first half of 1981
and the same job that was filled during second half of 1981
SELECT DISTINCT FH.JOBFROM EMP FH INNER JOIN EMP SHON FH.HIREDATE <= TO_DATE('30-06-1981','DD-MM-YYYY') AND SH.HIREDATE > TO_DATE('30-06-1981','DD-MM-YYYY');
JOB
---------CLERKMANAGERSALESMAN
________________________________________________________________________________ _____________ #9. Find all employees who joined the company before their manager
SELECT E.EMPNO,E.ENAME,E.JOB,E.HIREDATE,E.MGR,M.ENAME MGR_NAME,M.HIREDATE MGR_HIREDATE,M.JOB MGR_JOBFROM EMP E INNER JOIN EMP MON E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE;
EMPNO ENAME JOB HIREDATE MGR MGR_NAME MGR_HIRED MGR_JOB---------- ---------- --------- --------- ---------- ---------- --------- ---------
7499 ALLEN SALESMAN 20-FEB-81 7698 BLAKE 01-MAY-81 MANAGER
7521 WARD SALESMAN 22-FEB-81 7698 BLAKE 01-MAY-81 MANAGER
7566 JONES MANAGER 02-APR-81 7839 KING 17-NOV-81 PRESIDENT
7782 CLARK MANAGER 09-JUN-81 7839 KING 17-NOV-81 PRESIDENT
7698 BLAKE MANAGER 01-MAY-81 7839 KING 17-NOV-81 PRESID
ENT7369 SMITH CLERK 17-DEC-80 7902 FORD 03-DEC-81 ANALYS
T
6 rows selected.
_________________________________________SUB-QUERIES____________________________ _____________ #10.List employees who are directly reporting to KING
7/27/2019 SQL ORACLE BASIC ASSIGNMENTS
http://slidepdf.com/reader/full/sql-oracle-basic-assignments 5/7
SELECT * FROM EMPWHERE MGR IN (SELECT EMPNO MGR FROM EMP WHERE ENAME='KING');
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7566 JONES MANAGER 7839 02-APR-81 297520
7782 CLARK MANAGER 7839 09-JUN-81 245010
7698 BLAKE MANAGER 7839 01-MAY-81 285030
________________________________________________________________________________ _____________ #11.List department with maximum average salary.
SELECT DEPTNO,AVG_SAL MAX_AVG_SALFROM (SELECT DEPTNO,AVG(SAL) AVG_SAL FROM EMP GROUP BY DEPTNO ORDER BY AVG_SAL DESC)WHERE ROWNUM=1;
DEPTNO MAX_AVG_SAL
---------- -----------10 2916.66667 ________________________________________________________________________________ _____________ #12.Find employees who earn highest salary in each job type.
SELECT *FROM EMPWHERE SAL >= ALL(SELECT MAX(SAL) HIGH_SAL FROM EMP GROUP BY JOB);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- -----
----- 7839 KING PRESIDENT 17-NOV-81 500010
________________________________________________________________________________ _____________ #13.List departments for which no employees exists.
SELECT *FROM DEPTWHERE DEPTNO NOT IN (SELECT DEPTNO FROM EMP GROUP BY DEPTNO);
DEPTNO DNAME LOC---------- -------------- -------------
40 OPERATIONS BOSTON ________________________________________________________________________________ _____________ #14.Analyze following query :
SELECT ENAME,SAL FROM EMP EWHERE 3 > (SELECT COUNT(*) FROM EMP
WHERE SAL > E.SAL)
ENAME SAL---------- ----------
7/27/2019 SQL ORACLE BASIC ASSIGNMENTS
http://slidepdf.com/reader/full/sql-oracle-basic-assignments 6/7
SCOTT 3000KING 5000FORD 3000
________________________________________________________________________________ _____________ #15.In which year did most people join the company. Display the year and no of employees
SELECT *FROM (SELECT TO_CHAR(HIREDATE,'YYYY') YEAR, COUNT(1) NO_OF_EMP FROM EMP
GROUP BY TO_CHAR(HIREDATE,'YYYY') ORDER BY NO_OF_EMP DESC)WHERE ROWNUM=1;
YEAR NO_OF_EMP---- ----------1981 10
________________________________________________________________________________ _____________ #16.Display the department details in which most employees are working.
SELECT *FROM DEPTWHERE DEPTNO=(SELECT DEPTNO FROM (SELECT DEPTNO,COUNT(1) NO_OF_EMP FROM EMP
GROUP BY DEPTNO ORDER BY NO_OF_EMP DESC) WHERE R
OWNUM=1);
DEPTNO DNAME LOC---------- -------------- -------------
30 SALES CHICAGO ________________________________________________________________________________ _____________ #17.Display the employee details under whom most employees are working.
SELECT *FROM EMPWHERE EMPNO=(SELECT MGR FROM (SELECT MGR,COUNT(1) NO_OF_EMP FROM EMP
GROUP BY MGR ORDER BY NO_OF_EMP DESC) WHERE ROWN
UM=1);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-81 285030
________________________________________VIEWS___________________________________ _____________ #18.Create a view which return department details
and all aggregate of each department in HR schema.
CREATE OR REPLACE VIEW AGGDEPTASSELECT D.DEPTNO,DNAME,LOC,NO_OF_EMP,SUM_SAL,MAX_SAL,AVG_SAL,MIN_SALFROM DEPT D LEFT JOIN (SELECT DEPTNO,COUNT(1) NO_OF_EMP,SUM(SAL) SUM_SAL,
MAX(SAL) MAX_SAL,AVG(SAL) AVG_SAL,MIN(SAL) MIN_SAL
FROM EMP GROUP BY DEPTNO) EON E.DEPTNO=D.DEPTNO;
7/27/2019 SQL ORACLE BASIC ASSIGNMENTS
http://slidepdf.com/reader/full/sql-oracle-basic-assignments 7/7
View created.
SQL> SELECT * FROM AGGDEPT;
DEPTNO DNAME LOC NO_OF_EMP SUM_SAL MAX_SAL AVG_ SAL MIN_SAL---------- -------------- ------------- ---------- ---------- ---------- ---------- ----------
10 ACCOUNTING NEW YORK 3 8750 5000 2916.66667 1300
20 RESEARCH DALLAS 5 10875 3000 2175 800
30 SALES CHICAGO 6 9400 2850 1566.66667 950
40 OPERATIONS BOSTON
________________________________________________________________________________ _____________ #19.Create a view which returns details of employees, departments
and respective locations for all the employees with employee_id < 100.
SQL> CREATE VIEW EMP_DEPT_DETAILS2 AS3 SELECT E.EMPNO,E.ENAME,E.DEPTNO,D.DNAME,D.LOC
4 FROM EMP E,DEPT D5 WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO<100;
View created.
SQL> SELECT * FROM EMP_DEPT_DETAILS;
no rows selected