SQL-Befehle ← Informatik-Buch, Datenbank → WWW
Werden Abfragen an eine Datenbanksoftware gestellt, entstehen die Ergebnisse nicht durch schlichtes Filtern von Daten. Es können neue Relationen entstehen.
Grundsätzliche Syntax einer Abfrage:
SELECT [ALL|DISTINCT] <Attributliste> FROM <Referenztabelle> [WHERE <Bedingung>] [GROUP BY <Attributliste>] [HAVING <Bedingung>]
πAutor, Titel(Buch) wird realisiert durch:
SELECT Autor, Titel FROM Buch;
Bestimmte Attribute (hier: Autor und Titel) einer Relation werden ausgewählt und als neue Relation verwendet.
σAutor=„Helmut Kopka“(Buch) wird realisiert durch:
SELECT * FROM Buch WHERE (Autor="Helmut Kopka");
Bestimmte Tupel (hier: Alle Bücher von Helmut Kopka) einer Relation werden herausgefiltert.
Buch✘Leser wird realisiert durch:
SELECT * FROM Buch, Leser;
Das Ergebnis ist ohne zusätzliche Filterung nicht wirklich sinnvoll, da jedes Buch zusammen mit jedem Leser genau einmal auftaucht. D.h., es gibt Anzahl(Buch) * Anzahl(Leser) Tupel!
Relationen mit einem gemeinsamen Attribut lassen sich vereinigen.
Buch ⊗ Ausleihe wird realisiert durch:
SELECT * FROM Buch INNER JOIN Ausleihe ON Buch.ID = Ausleihe.BuchID;
Die Attribute der Relationen Buch und Ausleihe werden kombiniert, sodass eine neue Relation entsteht. Diese neue Relation hat sämtliche Attribute von Buch und von Ausleihe, wobei das Attribut ID nur einmal eingefügt wird, da beide IDs gleich sein müssen. In der neuen Relation sind also nur Bücher, die auch ausgeliehen sind.