Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Nitin (21MTS5725)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Nitin

Roll No. = 21MTS5725


Course = BSc Mathematical Science
SEM = 2
Subject = Data Base
Management System
Practical Assignment
Submitted to: -
Shweta Wadhera Mam
ASSIGNMENT
RELATIONAL DATABASE SCHEMA - COMPANY
QUESTIONS TO BE PERFORMED ON THE SCHEMA
Create table with relevant foreign key constraints
Tables have been created as follow;
MariaDB [(none)]> use company;
Database changed
MariaDB [company]> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| department |
| dependent |
| dept_location |
| employee |
| project |
| works_on |
+-------------------+
6 rows in set (0.033 sec)

With the details of tables with their attributes are:


• Employee
MariaDB [company]> DESC EMPLOYEE;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| FNAME | varchar(100) | YES | | NULL | |
| MINIT | varchar(100) | YES | | NULL | |
| LNAME | varchar(100) | YES | | NULL | |
| SSN | int(11) | NO | PRI | NULL | |
| BDATE | date | YES | | NULL | |
| ADDRESS | varchar(20) | YES | | NULL | |
| SEX | varchar(20) | YES | | NULL | |
| SALARY | int(11) | YES | | NULL | |
| SUPERSSN | int(11) | YES | | NULL | |
| DNO | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
10 rows in set (0.011 sec)
• Department
MariaDB [company]> desc department;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| DNAME | varchar(50) | YES | | NULL | |
| DNUMBER | int(11) | NO | PRI | NULL | |
| MGRSSN | int(11) | YES | MUL | NULL | |
| MGRSTARTDATE | date | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+

• Dept_location
MariaDB [company]> desc dept_location;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| DNUMBER | int(11) | NO | PRI | NULL | |
| DLOCATION | varchar(50) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
2 rows in set (0.033 sec)

• Projects
MariaDB [company]> desc project;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| PNAME | varchar(100) | YES | | NULL | |
| PNUMBER | int(11) | NO | PRI | NULL | |
| PLOCATION | varchar(50) | YES | | NULL | |
| DNUM | int(11) | YES | MUL | NULL | |
+-----------+--------------+------+-----+---------+-------+
4 rows in set (0.028 sec)

• Works_on
MariaDB [company]> desc works_on;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| ESSN | int(11) | YES | MUL | NULL | |
| PNO | int(11) | YES | MUL | NULL | |
| HOURS | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
3 rows in set (0.030 sec)
• Dependent
MariaDB [company]> desc dependent;
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| ESSN | int(11) | YES | MUL | NULL | |
| DEPENDENT_NAME | varchar(100) | YES | | NULL | |
| SEX | varchar(20) | YES | | NULL | |
| BDATE | date | YES | | NULL | |
| RELATIONSHIP | varchar(100) | YES | | NULL | |
+----------------+--------------+------+-----+---------+-------+
5 rows in set (0.027 sec)

1. Populate the table with data


Data has been inserted into tables as follow;

• EMPLOYEE
MariaDB [company]> select * from employee;
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO |
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
| NARESH | K | YOGI | 123 | 1950-06-21 | DELHI | M | 80000 | 134 | 1 |
| ANSHI | A | RAWAT | 124 | 1955-07-11 | DELHI | F | 60000 | 134 | 3 |
| FRANKLIN | T | WONG | 134 | 1953-12-31 | BELLAIRE | M | 90000 | NULL | 3 |
| JATIN | J | JOSHI | 135 | 1996-10-10 | CHANDIGARH | M | 50000 | NULL | 2 |
| SUPRIYA | N | PHULE | 145 | 2000-04-06 | PUNE | F | 50000 | 135 | 2 |
| YOGESH | M | NARAYAN | 146 | 1974-01-05 | PUNE | M | 80000 | 135 | 3 |
| PETER | P | PARKER | 156 | 1964-11-23 | NEWYORK | M | 60000 | 135 | 4 |
| LALITA | L | SHARMA | 157 | 2000-05-08 | NEWYORK | F | 60000 | 134 | 4 |
| NAYA | K | MANOHAR | 167 | 1956-03-12 | CHANDIGARH | F | 50000 | 134 | 2 |
| JACOB | L | CHRISTIAN | 178 | 1999-05-10 | BELLAIRE | M | 90000 | 135 | 1 |
| MONIKA | K | KUMAR | 179 | 1988-09-12 | SURAT | F | 90000 | 134 | 1 |
| NARENDRA | D | MODI | 189 | 1984-09-12 | SURAT | M | 80000 | 134 | 4 |
| collin | s | simpson | 193 | 1999-12-13 | NEWYORK | M | 65000 | 135 | 2 |
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
13 rows in set (0.000 sec)
• DEPARTMENT
MariaDB [company]> select * from department;
+-----------+---------+--------+--------------+
| DNAME | DNUMBER | MGRSSN | MGRSTARTDATE |
+-----------+---------+--------+--------------+
| RESEARCH | 1 | 134 | 1998-03-22 |
| ADMIN | 2 | 135 | 1995-06-01 |
| MARKETING | 3 | 167 | 2003-07-31 |
| SALES | 4 | 189 | 2005-12-12 |
+-----------+---------+--------+--------------+
4 rows in set (0.043 sec)

