-- Creating tables
CREATE TABLE emp (
eno INT PRIMARY KEY,
ename VARCHAR(50),
bdate DATE,
title VARCHAR(50),
salary DECIMAL(10,2),
dno INT
);
CREATE TABLE proj (
pno INT PRIMARY KEY,
pname VARCHAR(50),
budget DECIMAL(15,2),
dno INT
);
CREATE TABLE dept (
dno INT PRIMARY KEY,
dname VARCHAR(50),
mgreno INT
);
CREATE TABLE workson (
eno INT,
pno INT,
resp VARCHAR(50),
hours INT,
PRIMARY KEY (eno, pno),
FOREIGN KEY (eno) REFERENCES emp(eno),
FOREIGN KEY (pno) REFERENCES proj(pno)
);
-- Inserting data into emp table
INSERT INTO emp (eno, ename, bdate, title, salary, dno)
VALUES
(1, 'John Doe', '1990-01-01', 'Manager', 50000, 1),
(2, 'Jane Smith', '1995-05-15', 'EE', 40000, 1),
(3, 'Michael Johnson', '1988-09-20', 'SA', 45000, 2),
(4, 'Emily Brown', '1992-11-30', 'EE', 38000, 2),
(5, 'David Wilson', '1998-03-10', 'Manager', 55000, 2);
-- Inserting data into proj table
INSERT INTO proj (pno, pname, budget, dno)
VALUES
(101, 'Project A', 150000, 1),
(102, 'Project B', 90000, 2),
(103, 'Project C', 120000, 1);
-- Inserting data into dept table
INSERT INTO dept (dno, dname, mgreno)
VALUES
(1, 'Department A', 1),
(2, 'Department B', 5);
-- Inserting data into workson table
INSERT INTO workson (eno, pno, resp, hours)
VALUES
(1, 101, 'Manager', 40),
(2, 101, 'Engineer', 30),
(3, 102, 'Manager', 20),
(4, 103, 'Engineer', 25),
(5, 103, 'Manager', 35);
-- Query 1
SELECT pno, pname
FROM proj
WHERE budget > 100000;
-- Query 2
SELECT *
FROM workson
WHERE hours < 10 AND resp = 'Manager';
-- Query 3
SELECT eno, ename
FROM emp
WHERE (title = 'EE' OR title = 'SA') AND salary > 35000;
-- Query 4
SELECT ename
FROM emp
WHERE dno = 1
ORDER BY salary DESC;
-- Query 5
SELECT *
FROM dept
ORDER BY dname ASC;
-- Query 6
SELECT emp.ename, dept.dname, emp.title
FROM emp
INNER JOIN dept ON emp.dno = dept.dno;
-- Query 7
SELECT proj.pname, workson.hours, workson.pno
FROM proj
INNER JOIN workson ON proj.pno = workson.pno
WHERE workson.hours > 10;
-- Query 8
SELECT proj.pname, dept.dname, proj.budget
FROM proj
INNER JOIN dept ON proj.dno = dept.dno
WHERE proj.budget < 50000;
-- Query 9
SELECT emp.eno, emp.salary
FROM emp
INNER JOIN dept ON emp.dno = dept.dno
WHERE dept.dname = 'Consulting'
ORDER BY emp.salary DESC;
-- Query 10
SELECT emp.ename, proj.pname, emp.title, workson.hours
FROM emp
INNER JOIN workson ON emp.eno = workson.eno
INNER JOIN proj ON workson.pno = proj.pno;