You are on page 1of 17

Database Systems lab

Assessment -2

Name- Prianshu Goutam


Reg no-21BCE0400
Slot- L29 + L30
Faculty-Shashank Mouli Satapathy
EXERCISE -1
1) Find the employee names having salary greater than Rs.25000.
Query:
select first_name,last_name from employee
where salary >25000;

Output:

2) Find the employee names whose salary lies in the range between 30000 and
70000.
Query :
SELECT First_Name, Last_Name
FROM Employee
WHERE Salary >= 30000 AND Salary <= 70000;
Output:

3) Find the employees who have no supervisor.


Query:
SELECT e.First_Name, e.Last_Name
FROM Employee e
LEFT JOIN Employee s ON e.Supervisor_SSN = s.SSN_Number
WHERE s.SSN_Number IS NULL;

Output:
4) Display the bdate of all employee s in the format ‘DDthMonthYYYY’.
Query:
SELECT EXTRACT(DAY FROM birthday) || 'th' || TO_CHAR(birthday, 'MonthYYYY') AS
Birth_day
FROM Employee;

Output:

5) Display the employee names whose bdate is on or before 1978.


Query:
SELECT first_name || ' ' || mid_name || ' ' || last_name AS employee_name
FROM Employee
WHERE EXTRACT(YEAR FROM birthday) <= 1978;
Output:

6) Display the employee names having ‘salt lake’ in their address.


Query:
SELECT first_name || ' ' || mid_name || ' ' || last_name AS employee_name
FROM Employee
WHERE address LIKE '%Salt Lake%';

Output:

7) Display the department name that starts with ’M’.


Query:
SELECT department_name
FROM Dept
WHERE department_name LIKE 'M%';

Output:
8) Display the department names’ that ends with ‘E’.
Query:
SELECT department_name
FROM Dept
WHERE department_name LIKE '%e';

Output:

9) Display the names of all the employees having supervisor with any of the
following SSN 554433221, 333445555.
Query:
SELECT first_name || ' ' || mid_name || ' ' || last_name AS employee_name
FROM Employee
WHERE SSN_NUMBER in(554433221, 333445555);
Output:

10) Display all the department names in upper case and lower case
Query:
SELECT UPPER(department_name) AS department_name_upper,
LOWER(department_name) AS department_name_lower
FROM dept;

Output:

11) Display the first four characters and last four of the department names
using ltrim and rtrim.
Query:
SELECT LTRIM(SUBSTR(department_name, 1, 4)) AS first_four_chars,
RTRIM(SUBSTR(department_name, -4)) AS last_four_chars
FROM dept;

Output:

12) Display the substring of the Address (starting from 5th position to 11th
position) of all employees.
Query:
SELECT SUBSTR(Address, 5, 7) AS address_substring_5to11
FROM Employee;

Output:

13) Display the Mgrstartdate on adding three months to it.


Query:
SELECT MANAGERSTARTDATE + INTERVAL '3' MONTH AS
MgrStartDate_Plus_3_Months
FROM dept;
Output:

14) Display the age of all the employees rounded to two digits.
Query:
SELECT ROUND((SYSDATE - BIRTHDAY) / 365.25, 2) AS AGE
FROM Employee;

Output:
15) Find the last day and next day of the month in which each manager has
joined.
Query:

SELECT LAST_DAY(MANAGERSTARTDATE) AS
LAST_DAY_OF_MONTH, MANAGERSTARTDATE + INTERVAL '1' DAY
AS NEXT_DAY
FROM dept;

Output:
EXERCISE 2
For the relational schema given as part of Assessment – 1, write
the SQL queries using Group Functions to get the following
information.

1) How many different departments are there in the ‘employee’


table.

Query:

SELECT COUNT(DISTINCT DEPARTMENT_NUMBER) AS


DEPARTMENT_COUNT

FROM employee;

Output:

2) For each department display the minimum and maximum


employee salaries.

Query:
SELECT DEPARTMENT_NUMBER, MIN(SALARY) AS MIN_SALARY,

MAX(SALARY) AS MAX_SALARY

FROM Employee

GROUP BY DEPARTMENT_NUMBER;
Output:

3) Print the average annual salary.

Query:

SELECT AVG(SALARY) AS AVERAGE_SALARY

FROM Employee;

Output:

4) Count the number of employees over 30 age.

Query:

SELECT COUNT(*) AS employee_count FROM Employee

WHERE EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM BIRTHDAY) >


30;
Output:

5) Print the Department name and average salary of each


department.

Query:

SELECT d.DEPARTMENT_NAME, AVG(e.SALARY) AS average_salary FROM dept d

LEFT JOIN EMPLOYEE e ON d.DEPARTMENT_NUMBER = e.DEPARTMENT_NUMBER

GROUP BY d.DEPARTMENT_NAME;

Output:
6) Display the department name which contains more than 30
employees.

Query:

SELECT d.DEPARTMENT_NAME FROM dept d

JOIN EMPLOYEE e ON d.DEPARTMENT_NUMBER = e.DEPARTMENT_NUMBER

GROUP BY d.DEPARTMENT_NAME HAVING COUNT(*) > 30;

Output:

7) Calculate the average salary of employees by department and


age

Query:
SELECT DISTINCT DEPARTMENT_NUMBER, ROUND(MONTHS_BETWEEN(SYSDATE,BIRTHDAY)/12) AS
AGE_IN_YEARS, AVG(SALARY)

FROM EMPLOYEE GROUP BY DEPARTMENT_NUMBER, ROUND(MONTHS_BETWEEN(SYSDATE,


BIRTHDAY)/12) ORDER BY DEPARTMENT_NUMBER ASC;

Output:
8) Count separately the number of employees in the finance and
research department.

Query:

SELECT DEPARTMENT_NAME, COUNT(*) AS employee_count

FROM dept

JOIN EMPLOYEE ON dept.DEPARTMENT_NUMBER = EMPLOYEE.DEPARTMENT_NUMBER

WHERE DEPARTMENT_NAME IN ('Finance', 'Research')

GROUP BY DEPARTMENT_NAME;

Output:

9) List out the employees based on their seniority.

Query:

SELECT E.FIRST_NAME,E.LAST_NAME

FROM EMPLOYEE E

JOIN dept D ON E.DEPARTMENT_NUMBER = D.DEPARTMENT_NUMBER

ORDER BY D.managerstartdate ASC;


Output:

10)List out the employees who works in ‘manufacture’ department


group by first name.

Query:

SELECT E.FIRST_NAME, COUNT(*) AS EMPLOYEE_COUNT

FROM EMPLOYEE E

JOIN DEPT D ON E.DEPARTMENT_NUMBER = D.DEPARTMENT_NUMBER

WHERE D.DEPARTMENT_NAME = 'Manufacture'

GROUP BY E.FIRST_NAME;

Output:

You might also like