• DEPT_LOCATION
MariaDB [company]> select * from dept_location;
+---------+------------+
| DNUMBER | DLOCATION |
+---------+------------+
| 1 | BELLAIRE |
| 2 | CHANDIGARH |
| 3 | PUNE |
| 4 | SURAT |
+---------+------------+
4 rows in set (0.021 sec)

• PROJECT
MariaDB [company]> select * from project;
+------------+---------+------------+------+
| PNAME | PNUMBER | PLOCATION | DNUM |
+------------+---------+------------+------+
| PROJECT X | 11 | DELHI | 3 |
| PROJECT Y | 12 | SURAT | 2 |
| PROJECT Z | 13 | PUNE | 3|
| UNIT 751 | 14 | BELLAIRE | 4 |
| DARK SPACE | 15 | NEWYORK | 1 |
| FAT BOY | 16 | CHANDIGARH | 2 |
+------------+---------+------------+------+
6 rows in set (0.017 sec)
• WORKS_ON
MariaDB [company]> select * from works_on;
+------+------+-------+
| ESSN | PNO | HOURS |
+------+------+-------+
| 123 | 12 | 15 |
| 134 | 11 | 20 |
| 145 | 12 | 23 |
| 156 | 14 | 25 |
| 167 | 15 | 25 |
| 178 | 16 | 23 |
| 189 | 16 | 20 |
| 124 | 15 | 18 |
| 135 | 14 | 15 |
| 146 | 13 | 12 |
| 157 | 12 | 18 |
| 179 | 11 | 20 |
| 146 | 12 | 12 |
| 189 | 12 | 25 |
| 178 | 12 | 18 |
| 134 | 12 | 28 |
| 156 | 12 | 28 |
| 167 | 12 | 17 |
| 124 | 12 | 24 |
| 179 | 12 | 17 |
| 193 | 12 | 11 |
+------+------+-------+
21 rows in set (0.002 sec)

• DEPENDENT
MariaDB [company]> select * from dependent;
+------+----------------+------+------------+--------------+
| ESSN | DEPENDENT_NAME | SEX | BDATE | RELATIONSHIP |
+------+----------------+------+------------+--------------+
| 123 | YASH | M | 1942-02-28 | SPOUSE |
| 134 | PETER | M | 1975-12-03 | STUDENT |
| 145 | SUPRIYA | F | 2003-06-10 | DAUGHTER |
| 156 | KHUSHI | F | 1985-03-24 | SPOUSE |
| 167 | NAGA | M | 1989-11-17 | SPOUSE |
| 178 | ANN | F | 2000-06-03 | DAUGHTER |
| 189 | AADITYA | M | 2001-04-07 | SON |
| 124 | POOJA | F | 1975-04-09 | SPOUSE |
| 135 | HARI | M | 2002-09-17 | SON |
| 146 | KUSHAL | M | 1989-11-11 | SPOUSE |
| 157 | LALIT | M | 1999-06-23 | SON |
| 179 | KIRAN | F | 1975-12-06 | SPOUSE |
+------+----------------+------+------------+--------------+
12 rows in set (0.019 sec)
2.Perform the following queries on the database:

1. Display all the details of all employees working in the


company
MariaDB [company]> select * from employee;
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO |
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
| NARESH | K | YOGI | 123 | 1950-06-21 | DELHI | M | 80000 | 134 | 1 |
| ANSHI | A | RAWAT | 124 | 1955-07-11 | DELHI | F | 60000 | 134 | 3 |
| FRANKLIN | T | WONG | 134 | 1953-12-31 | BELLAIRE | M | 90000 | NULL | 3 |
| JATIN | J | JOSHI | 135 | 1996-10-10 | CHANDIGARH | M | 50000 | NULL | 2 |
| SUPRIYA | N | PHULE | 145 | 2000-04-06 | PUNE | F | 50000 | 135 | 2 |
| YOGESH | M | NARAYAN | 146 | 1974-01-05 | PUNE | M | 80000 | 135 | 3 |
| PETER | P | PARKER | 156 | 1964-11-23 | NEWYORK | M | 60000 | 135 | 4 |
| LALITA | L | SHARMA | 157 | 2000-05-08 | NEWYORK | F | 60000 | 134 | 4 |
| NAYA | K | MANOHAR | 167 | 1956-03-12 | CHANDIGARH | F | 50000 | 134 | 2 |
| JACOB | L | CHRISTIAN | 178 | 1999-05-10 | BELLAIRE | M | 90000 | 135 | 1 |
| MONIKA | K | KUMAR | 179 | 1988-09-12 | SURAT | F | 90000 | 134 | 1 |
| NARENDRA | D | MODI | 189 | 1984-09-12 | SURAT | M | 80000 | 134 | 4 |
| collin | s | simpson | 193 | 1999-12-13 | NEWYORK | M | 65000 | 135 | 2 |
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
13 rows in set (0.000 sec)

