Suchbedingung

In SQL werden Suchbedingungen in WHERE-Klauseln sowie HAVING-Klauseln formuliert, in Bedingungen von CHECK-Constraints und ASSERTIONS und WHEN-Klauseln von TRIGGERN verwendet. In PL/SQL werden sie in IF-Anweisungen und WHILE-Schleifen programmiert.

Syntax der Suchbedingung:

   <Suchbedingung (SQL, Oracle>    ::=
    { <Ausdruck> <Vergleichsoperator?> Ausdruck>
    | <Ausdruck> [NOT] BETWEEN <Ausdruck> AND <Ausdruck>
    | <alphanumerischer Ausdruck> [ NOT ] LIKE <Schablone>
    | <Ausdruck> IS [ NOT ] NULL }
    | <Ausdruck> [ NOT ] IN (Konstante[,Konstante]...)
    | <Ausdruck> <Vergleichsoperator?> { ANY | ALL } (< Unterabfrage? >)
    | <Ausdruck> [ NOT ] IN (<Unterabfrage?>)
    | EXISTS ( <Unterabfrage?> )
    | <Suchbedingung> AND <Suchbedingung>
    | <Suchbedingung> OR  <Suchbedingung>
    | NOT <Suchbedingung>
    | ( <Suchbedingung> ) }
  • Die Ausdrücke sind in SQL im einfachsten Fall Spaltennamen, in PL/SQL Variablennamen. Sie können aber auch komplexe Berechnungen darstellen.
  • Das Vorhandensein von leeren Spalten (NULL) erfordert den Einsatz einer dreiwertigen Logik mit TRUE, FALSE, UNKNOWN.

Beispiele für mögliche Prädikate

Vergleichsprädikata.LiefNr = I.LiefNr
Intervall-PrädikatGehalt BETWEEN 4000 AND 6000
ÄhnlichkeitsprädikatNachname LIKE 'M%'
Test auf NULLLief IS [NOT] NULL
IN-BedingungArtikel_Typ IN ('Rahmen','Hinterrad')

siehe auch: WHERE-Klausel, HAVING-Klausel, UPDATE, SELECT, INSERT, DELETE?

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: Oracle-PL-SQL, [SQL, S