relname | ||
σc R | selecting rows | WHERE |
πp R | projection | SELECT |
ρr R | renaming | AS |
γg R | grouping | GROUP BY, HAVING |
τa+ R | sorting | ORDER BY |
δ R | removing duplicates | DISTINCT |
… |
… | ||
R × R | cartesian product | FROM, CROSS JOIN |
R ∪ R | union | UNION |
R ∩ R | intersection | INSTERSECT |
R − R | difference | EXCEPT |
… |
… | ||
R ⨝ R | NATURAL JOIN | |
R ⨝a+ R | INNER JOIN | |
R ⨝c R | theta join | JOIN ON |
R ⨝oa+ R | FULL OUTER JOIN | |
R ⨝oLa+ R | LEFT OUTER JOIN | |
R ⨝oRa+ R | RIGHT OUTER JOIN |
SQL | Relational Algebra | |
---|---|---|
SELECT projections
| ⟹ | πprojections
σcondition (Table1 × … × Tablen) |
SQL | Relational Algebra | |
---|---|---|
SELECT * FROM Countries
| ⟹ | Countries |
SELECT * FROM Countries
| ⟹ | σname='UK' Countries |
SELECT *
disappears)
SQL | Relational Algebra | |
---|---|---|
SELECT capital,area/1000
| ⟹ | πcapital,area/1000
σname='UK' Countries |
SQL | Relational Algebra | |
---|---|---|
SELECT name AS country,
| ⟹ | πname→country, population/area→density
σcontinent='EU' Countries |
AS
keyword turns into an arrow (→)
SQL | Relational Algebra | |
---|---|---|
SELECT A.name, B.capital
| ⟹ | πA.name, B.capital
σA.name=B.capital (ρA Countries × ρB Countries) |
SQL | Relational Algebra | |
---|---|---|
SELECT name, capital
| ⟹ | πname, capital τname Countries |
⟹ | τname πname, capital Countries | |
SELECT name | ⟹ | πname τpopulation Countries |
SQL | Relational Algebra | |
---|---|---|
SELECT currency
| ⟹ | πcurrency Countries |
SELECT DISTINCT currency
| ⟹ | δ (πcurrency Countries) |
SQL | Relational Algebra | |
---|---|---|
SELECT currency, COUNT(name)
| ⟹ | γcurrency,COUNT(name) Countries |
SQL | Relational Algebra | |
---|---|---|
SELECT currency,SUM(population)
| ⟹ | πcurrency,SUM(population)
σCOUNT(name)>1 γcurrency,SUM(population),COUNT(name) Countries |
WHERE
cond
and HAVING
cond turn into σcond.
CREATE INDEX indexname ON tablename (attribute+)?
DROP INDEX indexname