2.Display ssn, lname, fname, address of employees who work in


MariaDB [company]> select SSN,LNAME,FNAME,ADDRESS FROM EMPLOYEE WHERE DNO = 4;
+-----+--------+----------+---------+
| SSN | LNAME | FNAME | ADDRESS |
+-----+--------+----------+---------+
| 156 | PARKER | PETER | NEWYORK |
| 157 | SHARMA | LALITA | NEWYORK |
| 189 | MODI | NARENDRA | SURAT |
+-----+--------+----------+---------+
3 rows in set (0.000 sec)
2. Retrieve the birthdate and address of the employee whose name iS
‘Franklin T. Wong'
MariaDB [company]> SELECT BDATE,ADDRESS FROM EMPLOYEE WHERE FNAME = 'FRANKLIN' AND
MINIT = 'T' AND LNAME = 'WONG';
+------------+----------+
| BDATE | ADDRESS |
+------------+----------+
| 1953-12-31 | BELLAIRE |
+------------+----------+
1 row in set (0.017 sec)

3. Retrieve the birthplace and address of the employee whose name


is ‘Franklin T wong’.
MariaDB [company]> SELECT FNAME,MINIT,LNAME,SALARY FROM EMPLOYEE;
+----------+-------+-----------+--------+
| FNAME | MINIT | LNAME | SALARY |
+----------+-------+-----------+--------+
| NARESH | K | YOGI | 80000 |
| ANSHI | A | RAWAT | 60000 |
| FRANKLIN | T | WONG | 90000 |
| JATIN | J | JOSHI | 50000 |
| SUPRIYA | N | PHULE | 50000 |
| YOGESH | M | NARAYAN | 80000 |
| PETER | P | PARKER | 60000 |
| LALITA | L | SHARMA | 60000 |
| NAYA | K | MANOHAR | 50000 |
| JACOB | L | CHRISTIAN | 90000 |
| MONIKA | K | KUMAR | 90000 |
| NARENDRA | D | MODI | 80000 |
| collin | s | simpson | 65000 |
+----------+-------+-----------+--------+
13 rows in set (0.001 sec)

4. Retrieve all distinct salary values


MariaDB [company]> select distinct SALARY FROM EMPLOYEE;
+--------+
| SALARY |
+--------+
| 80000 |
| 60000 |
| 90000 |
| 50000 |
| 65000 |
+--------+
5 rows in set (0.001 sec)
5. Retrieve all employee names whose address is in ‘Bellaire’
MariaDB [company]> SELECT FNAME,MINIT,LNAME FROM EMPLOYEE WHERE ADDRESS = 'BELLAIRE';
+----------+-------+-----------+
| FNAME | MINIT | LNAME |
+----------+-------+-----------+
| FRANKLIN | T | WONG |
| JACOB | L | CHRISTIAN |
+----------+-------+-----------+
2 rows in set (0.001 sec)

6. Retrieve all employees who were born during the 1950s


MariaDB [company]> SELECT * FROM EMPLOYEE WHERE YEAR(BDATE) BETWEEN 1950 AND 1960;
+----------+-------+---------+-----+------------+------------+------+--------+----------+------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO |
+----------+-------+---------+-----+------------+------------+------+--------+----------+------+
| NARESH | K | YOGI | 123 | 1950-06-21 | DELHI | M | 80000 | 134 | 1 |
| ANSHI | A | RAWAT | 124 | 1955-07-11 | DELHI | F | 60000 | 134 | 3 |
| FRANKLIN | T | WONG | 134 | 1953-12-31 | BELLAIRE | M | 90000 | NULL | 3 |
| NAYA | K | MANOHAR | 167 | 1956-03-12 | CHANDIGARH | F | 50000 | 134 | 2 |
+----------+-------+---------+-----+------------+------------+------+--------+----------+------+
4 rows in set (0.020 sec)

7. Retrieve all employees in department 5 whose salary is between


