Abfrageblöcke

Eine SQL-Anweisung kann aus mehreren Unterabfragen bestehen, die im Zugriffsplandiagramm durch Abfrageblöcke dargestellt werden.

Die Unterabfrage kann eine Abfrage SELECT, INSERT, UPDATE oder DELETE sein. Eine Unterabfrage kann weitere Unterabfragen in der Klausel FROM, der Klausel WHERE oder einem Subselect von UNION oder UNION ALL enthalten. Eine Unterabfrage, die sich in einer anderen Unterabfrage befindet, wird als untergeordnete Unterabfrage bezeichnet. Eine Unterabfrage, die andere Unterabfragen enthält, wird als übergeordnete Unterabfrage bezeichnet. Diese Beziehungen zwischen übergeordneten und untergeordneten Elementen kann als Baumstruktur dargestellt werden.

Wenn eine Unterabfrage auf mindestens eine Spalte der eigenen übergeordneten Unterabfrage oder einer beliebigen anderen, in der Baumstruktur höher angesiedelten übergeordneten Unterabfrage verweist, ist die Unterabfrage eine Unterabfrage mit Korrelationsbezug. Andernfalls handelt es sich um eine Unterabfrage ohne Korrelationsbezug. Eine Unterabfrage ohne Korrelationsbezug kann zur gleichen Zeit aktiv sein wie die höchste übergeordnete Unterabfrage, die ebenfalls keinen Korrelationsbezug hat. In Bezug auf ihre Beziehung zur Unterabfrage ohne Korrelationsbezug wird die höchste übergeordnete Unterabfrage als "übergeordnete Unterabfrage zur Ausführung beim Öffnen" bezeichnet. Die Ausführung einer Unterabfrage mit Korrelationsbezug ist an die Ausführung der zugehörigen übergeordneten Unterabfrage gebunden. Derartige Beziehungen zwischen der relativen Ausführung von über- und untergeordneten Elementen können durch separate Baumstrukturen im Zugriffsplandiagramm dargestellt werden.

Unterabfrage ohne Korrelationsbezug
Für eine Unterabfrage ohne Korrelationsbezug ist der Abfrageblockknoten mit der rechten Seite des Abfrageblockknotens der höchsten übergeordneten Unterabfrage verbunden, die ebenfalls keinen Korrelationsbezug hat.
Unterabfrage mit Korrelationsbezug
Für eine Unterabfrage mit Korrelationsbezug ist der Abfrageblockknoten mit der Komponente in der eigenen übergeordneten Unterabfrage verbunden, in der die Unterabfrage mit Korrelationsbezug ausgeführt wird.

Feedback