39
Oracle Assessment A WORK REPORT SUBMITTED IN PARTIAL FULLFILLMENT OF THE REQUIREMENT FOR THE DEGREE Bachelor of Computer Application Dezyne E’cole College 106/10, CIVIL LINES AJMER RAJASTHAN - 305001 (INDIA) (JUNE, 2015) www.dezyneecole.com SUBMITTED BY SIMRAN KAUR CLASS: BCA 3 RD YEAR

Simran kaur,BCA Final Year 2015

Embed Size (px)

Citation preview

Page 1: Simran kaur,BCA Final Year 2015

Oracle Assessment

A WORK REPORT SUBMITTED

IN PARTIAL FULLFILLMENT OF THE REQUIREMENT FOR THE DEGREE

Bachelor of Computer Application

Dezyne E’cole College

106/10, CIVIL LINES

AJMER

RAJASTHAN - 305001 (INDIA)

(JUNE, 2015)

www.dezyneecole.com

SUBMITTED BY

SIMRAN KAUR

CLASS: BCA 3RD YEAR

Page 2: Simran kaur,BCA Final Year 2015

1

PROJECT ABSTRACT

I am SIMRAN KAUR Student of 3rd year doing my Bachelor Degree in Computer

Application.

In the following pages I gave compiled my work learnt during my 3rd year at college. The

subject is RDBMS. These assessments are based on Relational Database

Management System that is useful to work with front end (user interface) application.

Take example of an online form if the user filling up an online form (E.g. SBI Form, Gmail

registration Form) on to the internet whenever he/she clicks on the submit button the field

value is transfer to the backend database and stored in Oracle, MS-Access, My SQL,

SQL Server.

The purpose of a database is to store and retrieve related information later on. A database

server is the key to solving the problems for information management.

In these assessment we are using Oracle 10g as the Relation Database Software. The

back-end database is a database that is accessed by user indirectly through an external

application rather than by application programming stored within the database itself or by

low level manipulation of the data (e.g. through SQL commands).

Here in the following assessment we are performing the following operations:

1. Creating tables to store the data into tabular format (schemas of the data base)

2. Fetching the data from the database (Using Select Query)

3. Joining the multiple data tables into one (To reduces the redundancy of the data)

4. Nested Queries (Queries within Queries)

Page 3: Simran kaur,BCA Final Year 2015

2

Contents Select Statements ................................................................................................................................ 8

Grouping,Having etc. ........................................................................................................................ 18

Functions. ............................................................................................................................................ 23

Coverage Joins. .................................................................................................................................. 31

Nested and Co-related sub queries ............................................................................................... 36

Page 4: Simran kaur,BCA Final Year 2015

3

1. Create an Employee Table (Emp) with Following Fields:

FIELDS DATA TYPE SIZE

EMPNO NUMBER 4

ENAME VARCHAR2 20

DEPTNO NUMBER 2

JOB VARCHAR2 20

SAL NUMBER 5

COMM NUMBER 4

MGR NUMBER 4

HIREDATE DATE -

Solution: CREATE TABLE EMPLOYEE (EMPNO NUMBER(4), ENAME VARCHAR2(20), JOB VARCHAR(20), SAL NUMBER(5), COMM NUMBER(4), DEPTNO NUMBER(2), MGR NUMBER(4), HIREDATE DATE) Output:

To check the table structure: Solution: Desc employee Insert Atleast 5 records. Solution: Insert into employee(empno,ename,job,deptno,sal,comm,mgr,hiredate)

Page 5: Simran kaur,BCA Final Year 2015

4

values(:empno,:ename,:job,:deptno,:sal,:comm,:mgr,:hiredate)

Output:

How to fetch the record from the table: Solution: Select * from employee Output:

2. Create a Department Table (Dept) with Following Fields:

FIELDS DATA TYPE SIZE

DEPTNO NUMBER 2

DNAME VARCHAR2 20

LOC (location) VARCHAR2 20

Solution: Create table dept (deptno number(2), dname varchar2(20),

Page 6: Simran kaur,BCA Final Year 2015

5

loc varchar2(20)) Output:

To check the table structure: Solution: Desc dept Insert Atleast 5 records. Solution: Insert into dept(deptno,dname,loc) values(:deptno,:dname,:loc) Output:

