You are on page 1of 47

WEEK - 1 // 1.

CREATION OF TABLE NAMED EMP Query : SQL> CREATE TABLE EMP (Emp_No NUMBER(2) PRIMARY KEy, 2 Ename VARCHAR(20), 3 Jcode NUMBER(3) REFERENCES Job(Jcode), 4 Mgr_no NUMBER(2), 5 Hiredate DATE, 6 Salary NUMBER(7), 7 Commission NUMBER(5), 8 Dept_no NUMBER(2) REFERENCES Dept(dept_no); OUTPUT : Table created. //DESCRIBE EMP TABLE Query : DESC EMP; OUTPUT : Name Null? Type ----------------------------------------- -------- ---------------------------EMP_NO NOT NULL NUMBER(2) ENAME VARCHAR2(20) JCODE NUMBER(3) MGR_NO NUMBER(2) HIREDATE DATE SALARY NUMBER(7) COMMISSION NUMBER(5) DEPT_NO NUMBER(2)

// INSERTING DATA INTO THE TABLE EMP Query : SQL> INSERT INTO Emp VALUES (&Emp_No,'&Ename',&Jcode,&Mgr_no,'&Hiredate',&Salary,&Commission,&Dept_no); OUTPUT : Enter value for emp_no: 1 Enter value for ename: Venkat Enter value for jcode: 672 Enter value for mgr_no: null Enter value for hiredate: 01-feb-2006 Enter value for salary: 1200000 Enter value for commission: 10000

Enter value for dept_no: 40 old 1: INSERT INTO Emp VALUES (&Emp_No,'&Ename',&Jcode,&Mgr_no,'&Hiredate',&Salary,&Commission,&Dep) new 1: INSERT INTO Emp VALUES(1,'Venkat',672,null,'01-feb-2006',1200000,10000,40) 1 row created. SQL> / Enter value for emp_no: 2 Enter value for ename: Nirmala Enter value for jcode: 671 Enter value for mgr_no: 1 Enter value for hiredate: 02-Apr-2007 Enter value for salary: 800000 Enter value for commission: 50000 Enter value for dept_no: 20 OUTPUT : old 1: INSERT INTO Emp VALUES (&Emp_No,'&Ename',&Jcode,&Mgr_no,'&Hiredate',&Salary,&Commission,&Dep) new 1: INSERT INTO Emp VALUES(2,'Nirmala',671,1,'02-Apr-2007',800000,50000,20) 1 row created. SQL> INSERT INTO Emp (&Emp_No,'&Ename',&Jcode,&Mgr_no,'&Hiredate',&Salary,&Commission,&Dep) VALUES (3,'Pradeep',669,1,'10-OCT-2005',1000000,NULL,40); OUTPUT : 1 row created. SQL> INSERT INTO Emp VALUES(4,'Srinivas',669,1,'08-MAY-2005',1000000,NULL,30); OUTPUT : 1 row created. // 2.CREATION OF TABLE NAMED DEPT Query : SQL> CREATE TABLE Dept(Deptno NUMBER(2) PRIMARY KEY, 2 Dname VARCHAR(15), 3 Lcode NUMBER(3) REFERENCES LOC(LCODE)); OUTPUT : Table created.

//DESCRIBE DEPT TABLE Query : DESC DEPT; OUTPUT : Name Null? Type ----------------------------------------- -------- ---------------------------DEPTNO NotNull NUMBER(2) DNAME VARCHAR2(15) LCODE NUMBER(3) // INSERTING DATA INTO THE TABLE DEPT Query : SQL> INSERT INTO Dept VALUES(&Deptno,'& Dname',&Lcode); Enter value for deptno: 10 Enter value for dname: Accounting Enter value for lcode: 122 OUTPUT : old 1: INSERT INTO Dept VALUES(&Deptno,'& Dname',&Lcode) new 1: INSERT INTO Dept VALUES(10,'Accounting',122) 1 row created. SQL> INSERT INTO Dept (&Deptno,'& Dname',&Lcode) VALUES(20,'Research',124); OUTPUT : 1 row created. SQL> INSERT INTO Dept VALUES(30,'Sales',123);

OUTPUT : 1 row created.

// 3.CREATION OF TABLE NAMED JOB Query : SQL> CREATE TABLE Job(Jcode NUMBER(3) PRIMARY KEY, Jname VARCHAR(15)); OUTPUT : Table created.

//DESCRIBE JOB TABLE Query : DESC JOB; OUTPUT : Name Null? Type ----------------------------------------- -------- ---------------------------JCODE NOT NULL NUMBER(3) JNAME VARCHAR2(15) // INSERTING DATA INTO THE TABLE JOB Query : SQL> INSERT INTO Job VALUES(&Jcode,'&Jname'); Enter value for jcode: 667 Enter value for jname: Clerk OUTPUT : old 1: INSERT INTO Job VALUES(&Jcode,'&Jname') new 1: INSERT INTO Job VALUES(667,'Clerk') 1 row created. SQL> INSERT INTO Job (&Jcode,'&Jname') VALUES(668,'Staff');

OUTPUT : 1 row created. SQL> INSERT INTO Job VALUES(669,'Analyst') OUTPUT : 1 row created.

// 4.CREATION OF TABLE NAMED LOC Query : SQL> CREATE TABLE Loc(Lcode NUMBER(3) PRIMARY KEY, Lname VARCHAR(15)); OUTPUT : Table created.

//DESCRIBE LOC TABLE Query : DESC LOC; OUTPUT : Name Null? Type ----------------------------------------- -------- ---------------------------LCODE NOT NULL NUMBER(3) LNAME VARCHAR2(15)

// INSERTING DATA INTO THE TABLE LOC Query : SQL> INSERT INTO Loc VALUES(&Lcode,'&Lname'); Enter value for lcode: 122 Enter value for lname: Kakinada OUTPUT : old 1: INSERT INTO Loc VALUES(&Lcode,'&Lname') new 1: INSERT INTO Loc VALUES(122,'Kakinada') 1 row created. SQL> INSERT INTO Loc (&Lcode,'&Lname') VALUES(124,'Hyderabad'); OUTPUT : 1 row created. SQL> INSERT INTO Loc VALUES(123,'Bangalore'); OUTPUT : 1 row created.

//DISPLAY EMP TABLE Query : SQL> SELECT * FROM EMP; OUTPUT : EMP_NO ENAME ---------- ----------1 Venkat 2 Nirmala 3 Pradeep 4 Srinivas 5 Krishna 6 Deepa 7 Keerthi 7 rows selected. JCODE --------672 671 669 669 668 668 668 MGR_NO -----------1 1 1 2 3 4 HIREDATE SALARY ------------- ----------01-FEB-06 1200000 02-APR-07 800000 10-OCT-05 1000000 08-MAY-05 100000 09-OCT-05 500000 09-SEP-07 600000 05-JUN-06 600000 COMMISSION -------------------10000 50000 DEPT_NO ------------40 20 40 30 12 23 24

20000

//DISPLAY DEPT TABLE Query : SQL> SELECT * FROM DEPT;

OUTPUT: DEPTNO ---------10 20 30 40 12 13 14 DNAME --------------Accounting Research Sales Operations Research Sales Operations LCODE ---------122 124 123 167 122 122 122

//DISPLAY JOB TABLE Query : SQL> SELECT * FROM JOB; OUTPUT: JCODE ---------667 668 669 670 671 672 JNAME --------------Clerk Staff Analyst Salesperson Manager President

//DISPLAY LOC TABLE Query : SQL> SELECT * FROM LOC; OUTPUT: LCODE ---------122 124 123 167 LNAME --------------Kakinada Hyderabad Bangalore Vijayawada

WEEK-2 1. Name all the Department Numbers Query : SQL> SELECT DEPT_NO FROM EMP; OUTPUT : DEPT_NO ---------40 20 40 30 12 23 24 7 rows selected. 2. Name all Dept Numbers without duplicates Query : SQL> SELECT DISTINCT DEPT_NO FROM EMP; OUTPUT : DEPT_NO ---------30 20 24 23 40 12 6 rows selected.

3. Name all Employees Where Department No 20 Query : SQL> SELECT Ename FROM Emp WHERE Dept_No=20;

OUTPUT : ENAME -------------------Nirmala

4) Names of all employees who get more than 200000 Salary Query : SQL> SELECT Ename FROM Emp WHERE salary>200000; OUTPUT : ENAME -------------------Venkat Nirmala Pradeep Srinivas Krishna Deepa Keerthi 7 rows selected.

