Geschachtelte SQL- Anfragen mit speziellen Operatoren |
Teilanfragen mit mehr als einem Ergebnis | Eine einfache Möglichkeit mit dem IN - Operator | Erweiterte Möglichkeiten | Übungen |
In vielen Fällen kann man nicht garantieren, dass in der Unteranfrage nur ein Ergebnis zurückgeliefert wird.
Bemerkung |
Im Zweifelsfall sollte man auf geschachtelte Anfragen mit
,
,
,
und = verzichten! |
Für untergeordnete Anfragen, die mehrere Ergebnisse, also eine Ergebnismenge, zurückliefern, stellt SQL spezielle Operatoren zur Verfügung.
Der IN - Operator eignet sich auch zur Auswahl von Datensätzen, wenn das zu vergleichende Attribut aus einer kleinen, diskreten Menge stammt. Die Auswahlmenge wird in Form ihrer Elemente hinter dem IN - Operator angegeben.
Welche Schülerinnen und Schüler - unter Angabe von Name und Klasse - sind katholisch oder evangelisch?
|
Diese Verwendung ersetzt eine (in der Regel längere) Formulierung mit OR- Operatoren.
Die Auswahlmenge kann auch auf Grund einer untergeordneten Query erzeugt werden. Dazu stehen folgende Operatoren zur Verfügung:
Name des Operators |
Bedeutung |
---|---|
IN
|
Test auf Mengenmitgliedschaft |
NOT IN
|
Test, ob ein Element nicht in einer Menge ist. |
( =
,
, ...) ANY
|
Test, ob es mindestens ein Element in der Unteranfrage gibt, das den Vergleich mit dem Vergleichswert erfüllt. |
(
=,
, ...) ALL
|
Test, ob alle Elemente in der Unteranfrage den Vergleich mit dem Vergleichswert erfüllen. |
EXISTS
|
Test, ob die von der Unteranfrage bestimmte Menge nicht leer ist. |
NOT EXISTS
|
Test, ob die von der Unteranfrage bestimmte Menge leer ist. |
UNIQUE
|
Test, ob das Ergebnis duplikatfrei ist. |
Welche Lehrkräfte haben eine Fachbetreuung?
|
Welche Lehrkraft ist am jüngsten?
|
Welche Lehrerinnen sind 1950, 1952, 1956 oder 1957 geboren?
|
Welche Lehrkräfte haben die Fachbetreuung in Mathematik?
|
Welchen Lehrkräften, alphabetisch absteigend sortiert, wurden bereits Klassen zugeteilt?
|