0% found this document useful (0 votes)
51 views

Simple Queries

The document describes creating three database tables - Sailors, Boats, and Reserves. It then provides examples of eight SQL queries that retrieve information from these tables by joining them in various ways. The queries find information like the names of sailors reserved for a specific boat ID or color, the colors of boats reserved by a particular sailor, and aggregates like average age or counting distinct values. Nested subqueries and aggregate functions like COUNT, AVG, and MAX are also demonstrated.

Uploaded by

nellutlaramya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views

Simple Queries

The document describes creating three database tables - Sailors, Boats, and Reserves. It then provides examples of eight SQL queries that retrieve information from these tables by joining them in various ways. The queries find information like the names of sailors reserved for a specific boat ID or color, the colors of boats reserved by a particular sailor, and aggregates like average age or counting distinct values. Nested subqueries and aggregate functions like COUNT, AVG, and MAX are also demonstrated.

Uploaded by

nellutlaramya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Create 3 Tables :

Sailors(sid: integer, sname: string, rating: integer, age: real)


Boats(bid: integer, bname: string, color: string)
Reserves(sid: integer, bid: integer, day: date)

Q1) Find the names of sailors who have reserved boat number 103.

SELECT S.sname
FROM Sailors S, Reserves R
WHERE S.sid = R.sid AND R.bid=103

(Q2) Find the names of sailors who have reserved a red boat.

SELECT S.sname
FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND B.color = `red'

(Q3) Find the colors of boats reserved by Lubber.

SELECT B.color
FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND S.sname = `Lubber'

(Q4) Find the names of sailors who have reserved at least one boat.

SELECT S.sname
FROM Sailors S, Reserves R
WHERE S.sid = R.sid

(Q5) Find all sailors with a rating above 7.


SELECT S.sid, S.sname, S.rating, S.age
FROM Sailors AS S
WHERE S.rating > 7

This query uses the optional keyword AS to introduce a range variable.

(Q6)

(Q7)

(Q8)

SELECT S.sname
FROM Sailors S, Reserves R1, Boats B1, Reserves R2, Boats B2
WHERE S.sid = R1.sid AND R1.bid = B1.bid
AND S.sid = R2.sid AND R2.bid = B2.bid
AND B1.color=`red' AND B2.color = `green'

Find all sids of sailors who have a rating of 10 or have reserved boat 104.
SELECT S.sid
FROM Sailors S
WHERE S.rating = 10
UNION
SELECT R.sid
FROM Reserves R
WHERE R.bid = 104
NESTED QUERIES:
A nested query is a query that has another query embedded within it; the embedded query is called a subquery.
A subquery typically appears within the WHERE clause of a query. Subqueries can sometimes appear in the FROM clause
or the HAVING clause.

1. Find the names of sailors who have reserved boat 103.


SELECT S.sname
FROM Sailors S
WHERE S.sid IN ( SELECT R.sid
FROM Reserves R
WHERE R.bid = 103 )

2. Find the names of sailors who have reserved a red boat.


SELECT S.sname
FROM Sailors S
WHERE S.sid IN ( SELECT R.sid
FROM Reserves R
WHERE R.bid IN ( SELECT B.bid
FROM Boats B
WHERE B.color = `red' )

AGGREGATE OPERATORS:
1. COUNT ([DISTINCT] A): The number of (unique) values in the A column.
2. SUM ([DISTINCT] A): The sum of all (unique) values in the A column.
3. AVG ([DISTINCT] A): The average of all (unique) values in the A column.
4. MAX (A): The maximum value in the A column.
5. MIN (A): The minimum value in the A column.

1. Find the average age of all sailors.


SELECT AVG (S.age)
FROM Sailors S

2. Find the average age of sailors with a rating of 10.


SELECT AVG (S.age)
FROM Sailors S
WHERE S.rating = 10

3. Find the name and age of the oldest sailor.


SELECT S.sname, MAX (S.age)
FROM Sailors S

(Or)
SELECT S.sname, S.age
FROM Sailors S
WHERE S.age = ( SELECT MAX (S2.age)
FROM Sailors S2 )

4. Count the number of sailors.


SELECT COUNT (*)
FROM Sailors S

5. Count the number of different sailor names.


SELECT COUNT ( DISTINCT S.sname )
FROM Sailors S

You might also like