5) Name all employees who dont get commission Query : SQL> SELECT Ename FROM Emp WHERE commission IS NULL; OUTPUT : ENAME -------------------Pradeep Srinivas Deepa Keerthi

6) List the Names and salaries of the employees who Salary is greater than four times of their commission Query : SQL> SELECT Ename, Salary FROM Emp WHERE Salary> (4*Commission); OUTPUT : ENAME SALARY -------------------- ---------Venkat 1200000 Nirmala 800000 Krishna 500000

7) Names of employees who do not have manager Query : SQL> SELECT Ename FROM Emp WHERE Mgr_No IS NULL;

OUTPUT : NAME -------------------Venkat 8) Names of employees and Salary who have more than or equal to 400000 but less than 800000 Query : SQL> SELECT Ename, Salary FROM Emp WHERE Salary>=400000 AND Salary<800000; OUTPUT : ENAME SALARY -------------------- ---------Krishna 500000 Deepa 600000 Keerthi 600000

9) Name all employees who have a Salary of either less than 400000 or more than 800000 Query : SQL> SELECT Ename, Salary FROM Emp WHERE Salary<400000 OR Salary>800000;

OUTPUT : ENAME -------------------Venkat Pradeep Srinivas SALARY ---------1200000 1000000 1000000

10) Name all the employees who are earning more than 400000 but not in Deptid 30 Query : SQL> SELECT Ename FROM Emp WHERE Salary>400000 AND Dept_No<>30; OUTPUT : ENAME -------------------Venkat Nirmala Pradeep Krishna Deepa Keerthi 6 rows selected.