How to fetch the record from the table: Select * from dept Output:

Page 7: Simran kaur,BCA Final Year 2015

6

3. Create a SalGrade Table with Following Fields:

FIELDS DATA TYPE SIZE

GRADE NUMBER 1

LOSAL NUMBER 5

HISAL NUMBER 5

Solution: Create table salgrade (grade number(1), lowsal number(5), highsal number(5)) Output:

To check the table structure: Solution: Desc salgrade Insert Atleast 5 records. Solution: Insert into salgrade(grade,lowsal,highsal) values(:grade,:lowsal,:highsal) Output:

How to fetch the record from the table: Solution: Select * from salgrade

Page 8: Simran kaur,BCA Final Year 2015

7

Output:

Page 9: Simran kaur,BCA Final Year 2015

8

SELECT STATEMENT

1. List all the information about all Employees.

Solution: Select * from employee Output:

2. Display the Name of all Employees along with their Salary.

Solution: Select ename,sal from emp Output:

3. List all the Employee Names who is working with Department Number is 20.

Solution: Select ename from employee where deptno=20 Output:

4. List the Name of all ‘ANALYST’ and ‘SALESMAN’.

Page 10: Simran kaur,BCA Final Year 2015

9

Solution: Select ename from employee Where job in('analyst','salesman') Output:

5. Display the details of those Employees who have joined before the end of Sept.

1981. Solution: Select * from employee where hiredate<='30-sep-1981' Output:

6. List the Employee Name and Employee Number, who is ‘MANAGER’.

Solution: Select ename,empno from employee where job='manager' Output:

7. List the Name and Job of all Employees who are not ‘CLERK’.

Solution: Select ename,job from employee where job!='clerk'

Page 11: Simran kaur,BCA Final Year 2015

10

Output:

8. List the Name of Employees, whose Employee Number is 7369,7521,7839,7934

or 7788.

Solution: Select ename from employee where empno in(7369,7521,7839,7934,7788) Output:

9. List the Employee detail who does not belongs to Department Number 10 and

30.

Solution: Select * from employee where deptno not in(10,30) Output:

10. List the Employee Name and Salary, whose Salary is vary from 1000 to 2000.

Solution: Select ename,sal from employee where sal between 1000 and 2000

Page 12: Simran kaur,BCA Final Year 2015

11

Output:

11. List the Employee Names, who have joined before 30-Jun-1981 and after Dec-

1981.

Solution: Select ename from employee where hiredate<'30-jun-1981' or hiredate>'31-dec-1981' Output:

12. List the Commission and Name of Employees, who are availing the

Commission.

Solution: Select comm,ename from employee where comm is not null Output:

13. List the Name and Designation (job) of the Employees who does not report to

anybody.

Solution: Select ename,job from employee where mgr is null

Page 13: Simran kaur,BCA Final Year 2015

12

Output:

14. List the detail of the Employees, whose Salary is greater than 2000 and

Commission is NULL.

Solution: Select * from employee where sal>2000 and comm is null Output:

15. List the Employee details whose Name start with ‘S’.

Solution: Select * from employee where ename like 's%' Output:

16. List the Employee Names and Date of Joining in Descending Order of Date of

Joining. Th0e column title should be “Date Of Joining”. Solution: Select ename,hiredate as "Date of Joining" from employee order by hiredate Output:

Page 14: Simran kaur,BCA Final Year 2015

13

17. List the Employee Name, Salary, Job and Department Number and display it in Descending Order of Department Number, Ascending Order of Name and Descending Order of Salary.

Solution: Select ename,sal,job,deptno from employee order by deptno desc,ename asc,sal desc Output:

18. List the Employee Name, Salary, PF, HRA, DA and Gross Salary; Order the result

in Ascending Order of Gross Salary. HRA is 50% of Salary, DA is 30% and PF is 10%.

Solution: Select ename,sal,sal+sal*50/100+sal*30/100-sal*10/100+comm as "gross salary" from employee order by "gross salary" asc Output:

19. List Salesman from dept No 50.

Solution: Select job,deptno from employee

Page 15: Simran kaur,BCA Final Year 2015

