Professional Documents
Culture Documents
Queries
Relational queries
Theoretical instruments:
Relational algebra
Relational calculus
Relational algebra
Solve the following queries:
color=green(S
|><|R |><|B))
color=green(S
|><|R |><|B))
The examples
SQL
SELECT
from-list
select-list
SELECT
qualification
SELECT
DISTINCT keyword
is optional
indicates that table computed as answer to
this query should not contain duplicates,
that is, two copies of the same row
default is that duplicates are not eliminated
String comparisons
Collation
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'
UNION
SELECT S2.sname
FROM Sailors S2, Boats B2, Reserves R2
WHERE S2.sid = R2.sid AND
R2.bid = B2.bid AND B2.color = `green'
DataBases part 07 - Structured
Query Language SQL
SELECT S.sname
FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND
R.bid = B.bid AND B.color = `red'
INTERSECT
SELECT S2.sname
FROM Sailors S2, Boats B2, Reserves R2
WHERE S2.sid = R2.sid AND
R2.bid = B2.bid AND B2.color = `green'
DataBases part 07 - Structured
Query Language SQL
EXCEPT
SELECT S2.sname
FROM Sailors S2, Boats B2, Reserves R2
WHERE S2.sid = R2.sid AND
R2.bid = B2.bid AND B2.color = `green'
DataBases part 07 - Structured
Query Language SQL
Nested Queries
The query:
Find the names of all sailors who have
reserved red boats but not green boats.
has another query embedded within it
embedded query is called a subquery
( SELECT R.sid
FROM Reserves R
WHERE R.bid = 103 )
DataBases part 07 - Structured
Query Language SQL
Nested Queries
IN/ NOT IN Operator
FROM Reserves R
WHERE R.bid = 103
AND R.sid = S.sid )
DataBases part 07 - Structured
Query Language SQL
Set-Comparison Operators
ANY, ALL, SOME
SELECT S2.rating
FROM Sailors S2
WHERE S2.sname = `Horatio' )
DataBases part 07 - Structured
Query Language SQL
( SELECT S2.rating
FROM Sailors S2 )
SELECT S.sname
FROM Sailors S
WHERE S.rating > ALL (
SELECT S2.rating
FROM Sailors S2
WHERE S2.sname = `Horatio' )
SELECT S.sname
FROM Sailors S
WHERE NOT EXISTS
(( SELECT B.bid
FROM Boats B )
Those boats which were not
EXCEPT
reserved by the sailor S
(SELECT R.bid
FROM Reserves R
WHERE R.sid = S.sid ))
DataBases part 07 - Structured
Query Language SQL
SELECT S.sname
FROM Sailors S
WHERE NOT EXISTS
( SELECT B.bid
FROM Boats B
WHERE NOT EXISTS
Aggregate Operators
Aggregate Operators
1.
COUNT ([DISTINCT] A)
2.
SUM ([DISTINCT] A)
3.
MAX (A)
5.
AVG ([DISTINCT] A)
4.
MIN (A)
SELECT S.sname
FROM Sailors S
WHERE S.age > ALL
( SELECT S2.age
FROM Sailors S2
WHERE S2.rating = 10 )
SELECT S.sname
FROM Sailors S
WHERE S.age >
SQL
select-list
group-qualification
list
Null Values
inapplicable
IS NULL
Logical Connectives
AND
OR
NOT
ON S.sid = R.sid
JOIN Boats B
ON R.bid = B.bid
Outer JOIN
Outer JOIN