WEEK 3 11) Names all the Employees who are working under Pradeep Query : SQL> SELECT Ename FROM Emp WHERE Mgr_No IN (SELECT Emp_No FROM Emp WHERE Ename ='Pradeep'); OUTPUT : ENAME -------------------Deepa

12) Names of all Employees who are working under Pradeep or Srinivas Query : SQL> SELECT Ename FROM Emp WHERE Mgr_No IN (SELECT Emp_No FROM Emp WHERE Ename='Pradeep' OR Ename='Srinivas') OUTPUT : ENAME -------------------Deepa Keerthi

13) Names of all Employees who are working under Pradeep and joined before him Query : SQL> SELECT Ename FROM Emp WHERE Mgr_No IN (SELECT Emp_No FROM Emp WHERE Ename='Pradeep'

AND Hiredate <ALL (SELECT Hiredate FROM Emp)); OUTPUT : no rows selected

14) Names of all Employees who are not working under Pradeep or Srinivas Query : SQL> SELECT Ename FROM Emp WHERE Mgr_No IN (SELECT Emp_No FROM Emp WHERE Ename<>'Pradeep' AND Ename<>'Srinivas');

OUTPUT : ENAME -------------------Srinivas Pradeep Nirmala Krishna

15) Names of all Employees who are working under Pradeep or Srinivas And joined before them Query : SQL> SELECT Ename FROM Emp where Mgr_No IN (SELECT Emp_No FROM Emp WHERE Ename='Pradeep' OR Ename='Srinivas') AND Hiredate<ALL (SELECT Hiredate FROM Emp); OUTPUT : no rows selected

16) Names of employees in the Accounting department Query : SQL> SELECT Ename FROM Emp WHERE Dept_No IN (SELECT DeptNo FROM Dept WHERE dName='Accounting'); OUTPUT : no rows selected

17) Names of all analysts Query : SQL> SELECT Ename FROM Emp WHERE Jcode IN (SELECT jCode FROM Job WHERE jName = 'Analyst'); OUTPUT : ENAME -------------------Srinivas Pradeep

18) Find Dept Names with some Employees earning less than 4lakhs Query : SQL> SELECT DName FROM Dept WHERE Deptno IN (SELECT Dept_no FROM Emp WHERE Salary<400000);

OUTPUT : no rows selected

19) Find the Job function of Aravind Query : SQL> SELECT JName FROM Job WHERE JCode IN (SELECT JCODE FROM Emp WHERE Ename='Aravind'); OUTPUT : no rows selected

20) Name all the Locations having sales Dept Query : SQL> SELECT JName FROM Job WHERE JCode IN (SELECT JCODE FROM Emp WHERE Ename='Aravind'); OUTPUT : LNAME --------------Bangalore Kakinada 21) Names of Employees who are managers of other Employees Query : SQL> SELECT Ename FROM Emp WHERE Emp_No IN (SELECT Mgr_No FROM Emp); OUTPUT : ENAME ------------------Venkat Nirmala Pradeep Srinivas

22) All the Employees whose Salary is maximum Query : SQL> SELECT Ename FROM Emp WHERE Salary>=ALL (SELECT Salary FROM Emp); OUTPUT : ENAME -------------------Venkat 23) All the Employees who joined at the earliest Query : SQL> SELECT Ename FROM Emp WHERE Hiredate<=ALL (SELECT Hiredate FROM Emp); OUTPUT : ENAME -------------------Srinivas

24) Names of Employees earning more than Pradeep or Srinivas Query : SQL> SELECT Ename FROM Emp WHERE Salary>=All (SELECT Salary FROM Emp WHERE Ename='Pradeep' OR Ename ='Srinivas'); OUTPUT : ENAME -------------------Venkat Pradeep Srinivas

WEEK-4

25) Names of Employees working under an employee reporting to President Query : SQL> SELECT Ename FROM Emp WHERE Mgr_No IN (SELECT Emp_No FROM Emp WHERE JCODE IN (SELECT JCode FROM Job WHERE Name='President')); OUTPUT : ENAME -------------------Nirmala Pradeep Srinivas

26) Job functions of all the employees who are Managers of other Employees. Query : SQL> SELECT JName, JCode FROM Job WHERE JCode IN (SELECT JCODE FROM Emp WHERE Emp_No IN (SELECT Mgr_No FROM Emp));

OUTPUT : JNAME --------------Analyst Manager President JCODE ---------669 671 672

27) Names of Employees under Kakinada Location. Query : SQL> SELECT Ename FROM Emp, DEPT WHERE Dept_no=Deptno AND LCODE IN (SELECT LCode FROM Loc WHERE LName='Kakinada'); OUTPUT : ENAME -------------------Krishna

28) Names of Employees who are analyst and also managers of other Employees Query : SQL> SELECT ename FROM emp WHERE JCODE IN (SELECT Jcode FROM job WHERE JName='Analyst') AND Emp_no IN (SELECT mgr_no FROM emp); OUTPUT : ENAME -------------------Pradeep Srinivas

