sri(sql notes)

26
1..display all group function on sal? sql>SELECT MAX(SAL),MIN(SAL),SUM(SAL),AVG(SAL),COUNT(SAL) FROM EMP; 2..DISPLAY THOSE EMPLOYEE WHOSE SALARY IS EVEN NO? SQL>SELECT EMPNO,ENAME,SAL FROM EMP WHERE MOD(SAL,2)=0; 3..DISPLAY THOSE EMPLOYEES WHOSE SALARY KEEPS DECIMAL DIGIT? SQL>SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL LIKE %.%; 4..DISPLAY THE 3% OF SAL UPTO TWO DECIMAL DIGIT? SQL>SELECT EMPNO,ENAME,SAL*.03,ROUND(SAL*.03,2) FROM EMP; 5..DISPLAY THE EMPLOYEE WHOSE NAME HAS CHAR 'A'? SQL>SELECT EMPNO,ENAME FROM EMP WHERE ENAME LIKE 'A%'; 6..DISPLAY THE NAME IN UPPERCASE,JOB IN LOWER CASE? SQL> SELECT UPPER(ENAME),LOWER(JOB) FROM EMP; 7..DISPLAY THE NAME WITH 5 LEADING MINUS SIGN? SOL..SELECT ENAME,'-----'||ENAME FROM EMP; 8..DISPLAY THE EMPLOYEE NAME,JOB,ANNUAL SAL,AND TOTAL COMPENSATION FOR ALL EMPLOYEES; SQL>SELECT ENAME,JOB,(SAL+NVL(COMM,0))*12 FROM EMP 9..DISPLAY THE DIFFERENT TYPE OF JOB IN EMP? SQL>SELECT DISTINCT JOB FROM EMP;

Upload: rupa-reddy

Post on 24-Oct-2014

133 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sri(SQL Notes)

1..display all group function on sal?sql>SELECT MAX(SAL),MIN(SAL),SUM(SAL),AVG(SAL),COUNT(SAL)FROM EMP;

2..DISPLAY THOSE EMPLOYEE WHOSE SALARY IS EVEN NO?SQL>SELECT EMPNO,ENAME,SAL           FROM EMPWHERE MOD(SAL,2)=0;

3..DISPLAY THOSE EMPLOYEES WHOSE SALARY KEEPS DECIMAL DIGIT?SQL>SELECT EMPNO,ENAME,SAL          FROM EMP       WHERE SAL LIKE %.%;4..DISPLAY THE 3% OF SAL UPTO TWO DECIMAL DIGIT?SQL>SELECT EMPNO,ENAME,SAL*.03,ROUND(SAL*.03,2)          FROM EMP;

5..DISPLAY THE EMPLOYEE WHOSE NAME HAS CHAR 'A'?SQL>SELECT EMPNO,ENAMEFROM EMPWHERE ENAME LIKE 'A%';

6..DISPLAY THE NAME IN UPPERCASE,JOB IN LOWER CASE?SQL>  SELECT UPPER(ENAME),LOWER(JOB)FROM EMP;

7..DISPLAY THE NAME WITH 5 LEADING MINUS SIGN?SOL..SELECT ENAME,'-----'||ENAME           FROM EMP;

8..DISPLAY THE EMPLOYEE NAME,JOB,ANNUAL SAL,AND    TOTAL COMPENSATION FOR ALL EMPLOYEES;SQL>SELECT ENAME,JOB,(SAL+NVL(COMM,0))*12FROM EMP

9..DISPLAY THE DIFFERENT TYPE OF JOB IN EMP?SQL>SELECT DISTINCT JOB          FROM EMP;

10..DISPLAY THE EMPLOYEE WHOSE COMM IS MORE THAN 25% OF SALARY?SQL>SELECT ENAME,SALFROM EMPWHERE COMM>(SAL*.25);

Page 2: Sri(SQL Notes)

11..DISPLAY THE NAME,JOB,AND MGR FOR EMPLOYEE WHOSE SALESMAN OR MANAGER?SQL>SELECT EMPNO,ENAME,MGR,JOBFROM EMPWHERE JOB = 'SALESMAN' OR JOB='MANAGER';

12..DISPLAY THE NAME,JOB,SAL WITH THE FOLLOWING CONDITION  A)     WHERE DEPTNO=20 OR DEPTNO=10 AND JOB=MANAGER;SQL>SELECT ENAME,JOB,SAL,DEPTNOFROM EMPWHERE(( DEPTNO=20 OR DEPTNO=10) AND JOB='MANAGER');

B)WHERE DEPTNO=20 OR(DEPTNO=10 AND JOB='MANAGER')?SQL>SELECT EMPNO,ENAME,JOB,SAL,DEPTNOFROM EMPWHERE DEPTNO=20 OR(DEPTNO=10 AND JOB='MANAGER')ORDER BY DEPTNO;

C)WHERE (DEPTNO=20 OR DEPTNO=10)AND JOB='MANAGER'?SELECT EMPNO,ENAME,JOB,SAL,DEPTNOFROM EMPWHERE (DEPTNO=20 OR DEPTNO=10)AND JOB='MANAGER'ORDER BY DEPTNO;

13>DISPLAY EMPLOYEES WHOSE EMPNO IS GREATER THAN 7799 AND LESS THEN 7901?SQL>SELECT EMPNO,ENAME,JOB,SAL,DEPTNOFROM EMPWHERE EMPNO>7799 AND EMPNO<7901

14>DISPLAY THE NAME WHICH START WITH 'J',ENDS WIH 'S' AND HAVING THE CHAR  'E' IN THE NAME?SQL>SELECT EMPNO,ENAMEFROM EMPWHERE ENAME LIKE 'J%E%S';

15>DISPLAY THE NAME OF 05 CHARS AND ENDS WITH 'S'?SQL>SELECT EMPNO,ENAMEFROM EMPWHERE ENAME LIKE '____S';

16>DISPLAY DEPT WISE TOTAL SALARY

SQL>select deptno,sum(sal) from emp group by deptno;

17>DISPLAY AVG(SUM(SAL),SUM(AVG(SAL) AND SEE THE DIFFERENCE>SQL>SELECT AVG(SUM(SAL)),SUM(AVG(SAL)),AVG(SUM(SAL))-SUM(AVG(SAL))FROM EMP GROUP BY EMPNO;

Page 3: Sri(SQL Notes)

18>DISPLAY THE DEPT WHICH HAVING TWO      OR MORE EMPLOYEE OF SAME JOB?

19>DISPLAY THE EMPLOYEE WHO JOIN THE COMPANY OTHER THAN THE YEAR 81?SQL>SELECT * FROM EMPWHERE HIREDATE NOT BETWEEN '01-JAN-81' AND '31-DEC-81';

20>DISPLAY THE EMPNO,ENAME,JOB USING SUB QUERY IN PLACE OF         TABLE----INLINE VIEW?SQL>DOUBT SHOULD BE CLARFIED

21>DISPLAY THOSE EMPLOYEES WHOSE GRADE IS 3 AND JOB OTHER THAN MANAGER?SQL>/SELECT E.EMPNO,E.ENAME,S.GRADE,E.JOBFROM EMP E,SALGRADE SWHERE E.SAL BETWEEN S.LOSAL AND S.HISALAND S.GRADE=3 ANDE.JOB NOT IN('MANAGER');

24>DISPLAY THE EMPLOYEES WHO GET MAX(SAL) IN HIS DEPT?/SELECT EMPNO,ENAME,SAL,DEPTNOFROM EMPWHERE SAL IN(SELECT MAX(SAL) FROM EMP);

25>DISPLAY THE EMPNO,ENAME,JOB,DEPTNO,DNAME,LOC       WITH DEPT WHICH AS NO EMPLOYEES?SQL>

26>DISPLAY MANAGERS NAMES     AND TOTAL SALARY PAID FOR EMPLOYEE UNDER THEM?SQL>SELECT B.ENAME,SUM(A.SAL)FROM EMP A,EMP BWHERE B.EMPNO=A.MGRGROUP BY B.ENAME;

27>DISPLAY THE GRADES AND TOTAL SALARY PAID FOR   EACH GRADE?SQL> SELECT B.GRADE,SUM(A.SAL)  2  FROM EMP A,SALGRADE B  3  WHERE A.SAL BETWEEN LOSAL AND HISAL  4  GROUP BY B.GRADE;

Page 4: Sri(SQL Notes)

28>DISPLAY EACH DEPT NAME AND NO OF EMPLOYEES     WORKING IN IT  ?SQL> SELECT A.DEPTNO,B.DNAME,COUNT(*)  2  FROM EMP A,DEPT B  3  WHERE A.DEPTNO=B.DEPTNO  4  GROUP BY A.DEPTNO,B.DNAME;

29>DISPLAY EACH JOB CATAGORIES  AND NO OF EMPLOYEES WORKING IN IT?SQL> SELECT DISTINCT JOB,COUNT(*)  2  FROM EMP  3  GROUP BY JOB;

30>DISPLAY  MANAGER  WHO ARE MANAGER FOR LEAST NO OF  EMPLOYEES?SQL> SELECT A.ENAME,COUNT(*)  2  FROM EMP A,EMP B  3  WHERE A.EMPNO=B.MGR  4  GROUP BY A.ENAME;

31>DISPLAY MANAGER WHO ARE MANGER FOR LEAST NO OF EMPLOYEESSQL>  1  SELECT A.ENAME,COUNT(*)  2  FROM EMP A,EMP B  3  WHERE A.EMPNO=B.MGR  4  GROUP BY A.ENAME  5  HAVING COUNT(*)=(SELECT MIN(COUNT(*))  6   FROM EMP  7*  GROUP BY ENAME);

SQL>  1  SELECT A.ENAME,COUNT(*)  2  FROM EMP A,EMP B  3  WHERE A.EMPNO=B.MGR  4  GROUP BY A.ENAME  5* HAVING COUNT(*)<3;

32>DISPLAY LEAST 3 SALARY PAID EMPLOYEESQL>SELECT  ROWNUM,ENAME,SALFROM (SELECT ROWNUM,ENAME,SAL      FROM EMP      ORDER BY SAL)GROUP BY ROWNUM,SAL,ENAMEHAVING ROWNUM<=3;

33>DISPLAY THE DEPT WHERE MINIMUM NO OF EMPLOYEES WORKING?SQL>SELECT DEPTNO,COUNT(*)FROM EMPGROUP BY DEPTNO

Page 5: Sri(SQL Notes)

HAVING COUNT(*)=(SELECT MIN(COUNT(*))                                     FROM EMP                                     GROUP BY DEPTNO);

34>DISPLAY THE ROW B/W 6 th  AND 10th?SQL>SELECT ROWNUM,EMPNO,ENAME,SAL,JOBFROM EMPWHERE ROWNUM<10MINUSSELECT ROWNUM,EMPNO,ENAME,SAL,JOBFROM EMPWHERE ROWNUM<6;

35>DISPLAY 9 ROW?SQL>SELECT ROWNUM,ENAMEFROM EMPGROUP BY ROWNUM,ENAMEHAVING ROWNUM=9;

36>DISPLAY THE 4 th ROW AND THE LAST ROW?SQL>SELECT ROWNUM,ENAME   FROM EMP    GROUP BY ROWNUM,ENAME   HAVING ROWNUM=4   UNION    SELECT ROWNUM,ENAME    FROM EMP    GROUP BY ROWNUM,ENAME   HAVING ROWNUM=(SELECT MAX(ROWNUM)FROM EMP);

37>DISPLAY THE LAST 10 ROWS?SQL.SELECT ROWNUM,ENAMEFROM EMP MINUSSELECT ROWNUM,ENAMEFROM EMP WHERE ROWNUM<=(SELECT MAX(ROWNUM)-10 FROM EMP);

38>DISPLAY THE LAST 1st 6 ROWS?SQL>SELECT ROWNUM,ENAME       FROM EMP       GROUP BY ROWNUM,ENAME  MINUS         SELECT ROWNUM,ENAME         FROM EMP         GROUP BY ROWNUM,ENAME

Page 6: Sri(SQL Notes)

         HAVING ROWNUM>=7;

39>DISPLAY ALTERNATIVE ROWS?SQL>SELECT ROWNUM,ENAME          FROM EMP          GROUP BY ROWNUM,ENAME            HAVING MOD(ROWNUM,2)=0

40>DISPLAY THE EMPLOYEE WHO GET SAME SALARY?SQL> SELECT * FROM EMPWHERE SAL IN(SELECT SAL FROM EMP              GROUP BY SAL              HAVING COUNT(SAL)>1)

41>DISPLAY 'A' IF SAL IS MORE THAN COMM  ELSE 'B'?SQL>SELECT SAL ,COMM,DECODE(GREATEST(SAL,NVL(COMM,0)),SAL,'A',COMM,'B') FROM EMP;

42>DISPLAY THE EMPLOYEE WHO WORK WITH BLAKE AND HAVING GRADE>=3?SQL>SELECT A.ENAME,G.GRADE        FROM EMP A,EMP B,SALGRADE G        WHERE B.EMPNO=A.MGR       AND B.SAL BETWEEN G.LOSAL AND G.HISAL      AND B.ENAME LIKE 'BLAKE'      AND G.GRADE>=3;

43>DISPLAY THOSE EMPLOYEES WHOSE MANAGER GETTING SALARY>=3000?SQL>SELECT A.ENAME,A.JOBFROM EMP A,EMP BWHERE A.MGR=B.EMPNOAND B.SAL>=3000;

44>DISPLAY THE JOB WHICH HAVING MORE EMPLOYEES OF GRADE 3?SQL>SELECT A.JOB,COUNT(*),G.GRADE   FROM EMP A,SALGRADE G    WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL  GROUP BY A.JOB,G.GRADE  HAVING COUNT(*)>(SELECT MAX(COUNT(*)) FROM EMP                   GROUP BY EMPNO)  AND G.GRADE=3;

45> DISPLAY THE GRADE WHICH HAVING MORE EMPLOYEES?SQL>SELECT COUNT(*),G.GRADE   FROM EMP A,SALGRADE G    WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL  GROUP BY G.GRADE  HAVING COUNT(*)>(SELECT MAX(COUNT(*)) FROM EMP

Page 7: Sri(SQL Notes)

                                      GROUP BY JOB)

46>PRINT WEBNOLOGY AS WEB-NO-LOGY?SQL>SELECT 'WEBNOLOGY'      ,DECODE('WEBNOLOGY'      ,'WEBNOLOGY'      ,'WEB_NO_LOGY'      ) FROM DUAL

------------------------------------------------------------------------1.DISPLAY THOSE EMPLOYEES WHO GET SAME SALARY?SQL>SELECT A.ENAME,A.SALFROM EMP AWHERE SAL IN(SELECT B.SAL FROM  EMP B                            GROUP BY B.SALHAVING COUNT(*)>1)/

2>DISPLAY LAST 5 RECORDS?SQL>SELECT ROWNUM,ENAME  FROM EMP  MINUS  SELECT ROWNUM,ENAME  FROM EMP  WHERE ROWNUM<=(SELECT MAX(ROWNUM)-5 FROM EMP)

3>DISPLAY THE ALTERNATIVE RECORDS?SQL>SELECT ROWNUM,ENAMEFROM EMPGROUP BY ROWNUM,ENAMEHAVING MOD(ROWNUM,2)=1/

4>DISPLAY THOSE EMPLOYEES WHO ARE NOT MANAGER?SQL>SELECT ENAME,JOBFROM EMPWHERE JOB NOT IN('MANAGER')

5>DISPLAY THE THIRD HIGEST PAID EMPLOYEE?SQL>SELECT ROWNUM,ENAME,SAL          FROM(SELECT ROWNUM,ENAME,SAL FROM EMP          ORDER BY SAL DESC)          GROUP BY ROWNUM,ENAME,SAL           HAVING ROWNUM=3

6>DISPLAY 7th RECORD?SOL>SELECT ROWNUM ,EMPNO,ENAMEFROM(SELECT ROWNUM,EMPNO,ENAME

Page 8: Sri(SQL Notes)

             FROM EMP             ORDER BY ROWNUM ASC)GROUP BY ROWNUM,EMPNO,ENAMEHAVING ROWNUM=7

7>DISPLAY RECORDS B/W 10th TO 12th?SQL>SELECT ROWNUM ,EMPNO,ENAMEFROM(SELECT ROWNUM,EMPNO,ENAME             FROM EMP             ORDER BY ROWNUM ASC)GROUP BY ROWNUM,EMPNO,ENAMEHAVING ROWNUM BETWEEN 10 AND 12

8>DISPLAY LAST RECORD?SQL>SELECT ROWNUM,EMPNO,ENAMEFROM EMPGROUP BY ROWNUM,EMPNO,ENAMEHAVING ROWNUM=(SELECT MAX(ROWNUM)FROM EMP)

10>DISPLAY TH E EMPLOYEE WHO GET MAX SAL IN THEIR            DEPT?SQL>SELECT ENAME,SALFROM EMPWHERE SAL IN(SELECT MAX(SAL) FROM EMP)

11>DISPLAY THE EMPLOYEE WHO GWT MORE SALARY THAN AVG SALARY IN THEIR DEPT?SQL>SELECT ENAME,SALFROM EMPWHERE SAL >(SELECT AVG(SAL) FROM EMP)

12>DISPLAY THE NAME OF MANAGER FOR EACH EMPLOYEE?SQL>SELECT A.ENAME,B.ENAMEFROM EMP A, EMP BWHERE A.MGR=B.EMPNO

13>DISPLAY THE EMPLOYEE WHO JOIN THE DEPT BEFORE THEIR MANAGER?SQL>SELECT A.ENAMEFROM EMP A, EMP BWHERE A.MGR=B.EMPNOAND A.HIREDATE>B.HIREDATE

14>DISPLAY THE FIRST FIVE HIGHEST PAID EMPLOYEE?SQL>SELECT ROWNUM ,SALFROM(SELECT SALFROM EMPORDER BY SAL)GROUP BY ROWNUM,SALHAVING ROWNUM<=5/15>DISPLAY LAST FIVE LEAST PAID EMPLOYEES?

Page 9: Sri(SQL Notes)

16>PRINT LIKE                               *                           *     *                       *       *        *                   *      *    *      *  *SQL>SELECT LPAD('  ',3,'*')FROM DUALUNIONSELECT LPAD('  ',4,'*')FROM DUALUNIONSELECT LPAD('  ',5,'*')FROM DUALUNIONSELECT LPAD('  ',6,'*')FROM DUAL

17>PRINT LIKE         A         AS         ASH         ASHO         ASHOKSQL>SELECT LPAD('  ',3,'A')FROM DUALUNIONSELECT LPAD('  ',4,'AS')FROM DUALUNIONSELECT LPAD('  ',5,'ASH')FROM DUALUNIONSELECT LPAD('  ',6,'ASHO')FROM DUALUNIONSELECT LPAD('  ',7,'ASHOK')FROM DUAL

18>DISPLAY THE HIEARCHIES OF EMPLOYEES?SQL>SELECT LPAD(' ',LEVEL*3,'')||ENAMEFROM EMPSTART WITH MGR IS NULLCONNECT BY PRIOR EMPNO=MGR

19>DISPLAY THE MANAGER WHO HAS MORE THAN    THREE EMPLOYEES UNDER HIM?SQL>SELECT A.ENAME,COUNT(*)

Page 10: Sri(SQL Notes)

        FROM EMP A,EMP B        WHERE A.EMPNO=B.MGR        GROUP BY A.ENAME       HAVING COUNT(*)>3

20>DISPLAY THE EMPLOYEE WHO HAS SAME JOB IN DEPT?

21>DISPLAY ALL MANAGER NAME?SQL>SELECT A.ENAME,A.EMPNO,COUNT(*)       FROM EMP A,EMP B       WHERE A.EMPNO=B.MGR       GROUP BY A.ENAME,A.EMPNO

22>DISPLAY THE MANAGER NAME UNDER WHOM SALESMAN WORKS?SQL>SELECT B.ENAME,B.DEPTNO,A.JOB,A.ENAME,A.DEPTNO         FROM EMP A,EMP B         WHERE A.MGR=B.EMPNO         AND A.JOB='SALESMAN'

23>DISPLAY THE EMPLOYEE WHO WORKS IN        THEIR MANAGER DEPT?SQL>SELECT A.ENAME           FROM EMP A           WHERE A.DEPTNO=(SELECT B.DEPTNO FROM EMP B           WHERE A.MGR=B.EMPNO)

24>DISPLAY THE EMPLOYEE WHO WORKS WITH FORD                                        AND GETTING SAME SALARY?SQL>SELECT A.ENAME  FROM EMP A,EMP B   WHERE B.EMPNO=A.MGR   AND  B.ENAME='FORD'   AND A.SAL=B.SAL

26>DISPLAY THE EMPLOYEE WHO WORKS IN DEPT=20               AND JOB LIKE SALES DEPT?

SQL>SELECT ENAME,DEPTNO,JOB          FROM EMP        WHERE DEPTNO=20        AND JOB='SALESMAN';

27>DISPLAY THE MANAGER NAME AND THEIR DEPT NAME?

SQL>SELECT A.ENAME,D.DNAME         FROM EMP A,EMP B,DEPT D          WHERE A.MGR=B.EMPNO         AND A.DEPTNO=B.DEPTNO

Page 11: Sri(SQL Notes)

        GROUP BY A.ENAME,D.DNAME

28>DISPLAY THE EMPLOYEE NO EVEN/ODD?SQLSELECT EMPNO FROM EMPWHERE MOD(EMPNO,2)=1

SQL>SELECT EMPNO FROM EMPWHERE MOD(EMPNO,2)=O

29>DISPLAY THE RECORD NO OF EMP/DEPT TOGETHER ASSQL>SELECT 'DEPT'TABL ,COUNT(*)RECORDNO           FROM DEPT        UNION            SELECT 'EMP' TABL ,COUNT(*)RECORDNO               FROM EMP

30>DISPLAY THE SALARY OF ALL MANAGER?SQL>SELECT A.ENAME,A.SAL    FROM EMP A,EMP B           WHERE A.MGR=B.EMPNO

31>DISPLAY THE EMPLOYEE WHO JOINED FIRST HALF OF THE MONTH?SQL>SELECT ENAME,JOB,HIREDATEFROM EMPWHERE SUBSTR(HIREDATE,1,2)BETWEEN 1 AND 15/

32>DISPLAY THE MIDDLE CHAR OF NAME ,IF NAMES KEEPS ODD NUMBER OF CHARACTERS?SQL>SELECT ENAME,SUBSTR(ENAME,ROUND(LENGTH(ENAME)/2),1)FROM EMP

33>DISPLAY EMPLOYEES WHOSE NAME AND THEIR MANAGER NAME START WITH SAME CHARCTER?SQL>SELECT A.ENAME,B.ENAME        FROM EMP A, EMP B         WHERE A.MGR=B.EMPNO           AND ASCII(A.ENAME)=ASCII(B.ENAME)

                      CO-RELATED QUERIES                     =-=-=-=-=-=-=-=-=-=-

1>DISPLAY THOSE EMPLOYEES WHOSE DEPT IS SAME AS THEIR MANAGER DEPT?SQL>SELECT A.ENAME,A.DEPTNO

Page 12: Sri(SQL Notes)

          FROM EMP A           WHERE A.DEPTNO=(SELECT B.DEPTNO FROM EMP B                                              WHERE A.MGR=B.EMPNO)

2>DISPLAY THOSE EMPLOYEES WHO SAL IS GREATER THEN THE AVG SAL OF DEPT?SQL.SELECT A.ENAME,A. SAL      FROM EMP A      WHERE A.SAL>(SELECT AVG(SAL) FROM EMP B WHERE        A.DEPTNO=B.DEPTNO)

3>DISPLAY THE EMPLOYEE WHO JOINED BEFORE HIS MANAGER?SQL>SELECT A.ENAME,A.HIREDATE        FROM EMP A          WHERE A.HIREDATE<(SELECT B.HIREDATE FROM EMP  B        WHERE A.MGR=B.EMPNO)

4>DISPLAY THOSE EMPLOYEE WHO      JOINED IN SAME DATE AS THEIR MANAGER?SQL>SELECT A.ENAME,A.HIREDATE        FROM EMP A          WHERE A.HIREDATE=(SELECT B.HIREDATE FROM EMP  B                                                  WHERE A.MGR=B.EMPNO)

5>DISPLAY  THOSE MANAGER WHOSE SALARY IS        GREATER THAN THEIR EMPLOYEE?SQL>SELECT A.ENAME,A.SAL         FROM EMP A            WHERE A.SAL>(SELECT B.SAL FROM EMP  B            WHERE A.MGR=B.EMPNO)

6>DISPLAY THOSE EMPLOYEES WHOSE JOB='MANAGER'        AND DO NOT HAVE SUBORDINATESSQL>SELECT B.ENAME,COUNT(A.ENAME)FROM EMP A,EMP BWHERE A.MGR=B.EMPNOGROUP BY B.ENAMEHAVING COUNT(A.ENAME)<=0/

7>DISPLAY THOSE EMPLOYEES WHOSE SALARY IS SAME AS THEIR MANAGER        SALARYSQL>SELECT A.ENAME,A.SAL         FROM EMP A            WHERE A.SAL=(SELECT B.SAL FROM EMP  B            WHERE A.MGR=B.EMPNO)

8>DISPLAY MANAGER WHOSE SALARY IS LESS THAN THEIR EMPLOYEES SALARYSQL> SELECT A.ENAME,A.SAL

Page 13: Sri(SQL Notes)

         FROM EMP A            WHERE  A.EMPNO IN(SELECT B.MGR                                               FROM EMP B                                            WHERE A.SAL<B.SAL)

                                       JOINS QURIES                                      -=-=-=-=-=-=-=-     

1>DISPLAY MANAGERS AND THEIR SALARY GRADES?SQL>SELECT A.ENAME,A.SAL,G.GRADE           FROM EMP A,SALGRADE G          WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL           AND A.JOB='MANAGER'

2>DISPLAY THE EMPLOYEES NAMES AND DEPT NAMES BUT SALARY SHOULD BE 2000 AND MORE?SQL>SELECT A.ENAME,D.DNAME            FROM EMP A,DEPT D           WHERE A.DEPTNO=D.DEPTNO            AND A.SAL >=2000

3>DISPLAY THE EMPLOYEES NAMES AND DEPT NAMES BUT SALARY IS MORE THAN 2000?SQL>SELECT A.ENAME,D.DNAME        FROM EMP A,DEPT D         WHERE A.DEPTNO=D.DEPTNO         AND A.SAL >2000

4>DISPLAY EMPLOYEES NAMES WHOSE GRADE IS 3 AND THEIR JOB IS    CLERCK OR SALESMAN?SQL>SELECT A.ENAME,G.GRADE,A.JOB         FROM EMP A,SALGRADE G         WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL         AND G.GRADE=3 /        AND (A.JOB='CLERCK' OR A.JOB='SALESMAN')

5>DISPALY THE EMPLOYEES NAME AND THEIR SALARY GRADESQL>SELECT A.ENAME,G.GRADE,A.JOB         FROM EMP A,SALGRADE G         WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL

6>DISPLAY THE EMPLOYEES NAME        AND THEIR MANAGERS NAME?SQL>SELECT A.ENAME,B.ENAME

Page 14: Sri(SQL Notes)

         FROM EMP A, EMP B         WHERE A.MGR=B.EMPNO

7>DISPLAY THE EMPLOYEE AND MANAGERS NAMES AND       HIREDATES OF THOSE EMPLOYEES WHO JOINED BEFORE        THEIR MANAGER?SQL>SELECT A.ENAME,B.ENAME,A.HIREDATE        FROM EMP A, EMP B       WHERE A.MGR=B.EMPNO       AND A.HIREDATE<B.HIREDATE

                        GROUP BY                      _-_-_-_-_-_-_

1>DISPLAY ALL THE DEPARTMENT NAMES AND TOTAL      SALARY PAID FOR EACH DEPT?SQL>SELECT DEPTNO,SAL,COUNT(*)           FROM EMP          GROUP BY DEPTNO,SAL 

2>DISPLAY JOB AND TOTAL SALARY PAID FOR EACH JOB?SQL>SELECT A.JOB,SUM(B.SAL)FROM EMP A,EMP BWHERE A.EMPNO=B.EMPNOGROUP BY A.JOB

3>DISPLAY LOCATIONWISE AND JOB WISE TOTAL SALARY?SQL>SELECT A.JOB,SUM(B.SAL)FROM EMP A,EMP BWHERE A.EMPNO=B.EMPNOGROUP BY A.JOBUNIONSELECT D.LOC,SUM(A.SAL)FROM EMP A,DEPT DWHERE A.DEPTNO=D.DEPTNOGROUP BY D.LOC/4>DISPLAY THE NAMES OF MANAGER WITH TOTAL NO EMPLOYEES WORKING UNDER THEM?SQL>SELECT B.ENAME,COUNT(A.ENAME)FROM EMP A,EMP BWHERE A.MGR=B.EMPNOGROUP BY B.ENAME/5>DISPLAY GRADES AND NO. OF EMPLOYEES AVAILABLE FOR EACH GRADE?SQL>SELECT G.GRADE,COUNT(A.ENAME)FROM EMP A,SALGRADE GWHERE A.SAL BETWEEN G.LOSAL AND G.HISALGROUP BY G.GRADE/                      

Page 15: Sri(SQL Notes)

                           HAVING CLAUSE                        -_-_-_-_-_-_-_-_-_-_1.DISPLAY MANAGERS WHO ARE HAVING THREE OR MORE    SUBORDINATESQL>SELECT B.ENAME,COUNT(A.ENAME)FROM EMP A,EMP BWHERE A.MGR=B.EMPNOGROUP BY B.ENAMEHAVING COUNT(A.ENAME)>3/

2.DISPLAY DEPARTMENT WHICH PAYING MORE THAN 10000    SALARIES PER MONTH  SQL>DOUBTS

3>DISPLAY THOSE GRADES FOR WHICH ATLEAST 2      EMPLOYEES ARE AVAILABLE?SQL>SELECT G.GRADE,COUNT(A.ENAME)       FROM EMP A,SALGRADE G        WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL      GROUP BY G.GRADE        HAVING COUNT(A.ENAME)>=2      4>DISPLAY THE DEPARTMENT  WHERE MAXIMUM NO OF     EMPLOYEES WORKING?SQL>SELECT DEPTNO,COUNT(ENAME)         FROM EMP         GROUP BY DEPTNO

               OTHER QUERIES USING(GROUP BY/HAVING)      ===================================1>DISPLAY THE MANAGER NAMES AND TOTAL SALARY PAID      FOR EMPLOYEES UNDER THEM?      SELECT B.ENAME,SUM(A.SAL)FROM EMP A,EMP BWHERE A.MGR=B.EMPNOGROUP BY B.ENAME /

2>DISPLAY THE GRADES AND TOTAL SALARY PAID FOR EACH GRADE?SQL>SELECT G.GRADE,SUM(A.SAL)FROM EMP A,SALGRADE GWHERE A.SAL BETWEEN G.LOSAL AND G.HISALGROUP BY G.GRADE/

3>DISPLAY EACH DEPT NAME AND NO OF EMPLOYEES    WORKING IN IT?

Page 16: Sri(SQL Notes)

SQL>SELECT D.DNAME,COUNT(A.ENAME)FROM EMP A ,DEPT DWHERE A.DEPTNO=D.DEPTNOGROUP BY D.DNAME/

4>DISPLAY EACH JOB CATAGORY AND NO OF EMPLOYEE    WORKING FOR IT?SQL>SELECT A.JOB,COUNT(B.ENAME)FROM EMP A,EMP BWHERE A.EMPNO=B.EMPNOGROUP BY A.JOB/5>DISPLAY MANAGERS WHO ARE MANAGERS FOR LEAST NO OF WMPLOYEESSQL>SELECT B.ENAME,COUNT(A.EMPNO)FROM EMP A,EMP BWHERE B.EMPNO=A.MGRGROUP BY B.ENAMEHAVING COUNT(A.EMPNO)>=(SELECT MAX(COUNT(A.EMPNO))                                                     FROM EMP                                                 GROUP BY B.ENAME )/

7.>  DISPLAY THE DEPT WHERE MIN NO OF EMPLOYEES               WORKING?SQL>SELECT DEPTNO,COUNT(EMPNO)FROM EMPGROUP BY DEPTNO          HAVING COUNT(EMPNO)>=(SELECT MAX(COUNT(EMPNO)) FROM EMPGROUP BY DEPTNO)/

                         SET OPERATORS                       -------------------------

1>  DISPLAY THOSE WHO ARE EMPLOYEES  AS WELL AS   MANAGERS?SQL>SELECT ENAME,JOBFROM EMPINTERSECT SELECT ENAME,JOBFROM EMP WHERE JOB='MANAGER'/2>DISPLAY THOSE WHO ARE NOT MANAGER?SQL>SELECT ENAME FROM EMPMINUS

Page 17: Sri(SQL Notes)

SELECT ENAME FROM EMPWHERE JOB NOT IN'MANAGER' 

/

3>DISPLAY THOSE DEPT WHICH DONOT HAVE EMPLOYEES?SQL>SELECT DEPTNO FROM DEPTMINUS SELECT D.DEPTNOFROM EMP A,DEPT DWHERE A.DEPTNO=D.DEPTNO/

4>3>DISPLAY THOSE DEPT WHICH  HAVE EMPLOYEES?SQL>SELECT DEPTNO FROM DEPTINTERSECT SELECT D.DEPTNOFROM EMP A,DEPT DWHERE A.DEPTNO=D.DEPTNO/

5>FIND NO. OF ALL RECORDS FROM ALL THE TABLE?SQL>SELECT 'EMP'EMP,COUNT(*)RECORDFROM EMPUNIONSELECT 'DEPT'DEPT,COUNT(*)RECORDFROM DEPTUNIONSELECT 'SALGRADE'SALGRADE,COUNT(*)RECORDFROM SALGRADE/

                          FUNCTION-BASED QUERIES                            IIIIIIIIIIIIIIIIIIIIIIIII

1>DISPLAY THOSE EMPLOYEES WHO JOINED IN THE YEAR     82 AND 83SQL>SELECT ENAME,HIREDATE,JOB         FROM EMP         WHERE (SUBSTR(HIREDATE,8,2)=82 OR          SUBSTR(HIREDATE,8,2)=83)

2>DISPLAY THOSE EMPLOYEES WHO JOINED IN FIRST HALF OF ANY MONTH?SQL>SELECT ENAME,HIREDATE,JOBFROM EMPWHERE SUBSTR(HIREDATE,1,2) BETWEEN 1 AND 15/

Page 18: Sri(SQL Notes)

3>DISPLAY THOSE EMPLOYEES WHOSE NAME AND THIER MANAGER NAME START WITH SAME CHARACTER?SQL>SELECT B.ENAME,A.ENAMEFROM EMP A,EMP BWHERE A.MGR=B.EMPNOAND ASCII(B.ENAME)=ASCII(A.ENAME)/

4>DISPLAY THOSE EMPLOYEES WHOSE NAME AND JOB    COLOUMNS HAVING SAME NUMBER OF CHARACTERS?SQL>SELECT ENAME,JOB FROM EMP         WHERE LENGTH(ENAME)=LENGTH(JOB)        /                                        #OTHERS                             IIIIIIIIIIIIII

1>DISPLAY THOSE EMPLOYEES WHO JOINED THE COMPANY    20 OR MORE BEFORE?SQL>SELECT EMPNO,ENAME,JOB,HIREDATE        FROM EMP    WHERE MONTHS_BETWEEN(SYSDATE,HIREDATE)/12>=20/

2>DISPLAY THE LAST DAY OF FEB 2001?SQL>SELECT LAST_DAY('01-FEB-01')FROM DUAL/

3>DISPLAY THE DATE ON FIRST MONDAY OF JAN 2001:SQL>SELECT NEXT_DAY('31-DEC-00','MON')FROM DUAL/

4>DISPLAY THE CURRENT TIME?SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'HH:MI:SS') AS TIMEFROM DUAL                                                                                                                                                                                           /

5>DISPLAY HTE CURRENT YEAR?SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'FMYYYY')AS YEAR FROM DUAL/

