SELECT-Klausel

Die SELECT-Klausel ist eine der beiden obligatorischen Klauseln der SELECT-Anweisung der Data Query Language des SQL-Standards. Mittels ihr wird spezifiziert, welche Spalten die Ergebnismenge dieser Anfrage aufweist und wie diese Spalten heißen. Dies enspricht der Projektion in der relationalen Algebra bzw. der Umbenennung, wenn mittels der AS-Option für einen Spaltenausdruck ein neuer Name vergeben wird.

 <SELECT-Klausel>    ::=
     SELECT [ ALL | DISTINCT ]  <Spaltenausdruck> [, <Spaltenausdruck>]...
  • DISTINCT unterdrückt doppelte Zeilen im Ergebnis. ALL gibt auch Zeilen gleichen Inhalts mehrfach aus. Das Schlüsselwort DISTINCT kann nur einmal in der SELECT-Klausel vorkommen und zwar vor dem ersten Spaltenausdruck.
  • Der Spaltenausdruck ist in der einfachsten Form ein Liste von Spaltennamen. Einzelheiten finden Sie unter Spaltenausdruck.

Beispiele

Für welche Artikel liegt mindestens ein Auftrag vor?

    -- Hier ist kein DISTINCT notwendig, da die TNr Primärschlüssel der Artikel-Tabelle ist. 
    SELECT a.TNr, a.Bezeichnung
      FROM Artikel a
     WHERE EXISTS (SELECT * FROM Auftragspositionen b 
                        WHERE a.TNr = b.TNr);

Alternativ:

    -- Aufgrund des Joins zwischen den Tabellen Artikel und Autragspositionen 
    -- treten nun die TNr mehrfach auf, jenachdem, wie oft sie verkauft wurden.  
    SELECT DISTINCT a.TNr, a.Bezeichnung
      FROM Artikel a, Auftragspositionen b 
     WHERE a.TNr = b.TNr;

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

Kategorie: SQL, S