29) All the Analysts in the operation department Query : SQL> SELECT Ename FROM Emp WHERE Dept_No IN (SELECT DeptNo FROM Dept WHERE DName='Operations')

AND JCODE IN (SELECT JCode FROM Job WHERE JName='Clerk'); OUTPUT : no rows select ed

30) Names of all the analysts in Kakinada area Query : SQL> SELECT ename FROM emp WHERE JCODE= (SELECT Jcode FROM job WHERE JName='analyst'); OUTPUT : no rows selected

31) All Employees reporting to President Query : SQL> SELECT Ename FROM Emp WHERE Mgr_No IN (SELECT Emp_No FROM Emp WHERE JCODE IN (SELECT JCode FROM Job WHERE JName='President'));

OUTPUT : ENAME -------------------Nirmala Pradeep Srinivas

32) All the analysts reporting to President Query : SQL> SELECT ename FROM emp WHERE JCODE= (SELECT Jcode FROM job WHERE JName='Analyst') AND Mgr_no= (SELECT emp_no FROM emp WHERE JCODE= (SELECT Jcode FROM job WHERE JName='president')); OUTPUT : no rows selected

33) SELECT all Employees who joined earliest in their own department Query : SQL> SELECT Ename FROM Emp WHERE Hiredate<=ALL (SELECT Hiredate FROM Emp WHERE Dept_no=Dept_no); OUTPUT : ENAME -------------------Srinivas

34) Write a query to display the top 3 Query : SQL> SELECT Ename, Salary FROM Emp e WHERE 2>= (SELECT COUNT (*) FROM Emp WHERE e.Salary<Salary);

OUTPUT : ENAME SALARY -------------------- ---------Venkat 1200000 Pradeep 1000000 Srinivas 1000000 35) Find the Employees who are drawing maximum Salary in respective departments Query : SQL> SELECT Ename FROM Emp e WHERE salary>= all (SELECT salary FROM Emp WHERE dept_no=e.dept_no); OUTPUT : ENAME -------------------Venkat Nirmala Srinivas Krishna Deepa Keerthi 6 rows selected. 36) Find the Employees who are getting maximum Salary in same Job Query : SQL> SELECT Ename FROM Emp e WHERE Salary>=ALL (SELECT Salary FROM Emp WHERE Jcode=e.Jcode); OUTPUT : ENAME -------------------Venkat Nirmala Pradeep Srinivas Deepa Keerthi 6 rows selected.

WEEK-5 37) Every Employee along with his Job function Query : SQL> SELECT e.Ename, j.JName FROM Emp e, Job j WHERE e.JCODE=j.JCodE; OUTPUT : ENAME JNAME -------------------- --------------Venkat President Nirmala Manager Pradeep Analyst Srinivas Analyst Krishna Staff Deepa Staff Keerthi Staff 7 rows selected.

38) Names of all Employee & their Dept names Query : SQL> SELECT e.Ename, d.DName FROM Emp e, Dept d WHERE e.Dept_No=d.DeptNo; OUTPUT : ENAME DNAME -------------------- --------------Nirmala Research Srinivas Sales Pradeep Operations Venkat Operations Krishna Research 39) All the Employees & their Dept names only for those Employees who are working in Kakinada Query : SQL> SELECT e.Ename, d.DName FROM Emp e, Dept d WHERE e.Dept_No=d.DeptNo AND LCODE IN (SELECT LCode FROM Loc WHERE LName='Kakinada');

OUTPUT : ENAME DNAME -------------------- --------------Krishna Research

40) Get all the Employees, Deptname for those Employees who are working as Clerks Query : SQL> SELECT Ename, DName FROM Emp e, Dept d WHERE e.Dept_No=d.DeptNo AND JCODE IN (SELECT JCode FROM Job WHERE JName='Clerk'); OUTPUT : no rows selected

41) Names of all Employees and his Managers numbers Query : SQL> SELECT e1.Ename, e2.Ename FROM Emp e1, Emp e2 WHERE e2.Emp_No=e1.Mgr_No;

OUTPUT : ENAME ENAME -------------------- -------------------Srinivas Venkat Pradeep Venkat Nirmala Venkat Krishna Nirmala Deepa Pradeep Keerthi Srinivas 6 rows selected.

42) Find Employees and their department name and department Location whose salary<400000 Query : SQL> SELECT Ename, d.DName, l.LName FROM Emp e, Dept d, Loc l WHERE e.Dept_No=d.DeptNo AND d.LCODE=l.LCode AND Salary IN (SELECT Salary FROM Emp WHERE Salary<400000); OUTPUT : no rows selected

WEEK-6 41) Total salary of all Employees Query : SQL> SELECT SUM (Salary) FROM Emp; OUTPUT : SUM(SALARY) ----------5700000

42) The max salary of all the Employees Query : SQL>SELECT MAX (Salary) FROM Emp; OUTPUT : MAX(SALARY) ----------1200000 43) Find the number of Employees in the Employee table Query : SQL> SELECT COUNT (ENAME) FROM Emp; OUTPUT : COUNT(ENAME) -----------7 44) Total salary of all the Employees who are in DeptNo=20 Query : SQL> SELECT SUM (Salary) FROM Emp WHERE Dept_No=20;