50,000 and 60,000(inclusive)
MariaDB [company]> SELECT * FROM EMPLOYEE WHERE SALARY BETWEEN 50000 AND 60000 ;
+---------+-------+---------+-----+------------+------------+------+--------+----------+------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO |
+---------+-------+---------+-----+------------+------------+------+--------+----------+------+
| ANSHI | A | RAWAT | 124 | 1955-07-11 | DELHI | F | 60000 | 134 | 3 |
| JATIN | J | JOSHI | 135 | 1996-10-10 | CHANDIGARH | M | 50000 | NULL | 2 |
| SUPRIYA | N | PHULE | 145 | 2000-04-06 | PUNE | F | 50000 | 135 | 2 |
| PETER | P | PARKER | 156 | 1964-11-23 | NEWYORK | M | 60000 | 135 | 4 |
| LALITA | L | SHARMA | 157 | 2000-05-08 | NEWYORK | F | 60000 | 134 | 4 |
| NAYA | K | MANOHAR | 167 | 1956-03-12 | CHANDIGARH | F | 50000 | 134 | 2 |
+---------+-------+---------+-----+------------+------------+------+--------+----------+------+
6 rows in set (0.001 sec)

8. Retrieve SSN and department name for all employees


MariaDB [company]> SELECT FNAME FROM EMPLOYEE WHERE SUPERSSN IS NULL;
+----------+
| FNAME |
+----------+
| FRANKLIN |
| JATIN |
+----------+
2 rows in set (0.001 sec)
9. Retrieve SSN and department name for all employees
MariaDB [company]> SELECT SSN,DNAME FROM EMPLOYEE,DEPARTMENT WHERE DNO = DNUMBER;
+-----+-----------+
| SSN | DNAME |
+-----+-----------+
| 123 | RESEARCH |
| 124 | MARKETING |
| 134 | MARKETING |
| 135 | ADMIN |
| 145 | ADMIN |
| 146 | MARKETING |
| 156 | SALES |
| 157 | SALES |
| 167 | ADMIN |
| 178 | RESEARCH |
| 179 | RESEARCH |
| 189 | SALES |
| 193 | ADMIN |
+-----+-----------+
13 rows in set (0.013 sec)

10. Retrieve the name and address of all employees who work
for the 'Research' department

MariaDB [company]> SELECT FNAME,ADDRESS FROM EMPLOYEE,DEPARTMENT WHERE DNO = DNUMBER AND
DNAME = 'RESEARCH';
+--------+----------+
| FNAME | ADDRESS |
+--------+----------+
| NARESH | DELHI |
| JACOB | BELLAIRE |
| MONIKA | SURAT |
+--------+----------+
3 rows in set (0.000 sec)

11. For every project located in 'SURAT', list the project number,
the controlling department number, and the department manager's
last name, address, and birthdate.

MariaDB [company]> SELECT DISTINCT PNUMBER,DNUM,LNAME,ADDRESS,BDATE FROM


DEPARTMENT,EMPLOYEE,WORKS_ON,PROJECT WHERE MGRSSN = SSN AND ESSN = SSN AND DNUM = DNUMBER
AND PLOCATION = 'SURAT';
+---------+------+-------+------------+------------+
| PNUMBER | DNUM | LNAME | ADDRESS | BDATE |
+---------+------+-------+------------+------------+
| 12 | 2 | JOSHI | CHANDIGARH | 1996-10-10 |
+---------+------+-------+------------+------------+
1 row in set (0.015 sec)
12. For each employee, retrieve the employee's name, and the
name of his or her immediate supervisor.

MariaDB [company]> SELECT A.FNAME,B.FNAME FROM EMPLOYEE AS A,EMPLOYEE AS B WHERE A.SUPERSSN =


B.SSN;
+----------+----------+
| FNAME | FNAME |
+----------+----------+
| NARESH | FRANKLIN |
| ANSHI | FRANKLIN |
| SUPRIYA | JATIN |
| YOGESH | JATIN |
| PETER | JATIN |
| LALITA | FRANKLIN |
| NAYA | FRANKLIN |
| JACOB | JATIN |
| MONIKA | FRANKLIN |
| NARENDRA | FRANKLIN |
| collin | JATIN |
+----------+----------+
11 rows in set (0.034 sec)

13.Retrieve all combinations of Employee Name and Department


Name

MariaDB [company]> SELECT FNAME,DNAME FROM EMPLOYEE,DEPARTMENT;


