dbms lab exercises final

57
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)

Upload: aditya-veda

Post on 03-Mar-2015

304 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Dbms Lab Exercises Final

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 DATESALARY 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: 1Enter value for ename: VenkatEnter value for jcode: 672Enter value for mgr_no: nullEnter value for hiredate: 01-feb-2006Enter value for salary: 1200000Enter value for commission: 10000

Page 2: Dbms Lab Exercises Final

Enter value for dept_no: 40old 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: 2Enter value for ename: NirmalaEnter value for jcode: 671Enter value for mgr_no: 1Enter value for hiredate: 02-Apr-2007Enter value for salary: 800000Enter value for commission: 50000Enter 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.

Page 3: Dbms Lab Exercises Final

//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: 10Enter value for dname: AccountingEnter 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.

Page 4: Dbms Lab Exercises Final

//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: 667Enter 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.

Page 5: Dbms Lab Exercises Final

//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: 122Enter 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.

Page 6: Dbms Lab Exercises Final

//DISPLAY EMP TABLE

Query :

SQL> SELECT * FROM EMP;

OUTPUT :

EMP_NO ENAME JCODE MGR_NO HIREDATE SALARY COMMISSION DEPT_NO ---------- ----------- --------- ------------ ------------- ----------- -------------------- ------------- 1 Venkat 672 01-FEB-06 1200000 10000 40 2 Nirmala 671 1 02-APR-07 800000 50000 20 3 Pradeep 669 1 10-OCT-05 1000000 40 4 Srinivas 669 1 08-MAY-05 100000 30 5 Krishna 668 2 09-OCT-05 500000 20000 12 6 Deepa 668 3 09-SEP-07 600000 23 7 Keerthi 668 4 05-JUN-06 600000 24

7 rows selected.

//DISPLAY DEPT TABLEQuery :

SQL> SELECT * FROM DEPT;

OUTPUT:

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

Page 7: Dbms Lab Exercises Final

//DISPLAY JOB TABLE

Query :

SQL> SELECT * FROM JOB;

OUTPUT:

JCODE JNAME ---------- --------------- 667 Clerk 668 Staff 669 Analyst 670 Salesperson 671 Manager 672 President

//DISPLAY LOC TABLE

Query :

SQL> SELECT * FROM LOC;

OUTPUT:

LCODE LNAME---------- --------------- 122 Kakinada 124 Hyderabad 123 Bangalore 167 Vijayawada

Page 8: Dbms Lab Exercises Final

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;

Page 9: Dbms Lab Exercises Final

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--------------------VenkatNirmalaPradeepSrinivasKrishnaDeepaKeerthi

7 rows selected.

5) Name all employees who don’t get commission

Query :

SQL> SELECT Ename FROM Emp WHERE commission IS NULL;

OUTPUT :

ENAME--------------------PradeepSrinivasDeepaKeerthi

Page 10: Dbms Lab Exercises Final

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 1200000Nirmala 800000Krishna 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 500000Deepa 600000Keerthi 600000

Page 11: Dbms Lab Exercises Final

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 SALARY-------------------- ----------Venkat 1200000Pradeep 1000000Srinivas 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--------------------VenkatNirmalaPradeepKrishnaDeepaKeerthi

6 rows selected.

Page 12: Dbms Lab Exercises Final

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--------------------DeepaKeerthi

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'

Page 13: Dbms Lab Exercises Final

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--------------------SrinivasPradeepNirmalaKrishna

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

Page 14: Dbms Lab Exercises Final

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--------------------SrinivasPradeep

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

Page 15: Dbms Lab Exercises Final

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---------------BangaloreKakinada

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-------------------VenkatNirmalaPradeepSrinivas

Page 16: Dbms Lab Exercises Final

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--------------------VenkatPradeepSrinivas

Page 17: Dbms Lab Exercises Final

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--------------------NirmalaPradeepSrinivas

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 JCODE--------------- ----------Analyst 669Manager 671President 672

Page 18: Dbms Lab Exercises Final

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--------------------PradeepSrinivas

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')

Page 19: Dbms Lab Exercises Final

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--------------------NirmalaPradeepSrinivas

Page 20: Dbms Lab Exercises Final

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);

Page 21: Dbms Lab Exercises Final

OUTPUT :

ENAME SALARY-------------------- ----------Venkat 1200000Pradeep 1000000Srinivas 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--------------------VenkatNirmalaSrinivasKrishnaDeepaKeerthi

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--------------------VenkatNirmalaPradeepSrinivasDeepaKeerthi

6 rows selected.

Page 22: Dbms Lab Exercises Final

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 PresidentNirmala ManagerPradeep AnalystSrinivas AnalystKrishna StaffDeepa StaffKeerthi 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 ResearchSrinivas SalesPradeep OperationsVenkat OperationsKrishna 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');

Page 23: Dbms Lab Exercises Final

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 VenkatPradeep VenkatNirmala VenkatKrishna NirmalaDeepa PradeepKeerthi Srinivas

6 rows selected.

Page 24: Dbms Lab Exercises Final

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

Page 25: Dbms Lab Exercises Final

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;

Page 26: Dbms Lab Exercises Final

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

Page 27: Dbms Lab Exercises Final

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.

Page 28: Dbms Lab Exercises Final

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

Page 29: Dbms Lab Exercises Final

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) JCODE ----------- ---------- 1200000 672 800000 671 2000000 669 1700000 668

Page 30: Dbms Lab Exercises Final

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) DNAME ------------- --------------- 2 Research 1 Sales 2 Operations

58) No.of Employees for each Job name

Query :

SQL> SELECT COUNT(JCODE),JCODE FROM EMP GROUP BY JCODE;

OUTPUT :

COUNT(JCODE) JCODE ------------ ---------- 1 672 1 671 2 669 3 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

Page 31: Dbms Lab Exercises Final

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 2Sales 1Operations 2

Page 32: Dbms Lab Exercises Final

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 employee’s 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-07Nirmala 47 30-APR-07Keerthi 57 30-JUN-06Venkat 61 28-FEB-06Pradeep 65 31-OCT-05Krishna 65 31-OCT-05Srinivas 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

Page 33: Dbms Lab Exercises Final

OUTPUT :

EMP_NO HIREDATE ROUND(HIR TRUNC(HIR---------- --------- --------- --------- 1 01-FEB-06 01-JAN-06 01-JAN-06 2 02-APR-07 01-JAN-07 01-JAN-07 3 10-OCT-05 01-JAN-06 01-JAN-05 4 08-MAY-05 01-JAN-05 01-JAN-05 5 09-OCT-05 01-JAN-06 01-JAN-05 6 09-SEP-07 01-JAN-08 01-JAN-07 7 05-JUN-06 01-JAN-06 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 POSITION-------------------- ----------Venkat 5Nirmala 5Pradeep 3Srinivas 7Krishna 7Deepa 5

6 rows select

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)---------------AccountingResearchSalesOperationsResearchSalesOperations

7 rows selected.

Page 34: Dbms Lab Exercises Final

67) Capitalize the names of employees in employee table

Query :

SQL> SELECT UPPER (Ename) FROM Emp;

OUTPUT :

UPPER(ENAME)--------------------VENKATNIRMALAPRADEEPSRINIVASKRISHNADEEPAKEERTHI

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 6Nirmala 7Pradeep 7Srinivas 8Krishna 7Deepa 5Keerthi 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;

Page 35: Dbms Lab Exercises Final

OUTPUT :

ENAME LPAD(SALARY,10,'$')-------------------- ----------------------------------------Venkat $$$1200000Nirmala $$$$800000Pradeep $$$1000000Srinivas $$$1000000Krishna $$$$500000Deepa $$$$600000Keerthi $$$$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;

Page 36: Dbms Lab Exercises Final

OUTPUT :

ADD_MONTH---------01-JUN-0602-AUG-0710-FEB-0608-SEP-0509-FEB-0609-JAN-0805-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

Page 37: Dbms Lab Exercises Final

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

Page 38: Dbms Lab Exercises Final

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.

Page 39: Dbms Lab Exercises Final

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: 2old 7: v_empno := &v_empno;new 7: v_empno := 2;2Nirmala800000

PL/SQL procedure successfully completed.

Page 40: Dbms Lab Exercises Final

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: 2old 4: N := &N;new 4: N := 2;2 is EVEN

PL/SQL procedure successfully completed.

OUTPUT 2 :

SQL> /Enter value for n: 3old 4: N := &N;new 4: N := 3;3 is ODD

PL/SQL procedure successfully completed.

Page 41: Dbms Lab Exercises Final

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: 5old 2: N NUMBER := &NUM;new 2: N NUMBER := 5;The Given Number became 66 IS EVEN

PL/SQL procedure successfully completed.

Page 42: Dbms Lab Exercises Final

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: 3old 9: v_empno := &v_empno;new 9: v_empno := 3;1Venkat12000002Nirmala8000003Pradeep1000000

PL/SQL procedure successfully completed.

Page 43: Dbms Lab Exercises Final

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: 5old 10: N:=&N;new 10: N:=5;011235

PL/SQL procedure successfully completed.

Page 44: Dbms Lab Exercises Final

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: 5old 4: N NUMBER := &N;new 4: N NUMBER := 5;120

PL/SQL procedure successfully completed.

Page 45: Dbms Lab Exercises Final

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: 2old 9: MINVALUE :=&MINVALUE;new 9: MINVALUE :=2;Enter value for maxvalue: 4old 10: v_empno := &MAXVALUE;new 10: v_empno := 4;2Nirmala8000003Pradeep10000004Srinivas1000000

PL/SQL procedure successfully completed.

Page 46: Dbms Lab Exercises Final

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

Page 47: Dbms Lab Exercises Final

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:1000000Salary after updated:1100000

PL/SQL procedure successfully completed.