Employee Database Queries
1st Que
Consider the below relational database where primary keys are
Underlined and Construct SQL Query for below problem statements.
Employee (Eid, Ename, street, city, Sal)
Works (Eid, Cid, Duration)
Company (Cid, Cname, city)
1. Find all employee names whose salary is greater than 5000
2. Find all employee living in city Nagpur
3. Find name of all employee who do not work for first bank corporation.
4. Find name of all employee who work for first bank corporation
5. Find name, street, city of all employee who work for first bank Corporation
and earn more than 10,000
6. Find names of all emp who live in same city as that of their Company.
1. To find all employee names whose salary is greater than 5000:
SQLCopy code
SELECT Ename
FROM Employee
WHERE Sal > 5000;
1. To find all employee living in city Nagpur:
SQLCopy code
SELECT Ename
FROM Employee
WHERE city = 'Nagpur';
1. To find name of all employee who do not work for first bank corporation:
SQLCopy code
SELECT Ename
FROM Employee
WHERE Eid NOT IN (SELECT Eid FROM Works WHERE Cid = (SELECT Cid FROM Company
WHERE Cname = 'first bank corporation'));
1. To find name of all employee who work for first bank corporation:
SQLCopy code
SELECT Ename
FROM Employee
WHERE Eid IN (SELECT Eid FROM Works WHERE Cid = (SELECT Cid FROM Company WHERE
Cname = 'first bank corporation'));
1. To find name, street, city of all employee who work for first bank Corporation and earn
more than 10,000:
SQLCopy code
SELECT Employee.Ename, Employee.street, Employee.city
FROM Employee
INNER JOIN Works ON Employee.Eid = Works.Eid
INNER JOIN Company ON Works.Cid = Company.Cid
WHERE Company.Cname = 'first bank corporation' AND Employee.Sal > 10000;
1. To find names of all emp who live in same city as that of their Company:
SQLCopy code
SELECT Employee.Ename
FROM Employee
INNER JOIN Works ON Employee.Eid = Works.Eid
INNER JOIN Company ON Works.Cid = Company.Cid
WHERE Employee.city = Company.city;
2 nd Que
Consider following schema & answer following queryCustomer(cname,street,city)
Deposit(cname,accno)Loan(loanno,bname,amt)Borrow(cname,loanno)1. Find customer
name who lives in Nagpur2. Find all customer name having loan amount less than 20000 of
branch SBI3. Find names of customer having either account or loan or both4. Find all
customer having loan at bank5. Find all customers who have loan but no loan at bank6. Find
all city names containing character n 7. Find all branch names whose names are not ending
with a8. Find number of customers of bank SBI9. Find lowest amount of loan at bank with
name AXIS.10. Find customer name having loan amt > 50000
1. To find customer name who lives in Nagpur:
SQLCopy code
SELECT cname
FROM Customer
WHERE city = 'Nagpur';
1. To find all customer name having loan amount less than 20000 of branch SBI:
SQLCopy code
SELECT DISTINCT Customer.cname
FROM Customer
INNER JOIN Borrow ON Customer.cname = Borrow.cname
INNER JOIN Loan ON Borrow.loanno = Loan.loanno
WHERE Loan.amt < 20000 AND Loan.bname = 'SBI';
1. To find names of customer having either account or loan or both:
SQLCopy code
SELECT DISTINCT cname
FROM (SELECT cname FROM Deposit
UNION SELECT cname FROM Borrow) AS Cust;
1. To find all customer having loan at bank:
SQLCopy code
SELECT DISTINCT Customer.cname
FROM Customer
INNER JOIN Borrow ON Customer.cname = Borrow.cname;
1. To find all customers who have loan but no account at bank:
SQLCopy code
SELECT DISTINCT Customer.cname
FROM Customer
INNER JOIN Borrow ON Customer.cname = Borrow.cname
LEFT JOIN Deposit ON Customer.cname = Deposit.cname
WHERE Deposit.cname IS NULL;
1. To find all city names containing character n:
SQLCopy code
SELECT DISTINCT city
FROM Customer
WHERE city LIKE '%n%';
1. To find all branch names whose names are not ending with a:
SQLCopy code
SELECT DISTINCT bname
FROM Loan
WHERE bname NOT LIKE '%a';
1. To find number of customers of bank SBI:
SQLCopy code
SELECT COUNT(DISTINCT Customer.cname)
FROM Customer
INNER JOIN Deposit ON Customer.cname = Deposit.cname
INNER JOIN Loan ON Customer.cname = Loan.cname
WHERE Deposit.accno LIKE 'SBI%';
1. To find lowest amount of loan at bank with name AXIS:
SQLCopy code
SELECT MIN(amt)
FROM Loan
WHERE bname = 'AXIS';
1. To find customer name having loan amt > 50000:
SQLCopy code
SELECT DISTINCT Customer.cname
FROM Customer
INNER JOIN Loan ON Customer.cname = Loan.cname
WHERE Loan.amt > 50000;
3rd que
Consider below schema and Construct SQL Query for below problem statements.
Sailor (Sid, Sname, city, age)
Boat (Bid, bname, color)
Reserve (Sid, Bid, R date)
1. Find names of sailors who have reserved a Red and Green boat.
2. Find names of sailors who have reserve boat called ‘abc’.
3. Find sailor id of all sailors who have reserve Red boat but not green
4. Find names of sailors who have reserve at least 1 boat.
5. Find color of boat reserve by jack.
6. Find name of sailor who have reserve boat 103.
7. Find name of sailor whose name starts with a and age > 60.
8. Find name and id of the sailor who have reserve boat on 1-4-2014.
9. Find name of boat which is reserve on 1-5-2013.
10. Find name of sailor who have reserve boat on 5-5-2013 and bname start from I.
1. To find names of sailors who have reserved a Red and Green boat:
SQLCopy code
SELECT DISTINCT Sailor.Sname
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid
INNER JOIN Boat ON Reserve.Bid = Boat.Bid
WHERE Boat.color IN ('Red', 'Green');
1. To find names of sailors who have reserve boat called ‘abc’:
SQLCopy code
SELECT DISTINCT Sailor.Sname
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid
INNER JOIN Boat ON Reserve.Bid = Boat.Bid
WHERE Boat.bname = 'abc';
1. To find sailor id of all sailors who have reserve Red boat but not green:
SQLCopy code
SELECT DISTINCT Sailor.Sid
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid
INNER JOIN Boat ON Reserve.Bid = Boat.Bid
WHERE Boat.color = 'Red' AND Sailor.Sid NOT IN
(SELECT Sailor.Sid
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid
INNER JOIN Boat ON Reserve.Bid = Boat.Bid
WHERE Boat.color = 'Green');
1. To find names of sailors who have reserve at least 1 boat:
SQLCopy code
SELECT DISTINCT Sailor.Sname
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid;
1. To find color of boat reserve by jack:
SQLCopy code
SELECT Boat.color
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid
INNER JOIN Boat ON Reserve.Bid = Boat.Bid
WHERE Sailor.Sname = 'jack';
1. To find name of sailor who have reserve boat 103:
SQLCopy code
SELECT Sailor.Sname
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid
WHERE Reserve.Bid = 103;
1. To find name of sailor whose name starts with a and age > 60:
SQLCopy code
SELECT Sailor.Sname
FROM Sailor
WHERE Sailor.Sname LIKE 'a%' AND Sailor.age > 60;
1. To find name and id of the sailor who have reserve boat on 1-4-2014:
SQLCopy code
SELECT DISTINCT Sailor.Sid, Sailor.Sname
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid
WHERE Reserve.Rdate = '2014-04-01';
1. To find name of boat which is reserve on 1-5-2013:
SQLCopy code
SELECT Boat.bname
FROM Reserve
INNER JOIN Boat ON Reserve.Bid = Boat.Bid
WHERE Reserve.Rdate = '2013-05-01';
1. To find name of sailor who have reserve boat on 5-5-2013 and bname start from I:
SQLCopy code
SELECT Sailor.Sname
FROM Sailor
INNER JOIN Reserve ON Sailor.Sid = Reserve.Sid
INNER JOIN Boat ON Reserve.Bid = Boat.Bid
WHERE Reserve.Rdate = '2013-05-05' AND Boat.bname LIKE 'I%';