+----------+-----------+
| FNAME | DNAME |
+----------+-----------+
| NARESH | RESEARCH |
| NARESH | ADMIN |
| NARESH | MARKETING |
| NARESH | SALES |
| ANSHI | RESEARCH |
| ANSHI | ADMIN |
| ANSHI | MARKETING |
| ANSHI | SALES |
| FRANKLIN | RESEARCH |
| FRANKLIN | ADMIN |
| FRANKLIN | MARKETING |
| FRANKLIN | SALES |
| JATIN | RESEARCH |
| JATIN | ADMIN |
| JATIN | MARKETING |
| JATIN | SALES |
| SUPRIYA | RESEARCH |
| SUPRIYA | ADMIN |
| SUPRIYA | MARKETING |
| SUPRIYA | SALES |
| YOGESH | RESEARCH |
| YOGESH | ADMIN |
| YOGESH | MARKETING |
| YOGESH | SALES |
| PETER | RESEARCH |
| PETER | ADMIN |
| PETER | MARKETING |
| PETER | SALES |
| LALITA | RESEARCH |
| LALITA | ADMIN |
| LALITA | MARKETING |
| LALITA | SALES |
| NAYA | RESEARCH |
| NAYA | ADMIN |
| NAYA | MARKETING |
| NAYA | SALES |
| JACOB | RESEARCH |
| JACOB | ADMIN |
| JACOB | MARKETING |
| JACOB | SALES |
| MONIKA | RESEARCH |
| MONIKA | ADMIN |
| MONIKA | MARKETING |
| MONIKA | SALES |
| NARENDRA | RESEARCH |
| NARENDRA | ADMIN |
| NARENDRA | MARKETING |
| NARENDRA | SALES |
| collin | RESEARCH |
| collin | ADMIN |
| collin | MARKETING |
| collin | SALES |
+----------+-----------+
52 rows in set (0.001 sec)

14. Make a list of all project numbers for projects that involve an
employee whose last name is 'Narayan’ either as a worker or as a
manager of the department that controls the project.

MariaDB [company]> (SELECT DISTINCT PNO FROM PROJECT,WORKS_ON,EMPLOYEE


-> WHERE ESSN = SSN AND PNO = PNUMBER AND LNAME = 'NARAYAN') UNION
-> (SELECT PNUMBER FROM EMPLOYEE,DEPARTMENT,PROJECT
-> WHERE DNUM = DNUMBER AND SSN = MGRSSN AND LNAME = 'NARAYAN');
+------+
| PNO |
+------+
| 12 |
| 13 |
+------+
2 rows in set (0.034 sec)
15. Increase the salary of all employees working on the
'ProductX' project by 15%. Retrieve employee name and increased
salary of these employees.
MariaDB [company]> UPDATE EMPLOYEE SET SALARY = SALARY*115/100 WHERE SSN IN
-> (SELECT ESSN FROM PROJECT,WORKS_ON WHERE PNO = PNUMBER AND PNAME = 'PROJECT X');
Query OK, 2 rows affected (0.057 sec)
Rows matched: 2 Changed: 2 Warnings: 0

MariaDB [company]> SELECT FNAME,SALARY FROM EMPLOYEE WHERE SSN IN


-> (SELECT ESSN FROM PROJECT,WORKS_ON WHERE PNO = PNUMBER AND PNAME = 'PROJECT X');
+----------+--------+
| FNAME | SALARY |
+----------+--------+
| FRANKLIN | 103500 |
| MONIKA | 103500 |
+----------+--------+
2 rows in set (0.001 sec)

16. Retrieve a list of employees and the project name each works
in, ordered by the employee's department, and within each
department ordered alphabetically by employee first name.
MariaDB [company]> SELECT FNAME,PNAME FROM EMPLOYEE,WORKS_ON,PROJECT WHERE SSN = ESSN AND PNO =
PNUMBER
-> ORDER BY DNO,FNAME;
+----------+------------+
| FNAME | PNAME |
+----------+------------+
| JACOB | FAT BOY |
| JACOB | PROJECT Y |
| MONIKA | PROJECT X |
| MONIKA | PROJECT Y |
| NARESH | PROJECT Y |
| collin | PROJECT Y |
| JATIN | UNIT 751 |
| NAYA | PROJECT Y |
| NAYA | DARK SPACE |
| SUPRIYA | PROJECT Y |
| ANSHI | PROJECT Y |
| ANSHI | DARK SPACE |
| FRANKLIN | PROJECT Y |
| FRANKLIN | PROJECT X |
| YOGESH | PROJECT Z |
| YOGESH | PROJECT Y |
| LALITA | PROJECT Y |
| NARENDRA | FAT BOY |
| NARENDRA | PROJECT Y |
| PETER | PROJECT Y |
| PETER | UNIT 751 |
+----------+------------+
21 rows in set (0.017 sec)
17. Select the names of employees whose salary does not match
with salary of any employee in department 2.

MariaDB [company]> SELECT FNAME FROM EMPLOYEE WHERE SALARY NOT IN


-> (SELECT SALARY FROM EMPLOYEE WHERE DNO = 2);
+----------+
| FNAME |
+----------+
| NARESH |
| ANSHI |
| FRANKLIN |
| YOGESH |
| PETER |
| LALITA |
| JACOB |
| MONIKA |
| NARENDRA |
+----------+
9 rows in set (0.033 sec)

18. Retrieve the name of each employee who has a dependent


with the same first name and same sex as the employee.

MariaDB [company]> SELECT FNAME FROM EMPLOYEE,DEPENDENT WHERE ESSN = SSN AND DEPENDENT_NAME =
FNAME AND DEPENDENT.SEX = EMPLOYEE.SEX;
+---------+
| FNAME |
+---------+
| SUPRIYA |
+---------+
1 row in set (0.001 sec)

19. Retrieve the employee numbers of all employees who work


on project located in Bellaire, Pune, or Surat.

MariaDB [company]> SELECT SSN,FNAME FROM EMPLOYEE,WORKS_ON,PROJECT WHERE


-> SSN = ESSN AND PNO = PNUMBER AND PLOCATION IN ('BELLAIRE','PUNE','SURAT');
+-----+----------+
| SSN | FNAME |
+-----+----------+
| 123 | NARESH |
| 145 | SUPRIYA |
| 157 | LALITA |
| 146 | YOGESH |
| 189 | NARENDRA |
| 178 | JACOB |
| 134 | FRANKLIN |
| 156 | PETER |
| 167 | NAYA |
| 124 | ANSHI |
| 179 | MONIKA |
| 193 | collin |
| 146 | YOGESH |
| 156 | PETER |
| 135 | JATIN |
+-----+----------+
14 rows in set (0.001 sec)

20. Find the sum of the salaries of all employees, the maximum
salary, the minimum salary, and the average salary. Display with
proper headings.

MariaDB [company]> SELECT SUM(SALARY) AS TOTAL_SALARY,MAX(SALARY) AS MAXIMUM_SALARY,


-> MIN(SALARY) AS MINIMUM_SALARY,AVG(SALARY) AS AVERAGE_SALARY FROM EMPLOYEE;
+--------------+----------------+----------------+----------------+
| TOTAL_SALARY | MAXIMUM_SALARY | MINIMUM_SALARY | AVERAGE_SALARY |
+--------------+----------------+----------------+----------------+
| 932000 | 103500 | 50000 | 71692.3077 |
+--------------+----------------+----------------+----------------+
1 row in set (0.046 sec)

21. Find the sum of the salaries and number of employees of all
employees of the ‘Marketing’ department, as well as the maximum
salary, the minimum salary, and the average salary in this
department.

MariaDB [company]> SELECT SUM(SALARY),MAX(SALARY),MIN(SALARY),COUNT(*),AVG(SALARY) FROM


EMPLOYEE,DEPARTMENT WHERE DNO = DNUMBER AND DNAME = 'MARKETING';
+-------------+-------------+-------------+----------+-------------+
| SUM(SALARY) | MAX(SALARY) | MIN(SALARY) | COUNT(*) | AVG(SALARY) |
+-------------+-------------+-------------+----------+-------------+
| 243500 | 103500 | 60000 | 3 | 81166.6667 |
+-------------+-------------+-------------+----------+-------------+
1 row in set (0.001 sec)
22. Select the names of employees whose salary is greater than
the average salary of all employees in department 2.
MariaDB [company]> SELECT FNAME FROM EMPLOYEE WHERE SALARY > (SELECT AVG(SALARY)
FROM EMPLOYEE WHERE DNO = 2);
+----------+
| FNAME |
+----------+
| NARESH |
| ANSHI |
| FRANKLIN |
| YOGESH |
| PETER |
| LALITA |
| JACOB |
| MONIKA |
| NARENDRA |
| collin |
+----------+
10 rows in set (0.026 sec)

23. For each department, retrieve the department number, the


number of employees in the department, and their average salary.
MariaDB [company]> SELECT DNUMBER,COUNT(*),AVG(SALARY) FROM EMPLOYEE,DEPARTMENT
WHERE DNO = DNUMBER GROUP BY DNO;
+---------+----------+-------------+
| DNUMBER | COUNT(*) | AVG(SALARY) |
+---------+----------+-------------+
| 1| 3 | 91166.6667 |
| 2| 4 | 53750.0000 |
| 3| 3 | 81166.6667 |
| 4| 3 | 66666.6667 |
+---------+----------+-------------+
4 rows in set (0.001 sec)

24. For each project, retrieve the project number, the project
name, and the number of employees who work on that project.
MariaDB [company]> SELECT PNUMBER,PNAME,COUNT(*) FROM PROJECT,WORKS_ON WHERE PNO =
PNUMBER GROUP BY PNO;
+---------+------------+----------+
| PNUMBER | PNAME | COUNT(*) |
+---------+------------+----------+
| 11 | PROJECT X | 2|
| 12 | PROJECT Y | 12 |
| 13 | PROJECT Z | 1|
| 14 | UNIT 751 | 2|
| 15 | DARK SPACE | 2|
| 16 | FAT BOY | 2|
+---------+------------+----------+
6 rows in set (0.001 sec)
25. Change the location and controlling department number for
all projects having more than 5 employees to ‘Bellaire’ and 6
respectively.
MariaDB [company]> UPDATE PROJECT SET DNUM = 6, PLOCATION = 'BELLAIRE' WHERE PNUMBER IN
(SELECT PNUMBER FROM WORKS_ON WHERE PNO = PNUMBER GROUP BY PNO HAVING COUNT(*)
>5);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`company`.`project`,
CONSTRAINT `project_ibfk_1` FOREIGN KEY (`DNUM`) REFERENCES `department` (`DNUMBER`))

