Korrelierte-Unterabfrage

Versionen von Datenbanken.Korrelierte-Unterabfrage

Geringfügige Änderungen ausblenden - Änderungen im Layout

03.01.2013, um 15:43:03 von bbertelsmeier -
Zeile 5 bearbeitet:
Während die Korrelation bei binären Operatoren wie z.B. [[IN]] oder den [[Vergleichsoperator]]en syntaktisch erzwungen wird, neigen Entwickler beim unären [[EXISTS]] schon mal dazu sie zu vergessen.
geändert in:
Während die Korrelation bei binären Operatoren wie z.B. [[IN-Operator]] oder den [[Vergleichsoperator]]en syntaktisch erzwungen wird, neigen Entwickler beim unären [[EXISTS]] schon mal dazu sie zu vergessen.
03.01.2013, um 15:43:03 von bbertelsmeier -
Zeilen 5-7 hinzugefügt:
Während die Korrelation bei binären Operatoren wie z.B. [[IN]] oder den [[Vergleichsoperator]]en syntaktisch erzwungen wird, neigen Entwickler beim unären [[EXISTS]] schon mal dazu sie zu vergessen.

Zeilen 10-20 bearbeitet:
   SELECT
    a.Nachname, a.Gehalt
  FROM Angestellte a
  WHERE Gehalt > ANY
          (SELECT  b.Gehalt
            FROM    Abteilungen b
            WHERE  a.Abt_Nr = b.Abt_Nr ·
            AND    b.Leiter = 4); '

Diese SELECT-Anweisung selektiert Nachnamen und Gehalt aller Angestellten, die mehr als irgendein Angestellter derjenigen Abteilung, die vom Leiter 4 geführt wird, verdienen.

geändert in:
Diese SELECT-Anweisungen selektiert Nachnamen und Gehalt aller Angestellten, die mehr als irgendein Angestellter derjenigen Abteilung, die vom Leiter 4 geführt wird, verdienen.

  SELECT a.Nachname, a.Gehalt
    FROM Angestellte a
    WHERE a.Gehalt > ANY (SELECT b.Gehalt
                            FROM Abteilungen b
                          WHERE a.Abt_Nr = b.Abt_Nr ·
                            AND b.Leiter = 4); '


  SELECT a.Nachname, a.Gehalt
    FROM Angestellte a
    WHERE EXISTS (SELECT *
                    FROM Abteilungen b
                  WHERE a.Abt_Nr = b.Abt_Nr ·
                    AND b.Leiter = 4
                    AND a.Gehalt > b.Gehalt);