14

where job='salesman' and deptno=50 Output:

20. List Clerks from 20 and salesman from 50. In the list the lowest earning

employee must at top.

Solution: Select job,deptno from employee where job in('clerk','salesman')and deptno in(20,50) Output:

21. List different departments from Employee table.

Solution: Select distinct(deptno) from employee Output:

22. List employees having “N” at the end of their Name.

Solution: Select ename from employee where ename like '%n' Output:

Page 16: Simran kaur,BCA Final Year 2015

15

23. List employee who are not managed by anyone.

Solution: Select * from employee where mgr is null Output:

24. List employees who are having “AR” or “HN” in their names.

Solution: Select ename from employee where ename like '%ar%' or ename like '%hn%' Output:

25. List employees earning salaries below 1500 and more than 3000.

Solution: Select ename,sal from employee where sal<1500 or sal>3000 Output:

Page 17: Simran kaur,BCA Final Year 2015

16

26. List employees who are drawing some commission. Display their total salary as well.

Solution: Select ename,sal+comm from employee where comm is not null Output:

27. List employees who are drawing more commission than their salary. Only those

records should be displayed where commission is given (also sort the output in the descending order of commission).

Solution: Select comm,sal from employee where comm>sal order by comm desc Output:

28. List the employees who joined the company in the month of “FEB”.

Solution: Select ename,hiredate from employee where hiredate between '1-feb-1981' and '28-feb-1981' Output:

29. List employees who are working as salesman and having names of four

characters.

Page 18: Simran kaur,BCA Final Year 2015

17

Solution: Select ename,job from employee where job='salesman' and ename like '____' Output:

30. List employee who are managed by 7839.

Solution: Select ename,mgr from employee where mgr=7839 Output:

Page 19: Simran kaur,BCA Final Year 2015

18

GROUPING, HAVING ETC.

1. List the Department number and total number of employees in each department.

Solution: Select deptno,count(Empno) from employee group by deptno Output:

2. List the different Job names (Designation) available in the EMP table.

Solution: Select distinct job from employee group by job Output:

3. List the Average Salary and number of Employees working in Department

number 20. Solution: Select avg(sal),count(empno),deptno from employee where deptno=20 group by deptno Output:

Page 20: Simran kaur,BCA Final Year 2015

19

4. List the Department Number and Total Salary payable at each Department.

Solution: Select deptno,sum(Sal) from employee group by deptno Output:

5. List the jobs and number of Employees in each Job. The result should be in

Descending Order of the number of Employees.

Solution: Select job,count(empno) from employee group by job order by count(empno) desc Output:

6. List the Total salary, Maximum Salary, Minimum Salary and Average Salary of

Employees job wise, for Department number 10 only.

Solution: Select sum(sal),max(Sal),min(sal),avg(sal) from employee where deptno=10 group by job

Page 21: Simran kaur,BCA Final Year 2015

20

Output:

7. List the Average Salary of each Job, excluding ‘MANAGERS’.

Solution: Select avg(sal),job from employee where job!='manager' group by job Output:

8. List the Average Monthly Salary for each Job within each department.

Solution: Select avg(sal),job,deptno from employee group by job,deptno Output:

9. List the Average Salary of all departments, in which more than two people are

working. Solution:

Page 22: Simran kaur,BCA Final Year 2015

21

Select avg(sal),deptno,count(empno) from employee group by deptno having count(empno)>2 Output:

10. List the jobs of all Employees where Maximum Salary is greater than or equal

to 5000.

Solution: Select job,max(sal) from employee group by job having max(sal)>=5000 Output:

11. List the total salary and average salary of the Employees job wise, for

department number 20 and display only those rows having average salary greater than 1000.

Solution:

Select sum(sal+comm),avg(sal),job from employee where deptno=20 group by job having avg(sal)>1000 Output:

Page 23: Simran kaur,BCA Final Year 2015

22

12. List the Number of Employees Managed by Each Manager

Solution: Select count(empno),mgr from employee group by mgr Output:

13. List Average Commission Drawn by all Salesman

Solution: Select avg(comm),job from employee where job='salesman' group by job Output:

Page 24: Simran kaur,BCA Final Year 2015

23

