Databases Reference
In-Depth Information
In den Beispieldaten gibt es zwei Asterixalben, die 1968 erschienen sind. Die Pro-
jektion aus Listing 10.8 berücksichtigt nur einen Vertreter.
Tabelle 10.6:
Ergebnis der Abfrage aus Listing 10.8
reihe
jahr
Asterix
1974
Asterix
1968
Asterix
null
Asterix
1980
10.2
Datensätze mit
where
auswählen
In den meisten Fällen brauchen wir gar nicht alle Datensätze einer Tabelle, son-
dern nur einen Teil. Wir können hier - wie bei der Relationenalgebra - mit Selek-
tionen (siehe etwa Abschnitt 4.5) arbeiten, für die es in der
select
-Anweisung
die
where
-Komponente gibt:
Listing 10.9:
Alle Alben, die 1968 erschienen sind
select
*
from alben
where jahr=1968
In Tabelle 10.7 sehen wir, dass das Ergebnis aus allen Datensätzen besteht, die
dem Prädikat
jahr=1968
genügen.
Tabelle 10.7:
Ergebnis der Abfrage aus Listing 10.9
reihe
titel
band
preis
jahr
Asterix
Asterix der Gallier
1
2.80
1968
Asterix
Asterix und Kleopatra
2
2.80
1968
Anders als bei der Relationenalgebra müssen wir beim praktisch orientierten SQL
berücksichtigen, dass das Prädikat auch den Wert
null
annehmen kann. Ein Da-
tensatz gehört genau dann zum Ergebnis einer
select
-Anweisung, wenn das
Prädikat den Wert
true
hat. Es folgt auch, dass wir nicht alle Datensätze erhalten,
wenn wir die
where
-Komponente in Listing 10.9 durch
where jahr != 1968
ersetzen. Hier werden nur die Datensätze gefunden, für die
jahr = 1968
den
Wert
false
hat. Die Datensätze, für die das Erscheinungsjahr unbekannt, also
null
ist, gehören nicht dazu. Alle Datensätze erhalten wir mit der folgenden An-
weisung: