Logischer-Operator

In WHERE-Klauseln können mehrere Bedingungen durch die logischen Operatoren AND, OR, und NOT verknüpft werden. In der relationalen Algebra, SQL und bei Oracle wird eine dreiwertige Logik verwendet.

Diese Operatoren haben die folgende Prioritätsreihenfolge:

Priorität 1:NOT
Priorität 2:AND
Priorität 3:OR

Beispiele

  -- Welche Kunden wohnen in Gummersbach oder Köln?
  SELECT Nachname FROM Kunden
  WHERE Ort='Köln'
  OR    Ort='Gummersbach';

  -- Welche Angestellte gehören der Abteilung 1 an bzw. verdienen weniger als 5000€ und gehören keiner Abteilung an.
  -- Grund: AND hat eine höhere Priorität als OR. 
  SELECT * 
    FROM Angestellte
   WHERE Abt_Nr=1 OR Abt_Nr IS NULL AND Gehalt < 5000;

  -- Welche Angestellte verdienen weniger als 5000€ und gehören der Abteilung 1 an bzw. verdienen weniger als 5000€ und gehören keiner Abteilung an.
  -- Grund: gesetzte Klammern und somit bezieht sich das AND auf beide OR-Bedingungen. 
  SELECT * 
    FROM Angestellte
   WHERE (Abt_Nr=1 OR Abt_Nr IS NULL) AND Gehalt < 5000;

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, L