Quellen:
* Quellen/Standards in [[http://www.wiscorp.com/SQLStandards.html]] und [[http://www.jcc.com/sql.htm]]
* INCITS/ISO/IEC 9075-1-2008. Part 1 "SQL/Framework", ISO International Organization for Standardization / INCITS InterNational Committee for Information Technology Standards, 2008
* INCITS/ISO/IEC 9075-1-2008. Part 2 "SQL/Foundation", ISO International Organization for Standardization / INCITS InterNational Committee for Information Technology Standards, 2008
* Adams, Ralf: "SQL - Eine Einführung mit vertiefenden Exkursen", Hanser, München, 2012, ISBN 978-3-446-43200-0
* Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
* Faeskorn-Woyke, Heide/Bertelsmeier, Birgit/Riemer, Petra/Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
* Kemper, Alfons/Eickler, André: "Datenbanksysteme", Oldenbourg, München, 2009, 978-3-486-59018-0
* Melton, Jim/Simon, Alan R.: "SQL: 1999 - Understanding Relational Language Components", Morgan Kaufmann, San Francisco, 2001,  ISBN 1558604561
* Oracle® Database SQL Language Reference 11g Release 2 (11.2), E17118-03, August 2010, http://download.oracle.com/docs/cd/E11882_01/server.112/e17118.pdf
* Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2
* Sieben, Jürgen: "Oracle® SQL - Das umfassende Handbuch", Galileo Press, 2012, ISBN 978-3-8362-1875-7
* Vossen, Gottfried: "Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme", Oldenbourg, München, 2008, ISBN 978-3-486-27574-2

Zeile 46 bearbeitet:
(:keywords korreliert,Spalten,Spalten,inneren,WHERE-Bedingung,SELECT-Anweisung,Anweisung,Unterabfragen,WHERE-Klauseln,verwendet,Nachname,Angestellte,Abteilungen,SELECT-Anweisung,Nachnamen:)
geändert in:
(:keywords korreliert,Spalten,Spalten,inneren,WHERE-Bedingung,SELECT-Anweisung,Anweisung,Unterabfragen,WHERE-Klauseln,verwendet,Korrelation,Operatoren,syntaktisch,Entwickler,vergessen:)
03.01.2013, um 15:35:03 von bbertelsmeier -
02.09.2010, um 18:11:06 von heide-faeskorn-woyke -
Zeilen 3-4 bearbeitet:
Korrelierte Unterabfragen können in SELECT-Anweisungen, aber auch in [[UPDATE]]-Anweisungen oder [[DELETE]]-Anweisungen verwendet werden.
geändert in:
Korrelierte Unterabfragen können in WHERE-Klauseln von [[SELECT]]-Anweisungen, aber auch von [[UPDATE]]-Anweisungen oder [[DELETE]]-Anweisungen verwendet werden.
Zeile 20 bearbeitet:
(:keywords korreliert,Spalten,Spalten,inneren,WHERE-Bedingung,SELECT-Anweisung,Anweisung,Unterabfragen,SELECT-Anweisungen,verwendet,Nachname,Angestellte,Abteilungen,SELECT-Anweisung,Nachnamen:)
geändert in:
(:keywords korreliert,Spalten,Spalten,inneren,WHERE-Bedingung,SELECT-Anweisung,Anweisung,Unterabfragen,WHERE-Klauseln,verwendet,Nachname,Angestellte,Abteilungen,SELECT-Anweisung,Nachnamen:)
02.09.2010, um 17:25:05 von heide-faeskorn-woyke -
Zeilen 3-4 hinzugefügt:
Korrelierte Unterabfragen können in SELECT-Anweisungen, aber auch in [[UPDATE]]-Anweisungen oder [[DELETE]]-Anweisungen verwendet werden.
Zeilen 19-20 bearbeitet:
(:description Eine Unterabfrage heißt korreliert, wenn es Spalten der äußeren SELECT-Anweisung gibt, die mit den Spalten der inneren SELECT-Anweisung übereinstimmen und in einer WHERE-Bedingung miteinander verknüpft sind. Die innere SELECT-Anweisung kann ohne  die äußere Anweisung nicht ausgeführt werden.!!!Beisp ... :)
(:keywords korreliert,Spalten,Spalten,inneren,WHERE-Bedingung,SELECT-Anweisung,Anweisung,Nachname,Angestellte,Abteilungen,SELECT-Anweisung,Nachnamen,Angestellten,irgendein,derjenigen:)
geändert in:
(:description Eine Unterabfrage heißt korreliert, wenn es Spalten der äußeren SELECT-Anweisung gibt, die mit den Spalten der inneren SELECT-Anweisung übereinstimmen und in einer WHERE-Bedingung miteinander verknüpft sind. Die innere SELECT-Anweisung kann ohne  die äußere Anweisung nicht ausgeführt werden.Korrelie ... :)
(:keywords korreliert,Spalten,Spalten,inneren,WHERE-Bedingung,SELECT-Anweisung,Anweisung,Unterabfragen,SELECT-Anweisungen,verwendet,Nachname,Angestellte,Abteilungen,SELECT-Anweisung,Nachnamen:)
02.09.2010, um 17:10:05 von heide-faeskorn-woyke -
Zeilen 1-3 bearbeitet:
Eine [[Unterabfrage]] heißt '''korreliert''', wenn es Spalten der äußeren [[SELECT]]-Anweisung gibt, die mit den Spalten der inneren SELECT-Anweisung übereinstimmen und in einer WHERE-Bedingung miteinander verknüpft sind.

geändert in:
Eine [[Unterabfrage]] heißt '''korreliert''', wenn es Spalten der äußeren [[SELECT]]-Anweisung gibt, die mit den Spalten der inneren SELECT-Anweisung übereinstimmen und in einer WHERE-Bedingung miteinander verknüpft sind. Die innere SELECT-Anweisung kann ohne  die äußere Anweisung nicht ausgeführt werden.
Zeilen 17-18 bearbeitet:
(:description Eine Unterabfrage heißt korreliert, wenn es Spalten der äußeren SELECT-Anweisung gibt, die mit den Spalten der inneren SELECT-Anweisung übereinstimmen und in einer WHERE-Bedingung miteinander verknüpft sind.!!!Beispiel  SELECT     a.Nachname, a.Gehalt  FROM Angestellte a  WHERE Gehalt  ANY        ... :)
(:keywords korreliert
,Spalten,Spalten,inneren,WHERE-Bedingung,Nachname,Angestellte,Abteilungen,SELECT-Anweisung,Nachnamen,Angestellten,irgendein,derjenigen,verdienen:)
geändert in:
(:description Eine Unterabfrage heißt korreliert, wenn es Spalten der äußeren SELECT-Anweisung gibt, die mit den Spalten der inneren SELECT-Anweisung übereinstimmen und in einer WHERE-Bedingung miteinander verknüpft sind. Die innere SELECT-Anweisung kann ohne  die äußere Anweisung nicht ausgeführt werden.!!!Beisp ... :)
(:keywords korreliert,Spalten,Spalten,inneren,
WHERE-Bedingung,SELECT-Anweisung,Anweisung,Nachname,Angestellte,Abteilungen,SELECT-Anweisung,Nachnamen,Angestellten,irgendein,derjenigen:)