26. For each department having more than 10 employees,


retrieve the department no, no of employees drawing more than
40,000 as salary.
MariaDB [company]> SELECT DNO,COUNT(*) AS TOTAL_EMPLOYEE FROM EMPLOYEE WHERE
SALARY>40000 AND DNO IN (SELECT DNO FROM EMPLOYEE GROUP BY DNO HAVING COUNT(*)>10);
+------+----------------+
| DNO | TOTAL_EMPLOYEE |
+------+----------------+
| NULL | 0|
+------+----------------+
1 row in set (0.001 sec)

27. Insert a record in Project table which violates referential


integrity constraint with respect to Department number. Now
remove the violation by making necessary insertion in the
Department table.
MariaDB [company]> INSERT INTO PROJECT VALUES('DARK HOURSE',17,'DELHI',5);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`company`.`project`,
CONSTRAINT `project_ibfk_1` FOREIGN KEY (`DNUM`) REFERENCES `department` (`DNUMBER`))
MariaDB [company]> INSERT INTO DEPARTMENT VALUES('AUDIT',5,134,'2000-11-11');
Query OK, 1 row affected (0.055 sec)

MariaDB [company]> SELECT * FROM DEPARTMENT;


+-----------+---------+--------+--------------+
| DNAME | DNUMBER | MGRSSN | MGRSTARTDATE |
+-----------+---------+--------+--------------+
| RESEARCH | 1 | 134 | 1998-03-22 |
| ADMIN | 2 | 135 | 1995-06-01 |
| MARKETING | 3 | 167 | 2003-07-31 |
| SALES | 4 | 189 | 2005-12-12 |
| AUDIT | 5 | 134 | 2000-11-11 |
+-----------+---------+--------+--------------+
5 rows in set (0.000 sec)

MariaDB [company]> INSERT INTO PROJECT VALUES('DARK HOURSE',17,'DELHI',5);


Query OK, 1 row affected (0.046 sec)

MariaDB [company]> SELECT * FROM PROJECT;


+-------------+---------+------------+------+
| PNAME | PNUMBER | PLOCATION | DNUM |
+-------------+---------+------------+------+
| PROJECT X | 11 | DELHI | 3|
| PROJECT Y | 12 | SURAT | 2 |
| PROJECT Z | 13 | PUNE | 3|
| UNIT 751 | 14 | BELLAIRE | 4 |
| DARK SPACE | 15 | NEWYORK | 1 |
| FAT BOY | 16 | CHANDIGARH | 2 |
| DARK HOURSE | 17 | DELHI | 5|
+-------------+---------+------------+------+
7 rows in set (0.018 sec)

28. Delete all dependents of employee whose ssn is ‘123’.


MariaDB [company]> DELETE FROM DEPENDENT WHERE ESSN = 123;
Query OK, 1 row affected (0.073 sec)

MariaDB [company]> SELECT * FROM DEPENDENT;


+------+----------------+------+------------+--------------+
| ESSN | DEPENDENT_NAME | SEX | BDATE | RELATIONSHIP |
+------+----------------+------+------------+--------------+
| 134 | PETER | M | 1975-12-03 | STUDENT |
| 145 | SUPRIYA | F | 2003-06-10 | DAUGHTER |
| 156 | KHUSHI | F | 1985-03-24 | SPOUSE |
| 167 | NAGA | M | 1989-11-17 | SPOUSE |
| 178 | ANN | F | 2000-06-03 | DAUGHTER |
| 189 | AADITYA | M | 2001-04-07 | SON |
| 124 | POOJA | F | 1975-04-09 | SPOUSE |
| 135 | HARI | M | 2002-09-17 | SON |
| 146 | KUSHAL | M | 1989-11-11 | SPOUSE |
| 157 | LALIT | M | 1999-06-23 | SON |
| 179 | KIRAN | F | 1975-12-06 | SPOUSE |
+------+----------------+------+------------+--------------+
11 rows in set (0.000 sec)

