Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

PART A (Writing some of the queries for HW 4 in SQL) Consider a database with th

ID: 3722190 • Letter: P

Question

PART A (Writing some of the queries for HW 4 in SQL) Consider a database with the following schema. LIKES(drinker.beer); /* primary key(drinker.beer) */ EREQUENTS(drinker.pub); /* primary key(drinker.pub)*/ SERVES(pub.beer.cost); /* primary key(pub.beer) */ Write the following queries in standard SQL, but without using aggregate operators 1. 2. 3. 4. 5. 6. 7. Find pubs that serve some beer that Joe likes. Find drinkers who frequent pubs where they can get a drink for less than S3 Find drinkers who like at least one expensive (over S8) beer that Joe likes. Find drinkers who like some beers but do not frequent any pubs Find drinkers who frequent pubs that serve either Stella Artois or Molsons. Find pubs that serve every beer that Joe likes Find all drinkers who frequent a pub that serves at least 2 beers they like, and one of them for at most S3.

Explanation / Answer

1) Using the join between frequenct and serves this query will result in in listing all pubs that serves beer that joe likes.
SELECT f.pubs
FROM FREQUENT AS f
INNER JOIN SERVES AS s
ON f.pub = s.pub INNER JOIN LIKES AS l ON l.pub = f.pub
WHERE l.drinker = 'Joe';
2) This query will result in all the drinker who are frequenct to the pubs where they can drink in less tha $3.
SELECT f.drinker
FROM FREQUENT AS f
INNER JOIN SERVES AS s
ON f.pub = s.pub
WHERE s.cost < 3;


3) List all drinker who likes expensive drink above $8 which joe likes.
SELECT f.drinker
FROM LIKES AS f
INNER JOIN SERVES AS s
ON s.beer = f.beer
WHERE s.cost > 8 AND f.drinker = 'Joe';


4) The drinker who likes beer but are not frequent to pubs. Subquery is used to get the list of drinker which are in table likes but not in frequent.
SELECT drinker
FROM LIKES
WHERE drinker NOT IN (SELECT drinker FROM FREQUENT);


5) List of drinker frequent to pub which serves Stella Artois and Molsons. IN is used in WHERE clause to extract the mentioned beer.
SELECT f.drinker
FROM FREQUENT AS f
INNER JOIN SERVES AS s
ON s.pub = f.pub
WHERE s.beer IN ('Stella Artois', 'Molsons');
6)
SELECT f.pubs
FROM FREQUENT AS f
INNER JOIN LIKES AS l
ON l.drinker = f.drinker
WHERE l.drinker = 'Joe';