FUNCTIONS

1. Calculate the remainder for two given numbers. (213,9)

Solution: Select mod(213,9) from dual Output:

2. Calculate the power of two numbers entered by the users at run time of the query. Solution: Select power(:first,:second) from dual

Output:

3. Enter a number and check whether it is negative or positive.

Solution: Select sign(:n) from dual

Output:

4. Calculate the square root for the given number. (i.e. 10000).

Page 25: Simran kaur,BCA Final Year 2015

24

Solution: Select sqrt(100000) from dual Output:

5. Enter a float number and truncate it up to 1 and -2 places of decimal. Solution: Select trunc(:n,-2) as "upto2",trunc(:n,1) as "upto1" from dual

Output:

6. Find the rounding value of 563.456, up to 2, 0 and -2 places of decimal. Solution: Select round(563.456,-2) as "upto-2",round(563.456,2) as "upto2",round(563.456) as "upto0" from dual Output:

7. Accept two numbers and display its corresponding character with the appropriate title. Solution: Select chr(:n) as "first",chr(:n1) as "second" from dual

Page 26: Simran kaur,BCA Final Year 2015

25

Output:

8. Input two names and concatenate it separated by two spaces. Solution: Select (:first)||' '||(:second) from dual

Output:

9. Display all the Employee names-with first character in upper case from EMP table. Solution: Select initcap(ename) from employee Output:

10. Display all the department names in upper and lower cases. Solution: Select upper(dname),lower(dname) from dept

Page 27: Simran kaur,BCA Final Year 2015

26

Output:

11. Extract the character S and A from the left and R and N from the right of the Employee name from EMP table. Solution: Select ename,rtrim(ltrim(ename,'sa'),'rn') from employee Output:

12. Change all the occurrences of CL with P in job domain. Solution: Select job,replace(job,'clerk','perk') from employee Output:

Page 28: Simran kaur,BCA Final Year 2015

27

13. Display the information of those Employees whose name has the second character A. Solution: Select ename,instr(ename,'a',2) from employee Output:

14. Display the ASCII code of the character entered by the user. Solution: Select chr(:n) from dual

Output:

15. Display the Employee names along with the location of the character A in the Employees name from EMP table where the job is CLERK.

Solution: Select ename,job,instr(ename,'a') from employee where job='clerk' Output:

Page 29: Simran kaur,BCA Final Year 2015

28

16. Find the Employee names with maximum number of characters in it.

Solution: Select max(length(ename)) from employee Output:

17. Display the salary of those Employees who are getting salary in four figures.

Solution: Select sal from employee where length(sal)=4 Output:

18. Display only the first three characters of the Employees name and their H RA (salary * .20), truncated to decimal places. Solution: Select substr(ename,1,3),trunc(sal*.20) as "total salary" from employee Output:

Page 30: Simran kaur,BCA Final Year 2015

29

19. List all the Employee names, who have more than 20 years of experience in the company. Solution: Select ename from employee where round(months_between(sysdate,hiredate)/12)>20 Output:

20. Display the name and job for every Employee, while displaying jobs, 'CLERK' should be displayed as 'LDC' and 'MANAGER' should be displayed as 'MNGR'. The other job title should be as they are. Solution: Select ename,job,decode(job,'clerk','LDC','manager','MNGR',job) job_details from employee Output:

Page 31: Simran kaur,BCA Final Year 2015

30

21. Display Date in the Following Format Tuesday 31 December 2002. Solution: Select to_char(sysdate,'day yy month yyyy') from dual Output:

22. Display the Sunday coming After 3 Months from Today’s Date. Solution: Select sysdate,next_day(sysdate,'sunday') from dual Output:

Page 32: Simran kaur,BCA Final Year 2015

31

Coverage Joins

1. List Employee Name, Job, Salary, Grade & the Location where they are working

Solution: Select ename,job,sal,grade,loc from employee join salgrade on sal between lowsal and highsal join dept using(deptno) Output:

2. Count the Employees For Each Salary Grade for Each Location

Solution: Select loc,count(empno),grade from employee join salgrade on sal between lowsal and highsal join dept using(deptno) group by grade,loc Output:

Page 33: Simran kaur,BCA Final Year 2015