29. Delete an employee from Employee table with ssn = ‘134’(


make sure that this employee has some dependents, is working on
some project, is a manager of some department and is supervising
some employees). Check and display the cascading effect on
Dependent and Works on table. In Department table MGRSSN
should be set to default value and in Employee table SUPERSSN
should be set to NULL.
MariaDB [company]> DELETE FROM EMPLOYEE WHERE SSN = 134;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`company`.`department`,
CONSTRAINT `department_ibfk_1` FOREIGN KEY (`MGRSSN`) REFERENCES `employee` (`SSN`))

30. Perform a query using alter command to drop/add field and a


constraint in Employee table.
MariaDB [company]> ALTER TABLE EMPLOYEE ADD COLUMN EXTENDED_INFO VARCHAR(100)
DEFAULT 'NONE';
Query OK, 0 rows affected (0.176 sec)
Records: 0 Duplicates: 0 Warnings: 0

MariaDB [company]> SELECT * FROM EMPLOYEE;


+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+---------------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO | EXTENDED_INFO |
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+---------------+
| NARESH | K | YOGI | 123 | 1950-06-21 | DELHI | M | 80000 | 134 | 1 | NONE |
| ANSHI | A | RAWAT | 124 | 1955-07-11 | DELHI | F | 60000 | 134 | 3 | NONE |
| FRANKLIN | T | WONG | 134 | 1953-12-31 | BELLAIRE | M | 103500 | NULL | 3 | NONE |
| JATIN | J | JOSHI | 135 | 1996-10-10 | CHANDIGARH | M | 50000 | NULL | 2 | NONE |
| SUPRIYA | N | PHULE | 145 | 2000-04-06 | PUNE | F | 50000 | 135 | 2 | NONE |
| YOGESH | M | NARAYAN | 146 | 1974-01-05 | PUNE | M | 80000 | 135 | 3 | NONE |
| PETER | P | PARKER | 156 | 1964-11-23 | NEWYORK | M | 60000 | 135 | 4 | NONE |
| LALITA | L | SHARMA | 157 | 2000-05-08 | NEWYORK | F | 60000 | 134 | 4 | NONE |
| NAYA | K | MANOHAR | 167 | 1956-03-12 | CHANDIGARH | F | 50000 | 134 | 2 | NONE |
| JACOB | L | CHRISTIAN | 178 | 1999-05-10 | BELLAIRE | M | 90000 | 135 | 1 | NONE |
| MONIKA | K | KUMAR | 179 | 1988-09-12 | SURAT | F | 103500 | 134 | 1 | NONE |
| NARENDRA | D | MODI | 189 | 1984-09-12 | SURAT | M | 80000 | 134 | 4 | NONE |
| collin | s | simpson | 193 | 1999-12-13 | NEWYORK | M | 65000 | 135 | 2 | NONE |
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+---------------+
13 rows in set (0.000 sec)

MariaDB [company]> ALTER TABLE EMPLOYEE DROP COLUMN EXTENDED_INFO;


Query OK, 0 rows affected (0.075 sec)
Records: 0 Duplicates: 0 Warnings: 0

MariaDB [company]> SELECT * FROM EMPLOYEE;


+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
| FNAME | MINIT | LNAME | SSN | BDATE | ADDRESS | SEX | SALARY | SUPERSSN | DNO |
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
| NARESH | K | YOGI | 123 | 1950-06-21 | DELHI | M | 80000 | 134 | 1 |
| ANSHI | A | RAWAT | 124 | 1955-07-11 | DELHI | F | 60000 | 134 | 3 |
| FRANKLIN | T | WONG | 134 | 1953-12-31 | BELLAIRE | M | 103500 | NULL | 3 |
| JATIN | J | JOSHI | 135 | 1996-10-10 | CHANDIGARH | M | 50000 | NULL | 2 |
| SUPRIYA | N | PHULE | 145 | 2000-04-06 | PUNE | F | 50000 | 135 | 2 |
| YOGESH | M | NARAYAN | 146 | 1974-01-05 | PUNE | M | 80000 | 135 | 3 |
| PETER | P | PARKER | 156 | 1964-11-23 | NEWYORK | M | 60000 | 135 | 4 |
| LALITA | L | SHARMA | 157 | 2000-05-08 | NEWYORK | F | 60000 | 134 | 4 |
| NAYA | K | MANOHAR | 167 | 1956-03-12 | CHANDIGARH | F | 50000 | 134 | 2 |
| JACOB | L | CHRISTIAN | 178 | 1999-05-10 | BELLAIRE | M | 90000 | 135 | 1 |
| MONIKA | K | KUMAR | 179 | 1988-09-12 | SURAT | F | 103500 | 134 | 1 |
| NARENDRA | D | MODI | 189 | 1984-09-12 | SURAT | M | 80000 | 134 | 4 |
| collin | s | simpson | 193 | 1999-12-13 | NEWYORK | M | 65000 | 135 | 2 |
+----------+-------+-----------+-----+------------+------------+------+--------+----------+------+
13 rows in set (0.000 sec)

You might also like