You are on page 1of 19

Following is the database on which SQL operations have been performed SQL> select * from dept; DEPTNO ---------10

20 30 40 DNAME -------------ACCOUNTING RESEARCH SALES OPERATIONS LOC ------------NEW YORK DALLAS CHICAGO BOSTON

SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- --------- ---------- ---------DEPTNO ---------7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN 30 7521 WARD 30 SALESMAN SALESMAN 7698 20-FEB-81 7698 22-FEB-81 1600 1250 300 500

EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- --------- ---------- ---------DEPTNO ---------7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN 30 7698 BLAKE 30 SALESMAN MANAGER 7698 28-SEP-81 7839 01-MAY-81 1250 2850 1400

EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- --------- ---------- ---------DEPTNO ---------7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT 20 7839 KING 10 ANALYST PRESIDENT 7566 19-APR-87 17-NOV-81 3000 5000

EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- --------- ---------- ---------DEPTNO ----------

7844 TURNER 30 7876 ADAMS 20 7900 JAMES 30

SALESMAN CLERK CLERK

7698 08-SEP-81 7788 23-MAY-87 7698 03-DEC-81

1500 1100 950

EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- --------- ---------- ---------DEPTNO ---------7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER 10 14 rows selected. Queries. 1. Write a query to display name, job, and hire date and employee number for ea ch employee with employee number appearing first. Solution: SQL> select empno,ename,job,hiredate from emp order by empno; EMPNO ---------7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 EMPNO ---------7900 7902 7934 ENAME ---------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS ENAME ---------JAMES FORD MILLER JOB --------CLERK SALESMAN SALESMAN MANAGER SALESMAN MANAGER MANAGER ANALYST PRESIDENT SALESMAN CLERK JOB --------CLERK ANALYST CLERK HIREDATE --------17-DEC-80 20-FEB-81 22-FEB-81 02-APR-81 28-SEP-81 01-MAY-81 09-JUN-81 19-APR-87 17-NOV-81 08-SEP-81 23-MAY-87 HIREDATE --------03-DEC-81 03-DEC-81 23-JAN-82 CLERK 7782 23-JAN-82 1300

14 rows selected. 2. Write a query to display unique jobs from the employee table. Solution: SQL> select distinct job from emp; JOB ---------

ANALYST CLERK MANAGER PRESIDENT SALESMAN 3. Write a query to display the name concatenated by a job separated by a comma . Solution: SQL> select ename||','||job from emp; ENAME||','||JOB -------------------SMITH,CLERK ALLEN,SALESMAN WARD,SALESMAN JONES,MANAGER MARTIN,SALESMAN BLAKE,MANAGER CLARK,MANAGER SCOTT,ANALYST KING,PRESIDENT TURNER,SALESMAN ADAMS,CLERK ENAME||','||JOB -------------------JAMES,CLERK FORD,ANALYST MILLER,CLERK 14 rows selected. 4. Write a query to display all data from employee table. n by a comma and name the column THE_OUTPUT. Separate each colum

Solution: SQL> SELECT EMPNO||','||ENAME||','||JOB||','||MGR||','||HIREDATE||','||SAL||',' 2 ||COMM||','||DEPTNO THE_OUTPUT FROM EMP; THE_OUTPUT -------------------------------------------------------------------------------7369,SMITH,CLERK,7902,17-DEC-80,800,,20 7499,ALLEN,SALESMAN,7698,20-FEB-81,1600,300,30 7521,WARD,SALESMAN,7698,22-FEB-81,1250,500,30 7566,JONES,MANAGER,7839,02-APR-81,2975,,20 7654,MARTIN,SALESMAN,7698,28-SEP-81,1250,1400,30 7698,BLAKE,MANAGER,7839,01-MAY-81,2850,,30 7782,CLARK,MANAGER,7839,09-JUN-81,2450,,10 7788,SCOTT,ANALYST,7566,19-APR-87,3000,,20 7839,KING,PRESIDENT,,17-NOV-81,5000,,10 7844,TURNER,SALESMAN,7698,08-SEP-81,1500,0,30 7876,ADAMS,CLERK,7788,23-MAY-87,1100,,20 THE_OUTPUT -------------------------------------------------------------------------------7900,JAMES,CLERK,7698,03-DEC-81,950,,30 7902,FORD,ANALYST,7566,03-DEC-81,3000,,20 7934,MILLER,CLERK,7782,23-JAN-82,1300,,10

14 rows selected. 5. Write a query to display the name and salary of employees earning more than $2850. Solution: SQL> SELECT EMPNO||','||ENAME||','||JOB||','||MGR||','||HIREDATE||','||SAL||',' 2 ||COMM||','||DEPTNO THE_OUTPUT FROM EMP; THE_OUTPUT -------------------------------------------------------------------------------7369,SMITH,CLERK,7902,17-DEC-80,800,,20 7499,ALLEN,SALESMAN,7698,20-FEB-81,1600,300,30 7521,WARD,SALESMAN,7698,22-FEB-81,1250,500,30 7566,JONES,MANAGER,7839,02-APR-81,2975,,20 7654,MARTIN,SALESMAN,7698,28-SEP-81,1250,1400,30 7698,BLAKE,MANAGER,7839,01-MAY-81,2850,,30 7782,CLARK,MANAGER,7839,09-JUN-81,2450,,10 7788,SCOTT,ANALYST,7566,19-APR-87,3000,,20 7839,KING,PRESIDENT,,17-NOV-81,5000,,10 7844,TURNER,SALESMAN,7698,08-SEP-81,1500,0,30 7876,ADAMS,CLERK,7788,23-MAY-87,1100,,20 THE_OUTPUT -------------------------------------------------------------------------------7900,JAMES,CLERK,7698,03-DEC-81,950,,30 7902,FORD,ANALYST,7566,03-DEC-81,3000,,20 7934,MILLER,CLERK,7782,23-JAN-82,1300,,10 14 rows selected. 6. Write a query to display employee name and department number for employee nu mber 7900. Solution: SQL> select ename,deptno from emp where empno=7900; ENAME DEPTNO ---------- ---------JAMES 30 7. Write a query to display the name and salary for all employees whose salary is not in the range of $1500 and $2850. Solution: SQL> select ename,sal from emp where sal not between 1500 and 2850; ENAME SAL ---------- ---------SMITH 800 WARD 1250 JONES 2975 MARTIN 1250 SCOTT 3000 KING 5000 ADAMS 1100 JAMES 950 FORD 3000 MILLER 1300

10 rows selected. 8. Write a query to display the employee name, job, hire date of employees hire d between Feb 20, 1981 and May 1, 1981. Order the query in ascending order of start date. Solution: SQL> select ename,job,hiredate from emp 2 where hiredate between '20-feb-81' and '01-may-81' 3 order by hiredate; ENAME ---------ALLEN WARD JONES BLAKE JOB --------SALESMAN SALESMAN MANAGER MANAGER HIREDATE --------20-FEB-81 22-FEB-81 02-APR-81 01-MAY-81

9. Write a query to display employee name and department number of all employee s in department 10 and 30 in alphabetical order by name. Solution: SQL> select ename,deptno from emp 2 where deptno in(10,30) order by ename; ENAME DEPTNO ---------- ---------ALLEN 30 BLAKE 30 CLARK 10 JAMES 30 KING 10 MARTIN 30 MILLER 10 TURNER 30 WARD 30 9 rows selected. 10. Write a query to display the name and salary employees who earned more than $1500 and are in department 10 or 30. Solution: SQL> select ename,sal from emp 2 where sal>1500 and deptno=10 or deptno=30; ENAME SAL ---------- ---------ALLEN 1600 WARD 1250 MARTIN 1250 BLAKE 2850 CLARK 2450 KING 5000 TURNER 1500 JAMES 950 8 rows selected.

11. Write a query to display the name and hire date of every employee who was hi red in 1981. Solution: SQL> select ename,hiredate from emp where hiredate like '(__-___-81)'; no rows selected 12. Write a query to display the name and job of all employees who do not have a manager. Solution: SQL> select ename,job from emp where mgr is null; ENAME JOB ---------- --------KING PRESIDENT 13. Write a query to display the name, salary and commission for all employees w ho earn commission. Sort the data in descending order of salary and commission. Solution: SQL> select ename,sal,comm from emp where comm is not null order by sal desc,com m desc; ENAME SAL COMM ---------- ---------- ---------ALLEN 1600 300 TURNER 1500 0 MARTIN 1250 1400 WARD 1250 500 14. Write a query to display the names of all employees were the third letter of their name is A. Solution: SQL> select ename from emp where ename like'(__A)'; no rows selected 15. Write a query to display the names of all employees that have two R s or A s in their name and are in department number 30 or their manager is 7788. Solution: SQL> select ename from emp 2 WHERE ((ENAME LIKE '%R%R%') OR( ENAME LIKE '%A%A%' ))AND (DEPTNO=30 OR MGR =7788); ENAME ---------TURNER ADAMS 16. Write a query to display the name, job and salary of all employees whose job is clerk or analyst and their salary are not equal to 1000, 3000 or 5000. Solution: SQL> select ename,job,sal from emp

2 WHERE JOB IN ('ANALYST','CLERK') AND SAL NOT IN (1000,3000,5000); ENAME ---------SMITH ADAMS JAMES MILLER JOB SAL --------- ---------CLERK 800 CLERK 1100 CLERK 950 CLERK 1300

17. Write a query to display the name, salary and commission for all employees w hose commission amount is greater than their salary increased by 5%. Solution: SQL> select ename,sal,comm from emp 2 where comm>1. 05*sal; ENAME SAL COMM ---------- ---------- ---------MARTIN 1250 1400 18. Write a query to display a current date. Solution: SQL> select sysdate from dual; SYSDATE --------28-SEP-08 19. Write a query to display the employee number, name, salary and the salary in creased by 15% expressed as a whole number. Solution: SQL> select ename,empno,sal,round(1. 15*sal)from emp; ENAME EMPNO SAL ROUND(1. 15*SAL) ---------- ---------- ---------- --------------SMITH 7369 800 920 ALLEN 7499 1600 1840 WARD 7521 1250 1438 JONES 7566 2975 3421 MARTIN 7654 1250 1438 BLAKE 7698 2850 3278 CLARK 7782 2450 2818 SCOTT 7788 3000 3450 KING 7839 5000 5750 TURNER 7844 1500 1725 ADAMS 7876 1100 1265 ENAME EMPNO SAL ROUND(1. 15*SAL) ---------- ---------- ---------- --------------JAMES 7900 950 1093 FORD 7902 3000 3450 MILLER 7934 1300 1495 14 rows selected. 20. Write a query to display the employee number, name, salary, salary increased by 15% expressed as a whole number and the increase in salary.

Solution: SQL> select ename,empno,sal,round(1. 15*sal),round(1. 15*sal)-sal from emp; ENAME EMPNO SAL ROUND(1. 15*SAL) ROUND(1. 15*SAL)-SAL ---------- ---------- ---------- --------------- ------------------SMITH 7369 800 920 120 ALLEN 7499 1600 1840 240 WARD 7521 1250 1438 188 JONES 7566 2975 3421 446 MARTIN 7654 1250 1438 188 BLAKE 7698 2850 3278 428 CLARK 7782 2450 2818 368 SCOTT 7788 3000 3450 450 KING 7839 5000 5750 750 TURNER 7844 1500 1725 225 ADAMS 7876 1100 1265 165 ENAME EMPNO SAL ROUND(1. 15*SAL) ROUND(1. 15*SAL)-SAL ---------- ---------- ---------- --------------- ------------------JAMES 7900 950 1093 143 FORD 7902 3000 3450 450 MILLER 7934 1300 1495 195 14 rows selected. 21. Write a query to display the employee name, hire date and salary review date , which is the first Monday after six months salary. Solution: SQL> select ename,hiredate,next_day(add_months(hiredate,6),'monday')"salary rev iew date" 2 from emp; ENAME ---------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS ENAME ---------JAMES FORD MILLER HIREDATE --------17-DEC-80 20-FEB-81 22-FEB-81 02-APR-81 28-SEP-81 01-MAY-81 09-JUN-81 19-APR-87 17-NOV-81 08-SEP-81 23-MAY-87 HIREDATE --------03-DEC-81 03-DEC-81 23-JAN-82 salary re --------22-JUN-81 24-AUG-81 24-AUG-81 05-OCT-81 29-MAR-82 02-NOV-81 14-DEC-81 26-OCT-87 24-MAY-82 15-MAR-82 30-NOV-87 salary re --------07-JUN-82 07-JUN-82 26-JUL-82

14 rows selected. 22. Write a query to display the employee name and calculate the number of month s between today and the date the employee was hired. Solution: SQL> SELECT ENAME,ROUND(MONTHS_BETWEEN(SYSDATE,HIREDATE))"MONTHS"

2 from emp; ENAME MONTHS ---------- ---------SMITH 333 ALLEN 331 WARD 331 JONES 330 MARTIN 324 BLAKE 329 CLARK 328 SCOTT 257 KING 322 TURNER 325 ADAMS 256 ENAME MONTHS ---------- ---------JAMES 322 FORD 322 MILLER 320 14 rows selected. 23. Write a query to display the following for each employee:- <ename>earns<sala ry>monthly but wants<3 times salary>Label the column as Dream Salary. Solution: SQL> select ename"earns",sal"monthly but wants",3*sal as dreamsalary 2 from emp; earns monthly but wants DREAMSALARY ---------- ----------------- ----------SMITH 800 2400 ALLEN 1600 4800 WARD 1250 3750 JONES 2975 8925 MARTIN 1250 3750 BLAKE 2850 8550 CLARK 2450 7350 SCOTT 3000 9000 KING 5000 15000 TURNER 1500 4500 ADAMS 1100 3300 earns monthly but wants DREAMSALARY ---------- ----------------- ----------JAMES 950 2850 FORD 3000 9000 MILLER 1300 3900 14 rows selected. 24. Write a query to display the name and salary for all employees. salary to be 15 character long, left padded with $ sign. Solution: SQL> select ename,sal,lpad(sal,15,'$') 2 from emp; Format the

ENAME SAL LPAD(SAL,15,'$' ---------- ---------- --------------SMITH 800 $$$$$$$$$$$$800 ALLEN 1600 $$$$$$$$$$$1600 WARD 1250 $$$$$$$$$$$1250 JONES 2975 $$$$$$$$$$$2975 MARTIN 1250 $$$$$$$$$$$1250 BLAKE 2850 $$$$$$$$$$$2850 CLARK 2450 $$$$$$$$$$$2450 SCOTT 3000 $$$$$$$$$$$3000 KING 5000 $$$$$$$$$$$5000 TURNER 1500 $$$$$$$$$$$1500 ADAMS 1100 $$$$$$$$$$$1100 ENAME SAL LPAD(SAL,15,'$' ---------- ---------- --------------JAMES 950 $$$$$$$$$$$$950 FORD 3000 $$$$$$$$$$$3000 MILLER 1300 $$$$$$$$$$$1300 14 rows selected. 25. Write a query to display the employees name with the first letter capitalize d and all other letters lower case and length of their name for all employees wh ose name start with J, A and M. Solution: SQL> select initcap(ename),length(ename) 2 from emp 3 where ename like'J%'or ename like'A%' or ename like'M%'; INITCAP(EN LENGTH(ENAME) ---------- ------------Allen 5 Jones 5 Martin 6 Adams 5 James 5 Miller 6 6 rows selected. 26. Write a query to display the name, hire date and day of the week on which th e employee started. Solution: SQL> SELECT ENAME, HIREDATE,EXTRACT(DAY FROM HIREDATE)"DAY" 2 from emp; ENAME ---------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING HIREDATE DAY --------- ---------17-DEC-80 17 20-FEB-81 20 22-FEB-81 22 02-APR-81 2 28-SEP-81 28 01-MAY-81 1 09-JUN-81 9 19-APR-87 19 17-NOV-81 17

TURNER ADAMS ENAME ---------JAMES FORD MILLER

08-SEP-81 23-MAY-87

8 23

HIREDATE DAY --------- ---------03-DEC-81 3 03-DEC-81 3 23-JAN-82 23

14 rows selected.

27. Write a query to display the employee name and commission amount. mployee does not earn commission put No Commission . Solution: SQL> SELECT ENAME,NVL(TO_CHAR(COMM),'NO COMMISION') FROM EMP; ENAME ---------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS ENAME ---------JAMES FORD MILLER NVL(TO_CHAR(COMM),'NOCOMMISION') ---------------------------------------NO COMMISION 300 500 NO COMMISION 1400 NO COMMISION NO COMMISION NO COMMISION NO COMMISION 0 NO COMMISION NVL(TO_CHAR(COMM),'NOCOMMISION') ---------------------------------------NO COMMISION NO COMMISION NO COMMISION

If the e

14 rows selected. 28. Write a query to display the name, department name and department number for all employees. Solution. SQL> select e. ename,d. dname,d. deptno 2 from emp e, dept d 3 where e. deptno=d. deptno; ENAME ---------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT DNAME DEPTNO -------------- ---------RESEARCH 20 SALES 30 SALES 30 RESEARCH 20 SALES 30 SALES 30 ACCOUNTING 10 RESEARCH 20

KING TURNER ADAMS ENAME ---------JAMES FORD MILLER

ACCOUNTING SALES RESEARCH

10 30 20

DNAME DEPTNO -------------- ---------SALES 30 RESEARCH 20 ACCOUNTING 10

14 rows selected. 29. Write a query to display unique listing of all jobs that are in department 3 0. Solution: SQL> select distinct job 2 from emp 3 where deptno=30; JOB --------CLERK MANAGER SALESMAN 30. Write a query to display the employee name, department name and location for all employees who earn a commission. Solution: SQL> select e. ename,d. dname,d. loc 2 from emp e,dept d 3 where e. deptno=d. deptno and e. comm is not null; ENAME ---------ALLEN WARD MARTIN TURNER DNAME -------------SALES SALES SALES SALES LOC ------------CHICAGO CHICAGO CHICAGO CHICAGO

31. Write a query to display the employee name and department name of all employ ees who have A in their name. Solution: SQL> SELECT ENAME,DNAME FROM EMP,DEPT WHERE ENAME LIKE'%A%'; ENAME ---------ALLEN WARD MARTIN BLAKE CLARK ADAMS JAMES ALLEN WARD MARTIN BLAKE DNAME -------------ACCOUNTING ACCOUNTING ACCOUNTING ACCOUNTING ACCOUNTING ACCOUNTING ACCOUNTING RESEARCH RESEARCH RESEARCH RESEARCH

ENAME ---------CLARK ADAMS JAMES ALLEN WARD MARTIN BLAKE CLARK ADAMS JAMES ALLEN ENAME ---------WARD MARTIN BLAKE CLARK ADAMS JAMES

DNAME -------------RESEARCH RESEARCH RESEARCH SALES SALES SALES SALES SALES SALES SALES OPERATIONS DNAME -------------OPERATIONS OPERATIONS OPERATIONS OPERATIONS OPERATIONS OPERATIONS

28 rows selected. 32. Write a query to display the name, job, department number and department nam e for all employees who work at location DALLAS. Solution: SQL> SELECT E. ENAME,E. JOB,E. DEPTNO,DNAME FROM EMP E,DEPT WHERE LOC='DALLAS'; ENAME ---------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS ENAME ---------JAMES FORD MILLER JOB DEPTNO DNAME --------- ---------- -------------CLERK 20 RESEARCH SALESMAN 30 RESEARCH SALESMAN 30 RESEARCH MANAGER 20 RESEARCH SALESMAN 30 RESEARCH MANAGER 30 RESEARCH MANAGER 10 RESEARCH ANALYST 20 RESEARCH PRESIDENT 10 RESEARCH SALESMAN 30 RESEARCH CLERK 20 RESEARCH JOB DEPTNO DNAME --------- ---------- -------------CLERK 30 RESEARCH ANALYST 20 RESEARCH CLERK 10 RESEARCH

14 rows selected. 33. Write a query to display the employees name and employee number along with t heir manager s name and manager s number. Solution: SQL> SELECT E. ENAME,E. EMPNO,M. ENAME "MANAGER",M. EMPNO "MGRNO" 2 FROM EMP E, EMP M

WHERE E. MGR=M. EMPNO;

ENAME EMPNO MANAGER MGRNO ---------- ---------- ---------- ---------SMITH 7369 FORD 7902 ALLEN 7499 BLAKE 7698 WARD 7521 BLAKE 7698 JONES 7566 KING 7839 MARTIN 7654 BLAKE 7698 BLAKE 7698 KING 7839 CLARK 7782 KING 7839 SCOTT 7788 JONES 7566 TURNER 7844 BLAKE 7698 ADAMS 7876 SCOTT 7788 JAMES 7900 BLAKE 7698 ENAME EMPNO MANAGER MGRNO ---------- ---------- ---------- ---------FORD 7902 JONES 7566 MILLER 7934 CLARK 7782 13 rows selected. 34. Write a query to display the employee name and employee number along with th eir manager s name and manager s number along with the employees who do not have a m anager. Solution: SQL> SELECT E. ENAME,E. EMPNO,E. MGR,M. ENAME,M. EMPNO 2 FROM (EMP E LEFT OUTER JOIN EMP M ON E. MGR=M. EMPNO); ENAME EMPNO MGR ENAME EMPNO ---------- ---------- ---------- ---------- ---------FORD 7902 7566 JONES 7566 SCOTT 7788 7566 JONES 7566 JAMES 7900 7698 BLAKE 7698 TURNER 7844 7698 BLAKE 7698 MARTIN 7654 7698 BLAKE 7698 WARD 7521 7698 BLAKE 7698 ALLEN 7499 7698 BLAKE 7698 MILLER 7934 7782 CLARK 7782 ADAMS 7876 7788 SCOTT 7788 CLARK 7782 7839 KING 7839 BLAKE 7698 7839 KING 7839 ENAME EMPNO MGR ENAME EMPNO ---------- ---------- ---------- ---------- ---------JONES 7566 7839 KING 7839 SMITH 7369 7902 FORD 7902 KING 7839 14 rows selected. 35. Write a query to display the employee name, department number and all the em ployees that work in the same department as the given employee. Solution: SQL> select ename,deptno 2 from emp 3 where deptno in(select deptno from emp where ename='smith');

no rows selected 36. Write a query to display the name, job, department name, salary and grade fo r all employees. Solution: SQL> SELECT ENAME,JOB,DNAME,SAL,COMM 2 FROM (EMP JOIN DEPT ON EMP. DEPTNO=DEPT. DEPTNO); ENAME ---------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS ENAME ---------JAMES FORD MILLER JOB --------CLERK SALESMAN SALESMAN MANAGER SALESMAN MANAGER MANAGER ANALYST PRESIDENT SALESMAN CLERK JOB --------CLERK ANALYST CLERK DNAME SAL COMM -------------- ---------- ---------RESEARCH 800 SALES 1600 300 SALES 1250 500 RESEARCH 2975 SALES 1250 1400 SALES 2850 ACCOUNTING 2450 RESEARCH 3000 ACCOUNTING 5000 SALES 1500 0 RESEARCH 1100 DNAME SAL COMM -------------- ---------- ---------SALES 950 RESEARCH 3000 ACCOUNTING 1300

14 rows selected. 37. Write a query to display the name and hire date of any employee hired after employee Blake. Solution: SQL> SELECT ename, hiredate 2 FROM emp 3 WHERE hiredate>(select hiredate 4 from emp 5 where ename='blake'); no rows selected 38. Write a query to display the names and hire dates of all employees along wit h their manager s name and hire date for all employees who were hired before their managers. Solution: SQL> SELECT E. ENAME EMPLOYEE,M. ENAME MANAGER FROM EMP E,EMP M 2 WHERE E. MGR=M. EMPNO AND E. HIREDATE< M. HIREDATE; EMPLOYEE ---------SMITH ALLEN WARD JONES BLAKE CLARK MANAGER ---------FORD BLAKE BLAKE KING KING KING

6 rows selected. 40. Write a query to display the highest, lowest, sum and average salary of all employees. Solution: SQL> SELECT MAX(SAL),MIN(SAL),SUM(SAL),AVG(SAL) FROM EMP; MAX(SAL) MIN(SAL) SUM(SAL) AVG(SAL) ---------- ---------- ---------- ---------5000 800 29025 2073. 21429 41. Write a query to display the maximum, minimum, sum and the average salary fo r each job type. Solution: SQL> SELECT MAX(SAL),MIN(SAL),SUM(SAL),AVG(SAL) FROM EMP GROUP BY JOB; MAX(SAL) MIN(SAL) SUM(SAL) AVG(SAL) ---------- ---------- ---------- ---------3000 3000 6000 3000 1300 800 4150 1037. 5 2975 2450 8275 2758. 33333 5000 5000 5000 5000 1600 1250 5600 1400 42. Write a query to display the number of people with the same job. Solution: SQL> SELECT COUNT( * ) FROM EMP GROUP BY JOB; COUNT(*) ---------2 4 3 1 4 43. Write a query to display the number of managers without listing them. Solution: SQL> SELECT COUNT(DISTINCT MGR) FROM EMP; COUNT(DISTINCTMGR) -----------------6 44. Write a query to display the difference between the highest and lowest salar ies. Solution: SQL> SELECT MAX(SAL) - MIN(SAL) FROM EMP; MAX(SAL)-MIN(SAL) ----------------4200 45. Write a query to display the manager number and the salary of the lowest pai

d employee for that manager. Exclude anyone where the manager id is not known. Exclude any groups where the minimum salary is less than $1000. Solution: SQL> SELECT MGR,MIN(SAL) 2 FROM EMP 3 WHERE MGR IS NOT NULL 4 GROUP BY MGR 5 HAVING MIN(SAL)>1000 6 ; MGR MIN(SAL) ---------- ---------7566 3000 7782 1300 7788 1100 7839 2450

46. Write a query to display the department name, location name, number of emplo yees and the average salary for all employees in that department. Solution: SQL> SELECT COUNT(*),AVG(E. SAL) 2 FROM EMP E,DEPT D 3 WHERE E. DEPTNO=D. DEPTNO 4 GROUP BY E. DEPTNO 5 ; COUNT(*) ---------3 5 6 AVG(E. SAL) ---------2916. 66667 2175 1566. 66667

50. Write a query to display the employee name and salary of all employees who r eport to King. Solution: SQL> SELECT ENAME,SAL 2 FROM EMP 3 WHERE MGR IN (SELECT EMPNO FROM EMP WHERE ENAME='KING'); ENAME SAL ---------- ---------JONES 2975 BLAKE 2850 CLARK 2450 47. Write a query to display the employee name and the hire date for all employe es in the same department as Blake. Solution: SQL> SELECT ENAME,HIREDATE FROM EMP WHERE DEPTNO=(SELECT DEPTNO FROM EMP 2 WHERE ENAME='BLAKE'); ENAME HIREDATE ---------- --------ALLEN 20-FEB-81

WARD MARTIN BLAKE TURNER JAMES

22-FEB-81 28-SEP-81 01-MAY-81 08-SEP-81 03-DEC-81

6 rows selected. 48. Write a query to display the employee number and name for all employees who earn more than the average salary. Solution: SQL> SELECT EMPNO,ENAME FROM EMP 2 WHERE SAL>(SELECT AVG(SAL) FROM EMP); EMPNO ---------7566 7698 7782 7788 7839 7902 ENAME ---------JONES BLAKE CLARK SCOTT KING FORD

6 rows selected. 49. Write a query to display the employee number and name for all employees who work in a department with any employee whose name contain a T. Solution: SQL> SELECT EMPNO,ENAME FROM EMP WHERE DEPTNO=(SELECT DEPTNO FROM EMP 2 WHERE ENAME LIKE ' %T% ' ); no rows selected 51. Write a query to display the department number, name and job for all employe es in the sales department. Solution: SQL> select DEPT. deptno,EMP. ename,EMP. job 2 from (dept JOIN EMP ON DEPT. DEPTNO=EMP. DEPTNO ) 3 WHERE DNAME='SALES'; DEPTNO ---------30 30 30 30 30 30 ENAME ---------ALLEN WARD MARTIN BLAKE TURNER JAMES JOB --------SALESMAN SALESMAN SALESMAN MANAGER SALESMAN CLERK

6 rows selected. 52. Write a query to display the employee number, name and salary for all employ ees who earn more than the average salary and who work in a department with any employee with a T in their name. Solution: SQL> SELECT EMP. EMPNO,EMP. ENAME,EMP. SAL

2 FROM EMP JOIN DEPT ON EMP. DEPTNO=DEPT. DEPTNO 3 WHERE EMP. SAL > ( SELECT AVG(EMP. SAL) FROM EMP ) 4 AND DEPT. DEPTNO IN ( SELECT DEPT. DEPTNO 5 FROM EMP JOIN DEPT ON EMP. DEPTNO=DEPT. DEPTNO WHERE EMP. ENAME 6 LIKE '%T%'); EMPNO ---------7902 7788 7566 7698 ENAME SAL ---------- ---------FORD 3000 SCOTT 3000 JONES 2975 BLAKE 2850

54. Write a query to display the employees that earn a salary that is higher tha n the salary of any of the clerks. Solution: SQL> SELECT EMPNO,ENAME FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE 2 JOB=' CLERK '); no rows selected

You might also like