32

3. List the Average Salary for Those Employees who are drawing salaries of grade 3 Solution: Select avg(sal) from employee join salgrade on sal between lowsal and highsal where grade=3 group by grade Output:

4. List Employee Name, Job, Salary Of those employees who are working in Accounting or Research department but drawing salaries of grade 3

Solution: Select empno,job,sal from employee join dept on employee.deptno=dept.deptno join salgrade on sal between lowsal and highsal where dname in('accounting','research') and grade=3 Output:

5. List employee Names, Manager Names & also Display the Employees who are not managed by anyone

Solution: Select m.ename as "manager",e.ename as "employee" from employee e left outer join emp m on m.empno=e.mgr Output:

Page 34: Simran kaur,BCA Final Year 2015

33

6. List Employees who are drawing salary more than the salary of MARTIN.

Solution: Select e.* from employee e join employee f on e.sal>f.sal where f.ename='martin' Output:

7. List Employees who have joined the company before their managers

Solution: Select e.ename,e.hiredate,m.ename,m.hiredate from employee e join employee m on e.mgr=m.empno where e.hiredate<m.hiredate Output:

8. List Employee Name, Job, Salary, Department No, Department name and Location Of all employees Working at NEW YORK

Page 35: Simran kaur,BCA Final Year 2015

34

Solution: Select ename,job,sal,deptno,dname,loc from employee join dept using(deptno) where loc='newyork' Output:

9. List Employee Name, Job, Salary, Hire Date and Location Of all employees reporting in Manager or Sales Department

Solution: Select ename,job,sal,hiredate,loc from employee join dept using(deptno) where dname='sales' and job='manager' Output:

10. List Employee Name, Job, Salary, Department Name, Location for Employees drawing salary more than 2000 and working at New York or America

Solution: Select ename,job,sal,dname,loc from employee join dept using(deptno) where sal>2000 and loc in('newyork','america') Output:

11. List Employee Name, Job, Salary, Department Name, Location Of all employees, also list the Department Details in which no employee is working

Solution: Select ename,job,sal,dname,loc from employee

Page 36: Simran kaur,BCA Final Year 2015

35

right outer join dept using(deptno) Output:

12. List all Employee details and also calculate the Average Salary and Total Salary Given to All Employees

Solution: Select sum(sal+comm),avg(sal),empno,ename,deptno,mgr from employee group by empno,ename,deptno,mgr Output:

Page 37: Simran kaur,BCA Final Year 2015

36

Nested and Correlated sub queries

1. List Employees who are working in the Sales Department (Use Nested). Solution: Select * from employee where deptno=(select deptno from dept where dname='sales') Output:

2. List Departments in which at least one employee is working (Use Nested).

Solution: Select dname from dept where deptno in(select deptno from employee) Output:

3. Find the Names of employees who do not work in the same department of Scott.

Solution: Select ename from employee where deptno <>(select deptno from employee where ename='scott') Output:

Page 38: Simran kaur,BCA Final Year 2015

37

4. List departments (dept details) in which no employee is working (use nested).

Solution: Select * from dept where deptno not in(select deptno from employee) Output:

5. List Employees who are drawing the Salary more than the Average salary of

DEPTNO 20. Also ensure that the result should not contain the records of DEPTNO 20

Solution: Select * from employee where sal>(select avg(sal) from employee where deptno=20)and deptno<>20 Output:

6. List Employee names drawing Second Maximum Salary

Solution: Select * from employee where sal=(select max(sal) from employee where sal<(select max(sal) from employee)) Output:

7. List the Employee Names, Job & Salary for those employees who are drawing

minmum salaries for their department (Use Correlated)

Solution: Select ename,job,sal from employee o where sal=(select min(sal) from employee i where o.deptno=i.deptno)

Page 39: Simran kaur,BCA Final Year 2015

38

Output:

8. List the highest paid employee for each department using correlated sub query.

Solution: Select * from employee e where sal=(select max(sal) from employee i where i.deptno=e.deptno) Output:

9. List Employees working for the same job type as of JOHN and drawing more than

him (use Self Join)

Solution: Select e.* from employee e join employee f on e.sal>f.sal and e.job=f.job where f.ename='john' Output: