Anfang des InhaltsbereichsDaten lesen Dokument im Navigationsbaum lokalisieren

Die Open SQL-Anweisung zum Lesen von Daten aus Datenbanktabellen ist:

SELECT      <result>
  INTO      <target>
  FROM      <source>
  [WHERE    <condition>]
  [GROUP BY <fields>]
  [HAVING   <cond>]
  [ORDER BY <fields>].

Die SELECT-Anweisung ist in mehrere elementare Klauseln aufgeteilt, die beim Datenbankzugriff jeweils unterschiedliche Aufgaben erfüllen.

Diese Grafik wird im zugehörigen Text erklärt

Klausel

Beschreibung

SELECT <result>

Die SELECT-Klausel <result> definiert die Struktur der zu lesenden Daten, also ob eine einzelne Zeile oder mehrere Zeilen gelesen werden, welche Spalten gelesen werden und ob identische Zeilen ausgeschlossen werden sollen.

INTO <target>

Die INTO-Klausel <target>bestimmt den Arbeitsbereich, in den die gelesenen Daten gestellt werden sollen.

FROM <source>

Die FROM-Klausel <source> gibt an, von welchen Datenbanktabellen oder Views die Daten gelesen werden sollen. Sie kann auch vor die INTO-Klausel geschrieben werden.

WHERE <cond>

Die WHERE-Klausel bestimmt durch Bedingungen, welche Zeilen gelesen werden sollen.

GROUP BY <fields>

Die GROUP-BY-Klausel faßt Gruppen mehrerer Zeilen zu einzelnen Zeilen zusammen. Eine Gruppe ist ein Satz von Zeilen, die in jeder Spalte aus der Liste <fields> die gleichen Werte enthalten.

HAVING <cond>

Die HAVING-Klausel setzt logische Bedingungen auf die durch GROUP BY kombinierten Zeilen.

ORDER BY <fields>

Die ORDER-BY-Klausel gibt eine Sortierreihenfolge <fields> für die zu lesenden Zeilen vor.

Die Angaben in den einzelnen Klauseln und das Zusammenspiel der einzelnen Klauseln untereinander sind sehr wichtig für die Funktionalität der SELECT-Anweisung. Die SELECT-Anweisung ist innerhalb von ABAP zwar eine einzige Anweisung, die mit dem Schlüsselwort SELECT beginnt und einem Punkt endet. Die Aufteilung in die einzelnen Klauseln und deren gegenseitige Abhängigkeiten gehen jedoch weit über die normale Funktionalität einer ABAP-Anweisung hinaus. Eine einzige SELECT-Anweisung kann Funktionalitäten enthalten, die vom einfachen Lesen einzelner Zeilen bis zur Programmierung sehr komplexer Datenbankabfragen reichen.

Subqueries erlauben die Programmierung von SELECT-Anweisungen in Bedingungen von WHERE- und HAVING-Klauseln.

Durch das Lesen von Daten über einen Cursor, kann die INTO-Klausel von der SELECT-Anweisung entkoppelt werden.

Auf bestimmten Datenbanksystemen kann es auch beim rein lesenden Zugriff zu Sperrkonflikten kommen, die durch Datenbank-Commits verhindert werden können.

Ende des Inhaltsbereichs