OUTPUT : SUM(SALARY) ----------800000 45) All the Employees whose salary is maximum in Sales department Query : SQL> SELECT MAX (SALARY) FROM EMP WHERE DEPT_NO IN (SELECT DEPTNO FROM DEPT WHERE DNAME='SALES'); OUTPUT : MAX(SALARY) ----------46) Senior most Employees in the Research department Query : SQL> SELECT MIN (HIREDATE) FROM EMP WHERE DEPT_NO IN (SELECT DEPTNO FROM DEPT WHERE DNAME='Research'); OUTPUT : MIN(HIRED --------09-OCT-05 47) Find the maximum salary for all the Analyst Query : SQL> SELECT MAX (SALARY) FROM EMP WHERE JCODE IN (SELECT JCODE FROM JOB WHERE JNAME='Analyst'); OUTPUT : MAX(SALARY) ----------1000000 48) Find the average salary in accounting department

Query : SQL> SELECT AVG (SALARY) FROM EMP WHERE DEPT_NO IN (SELECT DEPTNO FROM DEPT WHERE DNAME='Accounting'); OUTPUT : AVG(SALARY) ----------49) Find all the Employees whose joined date is earliest Query : SQL> SELECT ENAME FROM EMP WHERE HIREDATE IN (SELECT MIN(HIREDATE) FROM EMP; OUTPUT : ENAME -------------------Srinivas

50) The max salary in each department Query : SQL> SELECT MAX(SALARY) FROM EMP GROUP BY DEPT_NO; OUTPUT : MAX(SALARY) ----------1000000 800000 600000 600000 1200000 500000 6 rows selected.

51) Max salary of all the Employees who are in accounting department Query : SQL> SELECT MAX (SALARY) FROM EMP WHERE DEPT_NO = (SELECT DEPTNO FROM DEPT WHERE DNAME='Accounting'); OUTPUT : MAX(SALARY) -----------

52) Average salary of each department which has atleast 2 Employees Query : SQL> SELECT AVG (salary) FROM EmP GROUP BY Dept_No HAVING COUNT (*)>1; OUTPUT : AVG(SALARY) ----------1100000 53) Find the no. of Analysts Query : SQL> SELECT COUNT (EMP_NO) FROM EMP WHERE JCODE = (SELECT JCODE FROM JOB WHERE JNAME='Analyst'); OUTPUT : COUNT(EMP_NO) ------------2

54) Find the total salary of all the Clerks Query : SQL> SELECT SUM (EMP_NO) FROM EMP WHERE JCODE = (SELECT JCODE FROM JOB WHERE JNAME='Clerk'); OUTPUT : SUM(EMP_NO) ----------55) Give the total salary of each department Query : SQL> SELECT SUM(SALARY),DEPT_NO FROM EMP GROUP BY DEPT_NO; OUTPUT : SUM(SALARY) DEPT_NO ----------- ---------1000000 30 800000 20 600000 24 600000 23 2200000 40 500000 12 6 rows selected. 56) For each Job give total salary Query : SQL> SELECT SUM(SALARY),JCODE FROM EMP GROUP BY JCODE; OUTPUT : SUM(SALARY) ----------1200000 800000 2000000 1700000 JCODE ---------672 671 669 668

57) Deptname & no. of Employees in each department Query : SQL> SELECT COUNT(EMP_NO) ,DNAME FROM EMP E,DEPT D WHERE dept_no =deptno GROUP By Dname Having avg(salary)>=400000 OUTPUT : COUNT(EMP_NO) ------------2 1 2 DNAME --------------Research Sales Operations

58) No.of Employees for each Job name Query : SQL> SELECT COUNT(JCODE),JCODE FROM EMP GROUP BY JCODE; OUTPUT : COUNT(JCODE) -----------1 1 2 3 JCODE ---------672 671 669 668

59) Sum of salary for Clerks for each department Query : SQL> SELECT SUM (Salary), Dept_No FROM Emp WHERE JCODE= (SELECT JCode FROM Job WHERE JName='Clerk') GROUP BY Dept_No OUTPUT : no rows selected

60) No.of Employees in each department that has Location in Kakinada Query : SQL> SELECT COUNT(ENAME) FROM EMP WHERE DEPT_NO IN (SELECT DEPTNO FROM DEPT WHERE LCODE IN (SELECT LCODE FROM LOC WHERE LNAME='Kakinada')); OUTPUT : COUNT(ENAME) -----------1 61) Dept name, count of Employees of those Dept that have an average salary>400000 Query : SQL> SELECT DNAME, COUNT(E.EMP_NO) FROM DEPT D, EMP E WHERE DEPT_NO =DEPTNO GROUP By D.DNAME Having avg(salary)>=400000; OUTPUT : DNAME COUNT(E.EMP_NO) --------------- --------------Research 2 Sales 1 Operations 2

WEEK 7 62) Display the joining month/year of Nirmala Query : SQL> SELECT TO_CHAR (hiredate, 'mm/yy') MMYY FROM Emp WHERE ename='Nirmala'; OUTPUT : MMYY ----04/07 63) For each employee display the employees name and calculate the number of months between today and the date the employee was hired label the column months worked order the results by the number of months employed Round the number of months up to the closest whole number Query : SQL> SELECT Ename, ROUND (MONTHS_BETWEEN (SYSDATE, hiredate)) months_worked, LAST_DAY(HIREDATE) FROM Emp ORDER BY months_worked;

OUTPUT : ENAME MONTHS_WORKED LAST_DAY( -------------------- ------------- --------Deepa 42 30-SEP-07 Nirmala 47 30-APR-07 Keerthi 57 30-JUN-06 Venkat 61 28-FEB-06 Pradeep 65 31-OCT-05 Krishna 65 31-OCT-05 Srinivas 70 31-MAY-05 7 rows selected.

64) Display the employee number; hire Date using RUND AND TRUNK functions.
Query : SQL> SELECT Emp_No, hiredate, ROUND (hiredate), TRUNC (Hiredate) FROM Emp

OUTPUT : EMP_NO ---------1 2 3 4 5 6 7 HIREDATE --------01-FEB-06 02-APR-07 10-OCT-05 08-MAY-05 09-OCT-05 09-SEP-07 05-JUN-06 ROUND(HIR --------01-JAN-06 01-JAN-07 01-JAN-06 01-JAN-05 01-JAN-06 01-JAN-08 01-JAN-06 TRUNC(HIR --------01-JAN-06 01-JAN-07 01-JAN-05 01-JAN-05 01-JAN-05 01-JAN-07 01-JAN-06

65) Display the names of employees whose name contains the letter a with its position?
Query : SQL> SELECT Ename, INSTR (Ename, 'a') position FROM Emp WHERE INSTR (Ename, 'a') < >0; OUTPUT : ENAME -------------------Venkat Nirmala Pradeep Srinivas Krishna Deepa 6 rows select POSITION ---------5 5 3 7 7 5

66) Convert the first letter of each department in capital and remaining letters to lowercase
Query : SQL> select INITCAP (dname) FROM Dept; OUTPUT : INITCAP(DNAME) --------------Accounting Research Sales Operations Research Sales Operations 7 rows selected.

67) Capitalize the names of employees in employee table


Query : SQL> SELECT UPPER (Ename) FROM Emp; OUTPUT : UPPER(ENAME) -------------------VENKAT NIRMALA PRADEEP SRINIVAS KRISHNA DEEPA KEERTHI 7 rows select 68) Display the names of employees along with length Query : SQL> SELECT Ename, LENGTH (Ename) FROM Emp; OUTPUT : ENAME LENGTH(ENAME) -------------------- ------------Venkat 6 Nirmala 7 Pradeep 7 Srinivas 8 Krishna 7 Deepa 5 Keerthi 7 7 rows selected.

69) Display the Job and Salary such that every employee salary is 10 Digits left less pad a $ symbol. Query : SQL> SELECT Ename, LPAD (salary, 10, '$') FROM Emp;

OUTPUT : ENAME LPAD(SALARY,10,'$') -------------------- ---------------------------------------Venkat $$$1200000 Nirmala $$$$800000 Pradeep $$$1000000 Srinivas $$$1000000 Krishna $$$$500000 Deepa $$$$600000 Keerthi $$$$600000 7 rows selected.

70) Display the Job and Salary such that every employee salary is 10 Digits right less pad a $ symbol. Query : SQL> SELECT Ename, RPAD (salary, 10, '*') FROM Emp;

OUTPUT : ENAME RPAD(SALARY,10,'*') -------------------- ---------------------------------------Venkat 1200000*** Nirmala 800000**** Pradeep 1000000*** Srinivas 1000000*** Krishna 500000**** Deepa 600000**** Keerthi 600000**** 7 rows selected.

71) Display Hiredate by adding 4 months. Query : SQL> SELECT ADD_MONTHS(HIREDATE,4) FROM emp;

OUTPUT : ADD_MONTH --------01-JUN-06 02-AUG-07 10-FEB-06 08-SEP-05 09-FEB-06 09-JAN-08 05-OCT-06 7 rows selected.

72) Display next day of 06-March-2011 which is Saturday Query : SQL> SELECT NEXT_DAY('06-MAR-2011','saturyday') FROM DUAL; OUTPUT : NEXT_DAY( --------12-MAR-11

WEEK - 8 73) Create a Emp_Det view with 4 columns emp_no:, empo_name, salary,dept.no:. Query : SQL> CREATE VIEW EMP_DET AS SELECT EMP_NO, EName, salary,dept_no from Emp; OUTPUT : View created. 74) create a emp_det _analyst view with 2 columns emp_no,emp_name,

whose job code is 669?


Query : SQL> CREATE VIEW EMP_DET_Analyst AS SELECT EMP_NO, EName from Emp where jcode=669; OUTPUT : View created.

75) Display all of the above views? Query : SQL> SELECT * FROM EMP_DET; OUTPUT : EMP_NO ENAME SALARY DEPT_NO ---------- -------------------- ---------- ---------1 Venkat 1200000 40 2 Nirmala 800000 20 3 Pradeep 1000000 40 4 Srinivas 1000000 30 5 Krishna 500000 12 6 Deepa 600000 23 7 Keerthi 600000 24 SQL> SELECT * FROM EMP_DET_Analyst; OUTPUT : EMP_NO ENAME ---------- -------------------3 Pradeep 4 Srinivas

76) Create a view with emp_det_12 view with 2 columns with EMP_NO and ENAME whose

DEPT_NO IS 12
Query : SQL> > CREATE VIEW EMP_DET_12 AS SELECT EMP_NO, EName from Emp where DEPT_No=12; OUTPUT : View created. 77) Drop Emp_det_12 view? Query : SQL> DROP view Emp_Det_12; OUTPUT : View dropped.

WEEK 9 a) Write a PL/SQL program to read Employee Details from User and display Employee Details from EMP Table using Exception. PL/SQL Program : SQL> DECLARE 2 v_empname VARCHAR(20); 3 v_sal NUMBER (7); 4 v_empno NUMBER (3); 5 BEGIN 6 /* Read Emp_no from user and assign to : */ 7 v_empno := &v_empno; 8 SELECT ename, salary, emp_no INTO 9 v_empname, v_sal, v_empno 10 from emp 11 where emp_no=v_empno; 12 dbms_output.put_Line(v_empno); 13 dbms_output.put_Line(v_empname); 14 dbms_output.put_Line(v_sal); 15 EXCEPTION WHEN NO_DATA_FOUND 16 THEN 17 dbms_output.put_Line('EMP NO is NOT AVAILABLE'); 18 END; 19 / OUTPUT : Enter value for v_empno: 2 old 7: v_empno := &v_empno; new 7: v_empno := 2; 2 Nirmala 800000 PL/SQL procedure successfully completed.

b) Wrie a PL/SQL program to read a value from the user and check whether that number is even or odd PL/SQL Program : SQL> DECLARE 2 N NUMBER; 3 BEGIN 4 N := &N; 5 IF MOD (N, 2)=0 THEN 6 dbms_output.put_Line(N|| ' is EVEN'); 7 ELSE 8 dbms_output.put_Line(N|| ' is ODD'); 9 END IF; 10 END; 11 / OUTPUT 1 : Enter value for n: 2 old 4: N := &N; new 4: N := 2; 2 is EVEN PL/SQL procedure successfully completed.

OUTPUT 2 : SQL> / Enter value for n: 3 old 4: N := &N; new 4: N := 3; 3 is ODD PL/SQL procedure successfully completed.

c) Write a pl/sql program that accepts a number and add 1 to number If given number less than 10, subtract 1 from the number IF it is greater than10, and add 10 to it, IF it equals 10. Now display the value of resultant number and also tell whether it is even or odd using Nested IF. PL/SQL Program : SQL> DECLARE 2 N NUMBER := &NUM; 3 K NUMBER; 4 BEGIN 5 IF N<10 THEN 6 K:=N+1; 7 ELSE IF N>10 THEN 8 K:=N-1; 9 ELSE IF N=10 THEN 10 K:=N+10; 11 END IF; 12 END IF; 13 END IF; 14 DBMS_OUTPUT.PUT_LINE('The Given Number became ' || K); 15 IF MOD(K,2)=0 THEN 16 DBMS_OUTPUT.PUT_LINE(K|| ' IS EVEN'); 17 ELSE 18 DBMS_OUTPUT.PUT_LINE(K|| ' IS ODD'); 19 END IF; 20 END; 21 /

OUTPUT : Enter value for num: 5 old 2: N NUMBER := &NUM; new 2: N NUMBER := 5; The Given Number became 6 6 IS EVEN PL/SQL procedure successfully completed.

WEEK 10 a) Wrie a PL/SQL program to read Employee No from user and display all the Employee details upto that number using while loop. PL/SQL Program : SQL> DECLARE 2 v_empname VARCHAR(20); 3 v_sal NUMBER (7); 4 v_empno NUMBER (3); 5 i NUMBER:=1; 6 N NUMBER; 7 BEGIN 8 /* Read Emp_no from user and assign to : */ 9 v_empno := &v_empno; 10 N := v_empno; 11 while i<=N 12 LOOP 13 SELECT ename, salary, emp_no INTO 14 v_empname, v_sal, v_empno 15 from emp 16 where emp_no=i; 17 dbms_output.put_Line(v_empno); 18 dbms_output.put_Line(v_empname); 19 dbms_output.put_Line(v_sal); 20 i := i+1; 21 END LOOP; 22 EXCEPTION WHEN NO_DATA_FOUND 23 THEN 24 dbms_output.put_Line('EMP NO is NOT AVAILABLE'); 25 END; 26 / OUTPUT : Enter value for v_empno: 3 old 9: v_empno := &v_empno; new 9: v_empno := 3; 1 Venkat 1200000 2 Nirmala 800000 3 Pradeep 1000000 PL/SQL procedure successfully completed.