7>DISPLAY THE NET SALARY PAID TO EACH EMPLOYEE?SQL>SELECT ENAME,SAL+NVL(COMM,0) FROM EMP

Page 19: Sri(SQL Notes)

/8>SHOW 10% INCENTIVES FOR EACH EMPLOYEE ONSALARY OR COMM WHICH EVER IS GREATER?SQL>SELECT ENAME,SAL,COMM,GREATEST(SAL,NVL(COMM,0))*.01FROM EMPGROUP BY ENAME,SAL,COMM/9>SHOW THE CURRENT USER NAME?SQL>SELECT USER FROM DUAL/10>DISPLAY THE 3rd HIGHEST PAID EMPLOYEE?SQL>SELECT ROWNUM,ENAME,SALFROM(SELECT DISTINCT SAL,ENAME FROM EMP                ORDER BY SAL DESC)GROUP BY ROWNUM,ENAME,SALHAVING ROWNUM=3/11>DISPLAY THE MANAGER UNDER WHICH 5 PERSON ARE WORKING WHO GETTING SALARY>=5000?SQL>SELECT B.ENAME,COUNT(A.ENAME),B.SALFROM EMP A,EMP BWHERE A.MGR=B.EMPNOAND B.SAL>=5000GROUP BY B.ENAME,B.SALHAVING COUNT(*)<=5/12>DISPLAY THOSE EMPLOYEE WHO HAVE JOINED THE COMPANY IN THE MONTH OF JAN?SQL>SELECT ENAME,HIREDATEFROM EMPWHERE SUBSTR(HIREDATE,4,3)='JAN'/13>DISPLAY THE MANAGERS HAVING MORE THAN 3      EMPLOYEES UNDER THEM?SQL>SELECT B.ENAME,COUNT(A.ENAME)FROM EMP A,EMP BWHERE A.MGR=B.EMPNOGROUP BY B.ENAMEHAVING COUNT(A.ENAME)>=3/14>DISPLAY DEPARTMENT LOCATION WITHOT ANY SPACE?SQL>SELECT REPLACE(LOC,' ','')FROM DEPT/15>DISPLAY THOSE EMPLOYEES WHO ARE WORKING UNDER THOSE MANAGER WHO ARE IN SALES DEPARTMENT?SQL>SELECT A.ENAME,B.ENAME,D.DNAMEFROM EMP A,EMP B,DEPT DWHERE A.MGR=B.EMPNOAND B.DEPTNO=D.DEPTNOAND D.DNAME='SALES'

