sql solved questions
TRANSCRIPT
-
8/10/2019 SQL Solved Questions
1/50
SQL Queries
Reference Text Book:
Fundamentals of DBMS 5e.
Chapter name: The Relational Algebra and
Relational Calculus.
1
-
8/10/2019 SQL Solved Questions
2/50
Company RDBMS
Pno: 6.19, Page no: 214-215
Reference Schema: Fig 5.5
2
-
8/10/2019 SQL Solved Questions
3/50
6.19a. Retrieve the names of all employees in department 5 who work more than 10
hrs per week on the productX project.
select fname,minit,lname
from employee
where dno=5 and ssn in ( select essn
from project JOIN works_on ON
pname = productX and hours > 10);
3
-
8/10/2019 SQL Solved Questions
4/50
6.19.b. List the names of all employees who have a dependent with the same first
name as themselves.
select fname , minit , lname
from employee JOIN dependent ON
where fname = dependent_name;
4
-
8/10/2019 SQL Solved Questions
5/50
6.19.c. Find the names of all employees who are directly supervised by Franklin
Wong
Select e.fname,e.minit,e.lname
from employee e
where e.super_ssn = (select ssn from employee where fname=Franklin and
lname = Wong);
5
-
8/10/2019 SQL Solved Questions
6/50
6.19.d. For each Project list the Project name and the total hour per week ( by all
employees ) spend on that project.
select pname,SUM(hours) as Total_no_of_hours
from project JOIN works_on ON
pnumber = pno
group by pname;
6
-
8/10/2019 SQL Solved Questions
7/50
6.19.e. Retrieve the names ofall
employees who works on every project.
select e.fname,e.minit,e.lname
from employee e
where not exists ( (select pnumber from project ) MINUS
( select pno from works_on where e.ssn = essn));
7
-
8/10/2019 SQL Solved Questions
8/50
6.19.f. Retrieve the names of all employees who do not work on any project.
select fname,minit,lname
from employee
where ssn not in ( select essn from works_on );
8
-
8/10/2019 SQL Solved Questions
9/50
6.19.g. For each department, retrieve the department name and the average salary of
all employees working in that department.
select dname,AVERAGE(salary) as Average_sal
from ( select dname,salary from employee JOIN department ON dno = dnumber )
group by dname;
9
-
8/10/2019 SQL Solved Questions
10/50
6.19.h. Retrieve the average salary of all female employees.
select AVERAGE(salary) as Avg_salary
from employee
where sex = F;
10
-
8/10/2019 SQL Solved Questions
11/50
6.19.i. Find the names and address of all employees who work on at least one project
located in houston but whose department has no location in houston.
select fname,address
from employee
where dno in ( (select dnum from project where plocation = Houston ) MINUS
( select dnumber from dept_location where dlocation = Houston ));
11
-
8/10/2019 SQL Solved Questions
12/50
6.19.j. List the names of all department managers who have no dependent.
select fname,minit,lname
from employee
where ssn not in ( select essn from dependent ) and
ssn in ( select mgr_ssn from department);
12
-
8/10/2019 SQL Solved Questions
13/50
Airline RDBMS
Pno: 5.16, Page no:215
Reference Schema :Fig 5.16
13
-
8/10/2019 SQL Solved Questions
14/50
6.20.a. For each flight list the flight number, the departure airport for first leg of the
flight and arrival airport for the last leg of the flight.
Create view flight_min_leg as
select * from
flight_leg f1 JOIN (select flight_number,MINIMUM(leg_number)) ON
f1.flight_number = flight_number and f1.leg_number = MINIMUM(leg_number)
Create view flight_max_leg as
select * from
flight_leg f1 JOIN (select flight_number,MAXIMUM(leg_number)) ONf1.flight_number = flight_number and f1.leg_number = MAXIMUM(leg_number)
Select * from
(select flight_no,dname dep from airport a JOIN (select * from flight_min_leg) b
ON a.airport_code = b.departure_airport_code) NATURAL JOIN
( select flight_no,dname arr from airport a1 JOIN (select * from flight_max_leg)
b1 ON a1.airport_code = b1.arrival_airport_code) ;
14
-
8/10/2019 SQL Solved Questions
15/50
6.20.b. List the flight numbers and weekdays of all flight or flight legs that depart from
Houston international airport ( IAH ) and arrive at Los Angeles international airport( LAX )
select flight_number,weekdays
from flight NATURAL JOIN flight_leg
where departure_airport_code = IAH and arrival+airport_code = LAX;
15
-
8/10/2019 SQL Solved Questions
16/50
6.20.c. List the number ,departure airport code, scheduled departure time, arrival airport code,
scheduled arrival time, and weekdays of all flights or flight legs that depart from some airport in
the city of Houston and arrive at some airport in the city of Los Angeles.
select * from
( ( flight_leg NATURAL JOIN
( select departure_airport_code from
airport JOIN ( select departure_airport_code from flight_leg f1 ) ON airport_code
= departure_airport_code
where city = HOUSTON )) NATURAL JOIN select arrival_airport_code from
airport JOIN (select arrival_airport_code from flight_leg f2) ON airport_code =arrival_airport_code
where city = LOS ANGELES);
16
-
8/10/2019 SQL Solved Questions
17/50
6.20.d. List the fare information for flight number CO197.
select fare_code,amount,restrictions
from fare
where flight_number = CO197 ;
17
-
8/10/2019 SQL Solved Questions
18/50
6.20.e. Retrieve the number of available seats for flight number CO197 on
1999-10-09.
select SUM(number_of_available_seats) as Total_no_of_seats
from leg_instance
where flight_number = CO197 and date = 1999-10-09;
18
-
8/10/2019 SQL Solved Questions
19/50
-
8/10/2019 SQL Solved Questions
20/50
-
8/10/2019 SQL Solved Questions
21/50
6.21.b. How many copies of the book titled The Last Tribe are owned by each library
branch.
select branch_name,SUM(no_of_copies) as Total_copies
from book_copies NATURAL JOIN library_branch
where book_id = (select book_id from book where title = The last tribe)
group by branch_name;
21
-
8/10/2019 SQL Solved Questions
22/50
6.21.c. Retrieve the names of all borrowers who do not have any book checked out.
select name
from borrower NATURAL JOIN (select card_no from book_loans
where due_date < today );
NOTE: Please Replace today by today`s date.
22
-
8/10/2019 SQL Solved Questions
23/50
6.21.d. For each book that is loaned from the Sharpstown branch and whose
due_date is today , Retrieve the booktitle, the borrowers name and borrowers
address.
select b.title,bw.name,bw.address
from (book b CROSS JOIN borrower bw) JOIN (select book_id,cardno
from book_loans bl
where bl.due_date = today and
bl.branch_id = (select branch_id from
library_branch where branchname =
Sharpstown)) ONb.book_id = book_id and bw.cardno = cardno;
NOTE: Replace today by today`s date
23
-
8/10/2019 SQL Solved Questions
24/50
6.21.e. For each library branch retrieve the branch name and the total number of
books loaned from that branch.
select branchname,COUNT(bookid) as Total_no_of_copies
from book_loans NATURAL JOIN library_branch
group by branchname;
24
-
8/10/2019 SQL Solved Questions
25/50
6.21.f. Retrieve the names, address and number of books checked out for all
borrowers who have more than 5 books checked out.
select name,COUNT(bookid) as Books_checked
from book_loans NATURAL JOIN borrower
where today < due_date
having Books_checked > 5;
NOTE: Replace today by today`s date
25
-
8/10/2019 SQL Solved Questions
26/50
-
8/10/2019 SQL Solved Questions
27/50
Order-Processing RDBMS
Pno: 6.22, Page no: 217
Reference Schema: 5.18
Please Note:# is replaced by _no
27
-
8/10/2019 SQL Solved Questions
28/50
6.22.a. List the order# and ship_date for all orders shipped from warehouse# w2.
select order_no, shipdate
from shipment
where warehouse_no = W2;
28
-
8/10/2019 SQL Solved Questions
29/50
6.22.b. List the warehouse information from which the customer named Jose Lopez
was supplied his orders, produce a listing: order#, warehouse#.
select order_no,warehouse_no
from (customers NATURAL JOIN order) NATURAL JOIN shipment
where cname = Jose Lopez;
29
-
8/10/2019 SQL Solved Questions
30/50
6.22.c. Produce a listing cname, no_of_orders, avg_order_amt where the middle
column is the total number of orders by the customer and the last column is the
average order amount for that customer.
select cname,no_of_orders,avg_order_amt from
(select cust_no,cname,COUNT(order_no) as no_of_orders,AVERAGE(ord_amt) as
avg_order_amtfrom customer NATURAL JOIN order
group by cust_no);
30
-
8/10/2019 SQL Solved Questions
31/50
6.22.d. List the orders that were not shipped within 30 days of ordering.
select order_no
from order NATURAL JOIN shipment
where ship_date odate >=30;
31
-
8/10/2019 SQL Solved Questions
32/50
6.22.e. List the order# for orders that were shipped from allwarehouses that the
company has in New York.
select s.order_no
from shipment s
where not exists ((select warehouse_no from warehouse where city = NewWork)
MINUS (select warehouse_no from shipment where order_no = s.order_no));
32
-
8/10/2019 SQL Solved Questions
33/50
Salesmen Business Trip RDBMS
Pno: 6.23, Page no: 217
Reference Schema: 5.19
33
-
8/10/2019 SQL Solved Questions
34/50
6.23.a. Give the details ( of all attributes ) for trips that exceeds $5000 in expences.
select ssn,from_city,to_city,departure_date,return_date
from trip NATURAL JOIN expence
where amount > 5000;
34
-
8/10/2019 SQL Solved Questions
35/50
6.23.b. Print the ssn and name of the salesman who made trips to SAN FRANSISCO.
select ssn,name
from trip NATURAL JOIN salesperson
where to_city = SAN FRANSISCO;
35
-
8/10/2019 SQL Solved Questions
36/50
6.23.c Print the total trip expenses incurred by the salesman with the name =
Rajaram.
select SUM(amount) as Total_expence
from (salesperson NATURAL JOIN trips) NATURAL JOIN expences
where name = rajaram;
36
-
8/10/2019 SQL Solved Questions
37/50
Student Enrollment RDBMS
Pno: 6.24, Page no: 217
Reference Schema: 5.20
37
-
8/10/2019 SQL Solved Questions
38/50
6.24.a. List the numbers of courses taken up by all students named prakash in winter
2007 ( i.e. quarter = W07 ).
select ssn,COUNT(course_no) as no_of_courses
from enroll NATURAL JOIN student
where name = Prakash
group by ssn;
38
-
8/10/2019 SQL Solved Questions
39/50
6.24.b. Produce a list of textbooks (include course#, book_ISBN , book_title, ) for
courses offered by the IT department that have used more than 3 books.
select course_no,book_ISBN,book_title
from book_adaoption NATURAL JOIN text
where course_no in ( select course_no from
( select c.course_no,COUNT(ba.book_ISBN) from
course c JOIN book_adaoption ba ON c.course_no = ba.course_no
where c.dept=IT
group by c.course_nohaving COUNT(ba.book_ISBN) > 3));
39
-
8/10/2019 SQL Solved Questions
40/50
6.24.c. Mention any department that has all its adapted books published by Addison
Wesley Publishing.
select c.dept
from course c
where not exists ((select book_ISBN from book where publisher = Addison wesleyPublishing) MINUS (select book_ISBN from book_adaoption where course_no =
c.course_no));
40
-
8/10/2019 SQL Solved Questions
41/50
Nested Query Examples.
Pno: 6.35, Page no: 219
Reference Schema:
41
-
8/10/2019 SQL Solved Questions
42/50
6.35.a. List the names of all employees who work in the department that has the
employee with highest salary among all employees.
select e.fname,e.minit,e.lname from employee e
where e.dno in (select e1.dno from employee e1
where e1.salary = (select MAXIMUM(salary) from employee));
42
-
8/10/2019 SQL Solved Questions
43/50
6.35.b List the names of all employees whose supervisors supervisor has 888665555
for ssn.
select e.fname,e.minit,e.lname from employee e
where e.super_ssn in (select ssn from employee where super_ssn = 888665555);
43
-
8/10/2019 SQL Solved Questions
44/50
6.35.c. List the names of employees who make at least $10,000 more than the
employee who is paid the least in the company.
select e.employee,e.minit,e.lname from employee e
where e.salary >= (select 10000+MINIMUM(salary) from employee);
44
-
8/10/2019 SQL Solved Questions
45/50
Book Club RDBMS
Pno: 6.41, Page no: 220-221
Reference Schema: 6.41
45
-
8/10/2019 SQL Solved Questions
46/50
6.41.a. Find the names of members who are the professors older than 45 years.
Select name from members
where age > 45 and designation = professor;
46
-
8/10/2019 SQL Solved Questions
47/50
6.41.b. List the titles of books reserved by professors.
Select btitle
from (members NATURAL JOIN reserves) NATURAL JOIN books
where desidnation = Professor;
47
-
8/10/2019 SQL Solved Questions
48/50
6.41.c. Find IDs of members who have not reserved books that cost more than Rs.500.
Select member_id
from reserves
where member_id in ((select r1.member_id from reserves r1) MINUS (selectr2.member_id from reserves r2 NATURAL JOIN books b
where b.bprice > 500));
48
-
8/10/2019 SQL Solved Questions
49/50
6.41.d. Find the author and titles of books reserved on 27-may-2007.
Select bauthor,titles
from books NATURAL JOIN reserves
where date = 27-may-2007;
49
-
8/10/2019 SQL Solved Questions
50/50
6.41.e. Find the names of members who have reserved allbooks.
Select m.name
from members m
where not exists( (select bid from books) MINUS (select bid from reserves wheremember_id = m.member_id));
50