Spaltenausdruck

Ein Spaltenausdruck wird in der SELECT-Klausel nach dem Schlüsselwort SELECT verwendet und spezifiziert daher die Spaltenstruktur der Ergebnismenge der SELECT-Anweisung, damit entsricht dies der Projektion in der relationalen Algebra. In der einfachsten Form besteht der Spaltenausdruck aus einer Spaltenliste. Es können aber auch komplexere Berechnungen durchgeführt werden.

Syntax des Spaltenausdrucks:

  <Spaltenausdruck> ::= { [Tabellenname.]*
                              | [Tabellenname.]Spaltenname [ AS Neuer_Spaltenname ]
                              | <Ausdruck> [ AS Neuer_Spaltenname ] }
  • Der Stern * ist eine Kurzschreibweise dafür, dass in der Ergebnismenge alle Spalten aller Tabellen der FROM-Klausel vorhanden sein sollen. Er stellt also im Grunde den Verzicht auf eine Projektion dar. Die Spezifikation Tabellenname.* grenzt die Ergebnismenge auf alle Spalten der angegebenen Tabelle ein.
  • AS benennt eine Spaltenausgabe in Neuer_Spaltenname um. Dies entsricht der Umbenennung der relationalen Algebra.
  • In einem Spaltenausdruck können keine Gruppenfunktionen mit Single-Row-Funktionen gemischt werden, da sich Gruppenfunktionen auf mehrere Tupel beziehen.

Beispiele:

 -- Alle Spalten der Kunden-Tabelle. Und da die WHERE-Klausel fehlt, auch alle Datensätze der Tabelle. 
 SELECT * FROM Kunden; 

 -- Anzeige der Spalten Name, Vorname, Gehalt sowie des aktuellen Gehalts plus einer Gehaltserhöhung um 4%. 
 SELECT Name, Vorname, Gehalt AS aktuelles_Gehalt, Gehalt*1,04 AS neues_Gehalt FROM Angestellte;  

 -- || ist die Kurzschreibweise für die Konkatenation von Zeichenketten
 -- Anzeige der Spalte Name, die Nachname und Vorname komma- und leerzeichengetrennt auflistet
 -- sowie des Wohnortes wobei PLZ und Ort leerzeichengetrennt sind
 SELECT Nachname ||', '||Vorname AS Name, 
        PLZ||Ort AS Wohnort 
   FROM Angestellte; 

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