Upload
rupa-reddy
View
129
Download
0
Embed Size (px)
Citation preview
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);
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;
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;
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
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
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
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
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?
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(*)
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
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
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
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
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/
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?
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
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/
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
/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'
/
#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
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
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