|
2. Einfache
Subquery - Regeln
|
|
|
| |
| Kurzgefasst: |
- Einbindung einer SELECT -Anweisung in die WHERE- Klausel,
HAVING- Klausel oder START WITH- Klausel.
- Die untergeordnete Subquery wird zuerst ausgeführt
und das Ergebnis in das übergeordnete SELECT eingesetzt.
- Einzelner Wert möglich.
- Wertemenge möglich.
- Verschachtelungstiefe: 255
- Kein ORDERBY in Subquery
|
| Die untergeordnete Abfrage, d.h.
die in Klammern gesetzte SELECT -Anweisung, wird zuerst ausgeführt.
Daraufhin wird der Ausgabewert (bzw. die Ausgabewertemenge) in die
übergeordnete Abfrage "eingebaut". |
| Als Vergleichswert kann ein einzelner
Wert oder eine Menge von Werten eingesetzt werden, der bzw. die
von einer SELECT-Anweisung abgefragt wird bzw. werden. |
| Eine Unterabfrage kann so strukturiert
werden, daß sie bei einmaligem Einsatz in der Abfrageoperation
einen Wert oder eine Menge von Werten erzeugt, die als Vergleichswert
in einer WHERE- Klausel verwendet wird bzw .werden. |
| Eine verschachtelte SELECT -Anweisung
kann eine andere verschachtelte SELECT -Anweisung enthalten. Bis
zu 255 untergeordnete Abfragen können ineinander verschachtelt
werden. |
| Die innere Abfrage darf keine ORDERBY
-Klausel enthalten. |
| Die innere Abfrage kann Werte aus
einer anderen Tabelle abfragen. |
Eine verschachtelte SELECT -Anweisung
macht es in vielen Fällen möglich, daß eine
Abfrage die Ergebnisse verschiedener Verknüpfungsebenen verwendet. |
| Die von einer inneren Abfrage ausgegebenen
Spalten sollten mit den Spalten Übereinstimmen, die in der
WHERE- Klausel der nächsten äußeren Abfrage verwendet
werden. Anzahl und Datentyp der Spalten müssen übereinstimmen.
|
| Verschachtelte SELECT -Anweisungen
können auch in Zusammenhang mit Boole'schen Vergleichsoperatoren
auftreten. |
| Das Schlüsselwort IN muß
anstelle von "=" verwendet werden, sobald mehr als eine
Zeile von der inneren Abfrage ausgegeben wird. |
| Die Reihenfolge der Zeilenausgabe
bei einer untergeordnete Abfrage ist nicht wichtig und kann auch
nicht angegeben werden. |
| Verschachtelte SELECT-Anweisungen
können zum Abrufvon Zeilen verwendet werden, die den Spezifikationen
mehrerer Spalten entsprechen. |
| Je mehr Spalten in einer WHERE-Klausel
spezifiziert werden, desto restriktiver wird die Klausel. |
| Wenn mehrere Spalten auf der linken
Seite der WHERE-Klausel stehen, müssen diese in Klammern gesetzt
werden. |
| Die in Klammem gesetzten Spaltennamen
oder Ausdrücke müssen in Anzahl und Datentyp mit den Angaben
in der SELECT- Liste der inneren Abfrage übereinstimmen. |
| Jede Spalte auf der linken Seite
der WHERE-Klausel muß mit der entsprechenden Spalte auf der
rechten Seite korrespondieren. |