Question: Question Consider the Sailors - Boats - Reserves DB described in the text. s ( sid , sname, rating, age ) b ( bid ,

Question
Consider the Sailors-Boats-Reserves DB described in the text.
s (sid, sname, rating, age)
b (bid, bname, color)
r (sid, bid, date)
Write each of the following queries in SQL.
1. Find the colors of boats reserved by Albert.
SELECT color
FROM s, b, r
WHERE r.sid=s.sid AND r.bid=b.bid AND
sname=`Albert
2. Find all sailor ids of sailors who have a rating of at least 8 or reserved boat 103.
(SELECT sid
FROM s
WHERE rating>=8)
UNION
(SELECT sid
FROM r
WHERE bid=103)
3. Find the names of sailors who have not reserved a boat whose name contains the string
storm. Order the names in ascending order.
SELECT sname
FROM s s1
WHERE sid NOT IN
(SELECT sid
FROM r, s
WHERE r.sid=s.sid AND sname LIKE `%storm%)
ORDER BY s1.sname
4. Find the sailor ids of sailors with age over 20 who have not reserved a boat whose name
includes the string thunder.
SELECT sid
FROM s
WHERE age>20 AND sid NOT IN
(SELECT sid
FROM r, b
WHERE r.bid=b.bid AND bname LIKE `%thunder%)
5. Find the names of sailors who have reserved at least two boats.
SELECT sname
FROM s, r r1, r r2
WHERE s.sid=r1.sid AND s.sid=r2.sid AND
r1.bid<>r2.bid
Note: If we want to eliminate duplicates, we SELECT DISTINCT sname. Alternatively, we
could simply change the condition in the WHERE clause from r1.bid<>r2.bid to, say
r1.bid

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!