Page 20: Sri(SQL Notes)

/

                   #SUB QURIES                   =-=-=-=-=-=-=-

1>DISPLAY THOSE EMPLOYEES WHOSE DEPT IS SALES?SQL>SELECT A.ENAME,D.DNAMEFROM EMP A,DEPT DWHERE A.DEPTNO=D.DEPTNOAND D.DNAME='SALES'/2>DISPLAY THOSE EMPLOYEE WHOSE GRADE IS 3?SQL>SELECT A.ENAME,G.GRADEFROM EMP A,SALGRADE GWHERE A.SAL BETWEEN G.LOSAL AND G.HISALAND G.GRADE=3/3>DISPLAY THOSE EMPLOYEES WHOSE DEPARTMENT IS SALES OR ACCOUNTING?SQL>SELECT A.ENAME,D.DNAMEFROM EMP A,DEPT DWHERE A.DEPTNO=D.DEPTNOAND (D.DNAME='SALES' OR D.DNAME='ACCOUNTING')/4>DISPLAY THOSE EMPLOYEES WHO ARE IN BOSTON DEPTSQL>SELECT  A.ENAME,D.LOCFROM EMP A,DEPT DWHERE A.DEPTNO=D.DEPTNOAND D.LOC='BOSTON'/5>DISPLAY THOSE EMPLOYEES WHOSE NAME START WITH      'J' AND HIS DEPT ENDS WITH 'S'?SQL>SELECT A.ENAME,D.DNAME        FROM EMP A, DEPT D            WHERE A.DEPTNO=D.DEPTNO         AND (ENAME LIKE 'J%'    AND           D.DNAME LIKE '%S')/6>DISPLAY THOSE EMPLOYEES WHO ARE WORKING WNDER KING?SQL>SELECT A.ENAME,B.ENAMEFROM EMP A,EMP BWHERE A.MGR=B.EMPNOAND B.ENAME='KING'/7>DISPLAY THOSE EMPLOYEES WHO ARE WORKING INDER      JONES AND CLARK?SQL>SELECT A.ENAME,B.ENAMEFROM EMP A,EMP BWHERE A.MGR=B.EMPNO

Page 21: Sri(SQL Notes)

AND (B.ENAME='JONES' OR B.ENAME='CLARK')/8>DISPLAY THOSE EMPLOYEES WHOSE MANAGER JOINED IN THE YEAR ie 81SQL>SELECT A.ENAME,B.ENAME,B.HIREDATEFROM EMP A,EMP BWHERE A.MGR=B.EMPNOAND  SUBSTR(B.HIREDATE,8,2)=81/

                        TREE WALK QUERIES                        IIIIIIIIIIIIIIIIIIIIIIII1>DISPLAY ALL EMPLOYEES IN TREE WALK STYLE?SQL>SELECT LPAD(' ',LEVEL*3,' ')||ENAMEFROM EMPSTART WITH MGR IS NULLCONNECT BY PRIOR EMPNO=MGR/2>DISPLAY THE EMPLOYEE IN HIEARCHY STARTING FROM        JONES?SQL>SELECT LPAD(' ',LEVEL*3,' ')||ENAMEFROM EMPSTART WITH ENAME='JONES'CONNECT BY PRIOR EMPNO=MGR/3>DISPLAY THE TOTAL NO. OF EMPLOYEES WORKING IN COMPLETE HIERARCHY  UNDER THE  JONES?SQL>

4>DISPLAY LAST LEVEL EMPLOYEE?SQL>SELECT LEVEL,ENAMEFROM EMPWHERE LEVEL=(SELECT MAX(LEVEL) FROM EMPSTART WITH MGR IS NULLCONNECT BY PRIOR EMPNO=MGR)START WITH MGR IS NULLCONNECT BY PRIOR EMPNO=MGR/5>DISPLAY THOSE EMPLOYEES WHOSE LEVEL HIEARACHY IS      ODD?SQL>SELECT LEVEL,ENAMEFROM EMPWHERE MOD(LEVEL,2)=1START WITH MGR IS NULLCONNECT BY PRIOR EMPNO=MGR/6>DISPLAY THE 2nd LEVEL EMPLOYEESQL>SELECT LEVEL,ENAME,JOB,SALFROM EMPWHERE LEVEL=2

Page 22: Sri(SQL Notes)

START WITH MGR IS NULLCONNECT BY PRIOR EMPNO=MGR/

7>DISPLAY TOTAL SALARY PAID UNDER BLAKE?SQL>SELECT B.ENAME,SUM(A.SAL)FROM EMP A, EMP BWHERE A.MGR=B.EMPNOGROUP BY B.ENAMEHAVING B.ENAME=(SELECT B.ENAME                            FROM EMP B                            WHERE ENAME='BLAKE')/8>DISPLAY HOW MANY NO OF EMPLOYEES ARE PRESENT ATLEVEL NO OF 3?SQL>SELECT LEVEL,  COUNT(*)FROM EMPWHERE LEVEL=3GROUP BY LEVELSTART WITH MGR IS NULLCONNECT BY PRIOR EMPNO=MGR/

XXXXXXXXXXXXXXXXX   end END end XXXXXXXXXXXXXXX