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.