b) Wrie a PL/SQL program to read number from the user and display the fibonacci series upto that number using WHILE Loop PL/SQL Program : SQL> DECLARE 2 I NUMBER(3); 3 A INTEGER:=0; 4 B INTEGER:=1; 5 C INTEGER; 6 SUM NUMBER(3); 7 N NUMBER(3); 8 BEGIN 9 I:=1; 10 N:=&N; 11 DBMS_OUTPUT.PUT_LINE(A); 12 DBMS_OUTPUT.PUT_LINE(B); 13 WHILE (I<=N) 14 LOOP 15 DBMS_OUTPUT.PUT_LINE(C); 16 C:=A+B; 17 A:=B; 18 B:=C; 19 I:=I+1; 20 END LOOP; 21 END; 22 / OUTPUT : Enter value for n: 5 old 10: N:=&N; new 10: N:=5; 0 1 1 2 3 5 PL/SQL procedure successfully completed.

WEEK 11 a) Wrie a PL/SQL program to read a number from the user and print the Factorial of that number using FOR LOOP PL/SQL Program : SQL> DECLARE 2 i NUMBER:=1; 3 NUM NUMBER := 1; 4 N NUMBER := &N; 5 BEGIN 6 i := N; 7 FOR i IN 1..N 8 LOOP 9 NUM := NUM*i; 10 END LOOP; 11 dbms_output.put_Line(NUM); 12 END; 13 / OUTPUT : Enter value for n: 5 old 4: N NUMBER := &N; new 4: N NUMBER := 5; 120 PL/SQL procedure successfully completed.

b) Write a pl/sql program that accepts 2 Nos from the user and display the emp details between them. PL/SQL Program : SQL> DECLARE 2 v_empname VARCHAR(20); 3 v_sal NUMBER (7); 4 v_empno NUMBER (3); 5 MINVALUE NUMBER; 6 MAXVALUE NUMBER; 7 BEGIN 8 /* Read Emp_no from user and assign to : */ 9 MINVALUE :=&MINVALUE; 10 v_empno := &MAXVALUE; 11 MAXVALUE := v_empno; 12 while MINVALUE <= MAXVALUE 13 LOOP 14 SELECT ename, salary, emp_no INTO 15 v_empname, v_sal, v_empno 16 from emp 17 where emp_no=MINVALUE; 18 dbms_output.put_Line(v_empno); 19 dbms_output.put_Line(v_empname); 20 dbms_output.put_Line(v_sal); 21 MINVALUE := MINVALUE+1; 22 END LOOP; 23 EXCEPTION WHEN NO_DATA_FOUND 24 THEN 25 dbms_output.put_Line('EMP NO is NOT AVAILABLE'); 26* END; OUTPUT : Enter value for minvalue: 2 old 9: MINVALUE :=&MINVALUE; new 9: MINVALUE :=2; Enter value for maxvalue: 4 old 10: v_empno := &MAXVALUE; new 10: v_empno := 4; 2 Nirmala 800000 3 Pradeep 1000000 4 Srinivas 1000000 PL/SQL procedure successfully completed.

WEEK 12 a) Create a procedure which accept employee number from the user and return employee name,salary,commission by using in and out arguments. PL/SQL Procedure : SQL> CREATE OR REPLACE PROCEDURE EMP_3 (EMPNO IN NUMBER, EMPNAME OUT emp.ENAME%TYPE, ESALARY OUT emp.SALARY%TYPE, ECOMMISSION OUT emp.COMMISSION%TYPE) IS BEGIN SELECT ENAME,SALARY,COMMISSION INTO EMPNAME, ESALARY, ECOMMISSION FROM emp WHERE EMP_NO=EMPNO; END EMP_3 ; Procedure created. OUTPUT : SQL> VARIABLE GS NUMBER; SQL> VARIABLE GG NUMBER; SQL> VARIABLE GN VARCHAR2(20); SQL> EXEC EMP_3(2,:GN,:GS,:GG); PL/SQL procedure successfully completed. SQL> PRINT GN GS GG; GN -------------------------------Nirmala

GS ---------800000

GG ---------50000

b) Create a procedure which accept employee number from the user and display employee name,salary and commission. PL/SQL Procedure : SQL> CREATE OR REPLACE PROCEDURE EMP_2(EMPNO IN NUMBER) IS ESALARY NUMBER(10); BEGIN SELECT SALARY INTO ESALARY FROM emp WHERE EMP_NO=EMPNO; DBMS_OUTPUT.PUT_LINE('Salary before updated:'||ESALARY); UPDATE EMP SET SALARY=SALARY+(SALARY*0.1) WHERE EMP_NO=EMPNO; SELECT SALARY INTO ESALARY FROM emp WHERE EMP_NO=EMPNO; DBMS_OUTPUT.PUT_LINE('Salary after updated:'||ESALARY); END;

Procedure created. OUTPUT : SQL> EXEC EMP_2(4); Salary before updated:1000000 Salary after updated:1100000 PL/SQL procedure successfully completed.

You might also like