Die Voraussetzungen – ein paar Grundlagen zur SELECT Anweisung

Vimeo

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von Vimeo.
Mehr erfahren

Video laden

Wir verwenden in vielen kleine Beispielen eine SELECT-Abfrage, noch bevor diese in diesem Kurs ausführlich behandelt wird. Das ist für die meisten Teilnehmer überhaupt kein Problem, weil wir uns hierbei auf die grundlegendsten Dinge beschränken, die Sie vielleicht auch vom OpenSQL in ABAP schon kennen. Für alle anderen möchte ich hier zu Beginn die SELECT Abfrage kurz erläutern. Wenn Sie die Beispiele in die SQL-Konsole eingeben, empfehle ich Ihnen auch mal eine andere Tabelle aus dem Demo Datenmodell zu verwenden um sich mit den Strukturen und Inhalten vertraut zu machen.

Eine SELECT-Abfrage liefert eine Tabelle als Ergebnis. Die Spalten definieren wir in der Feldliste der sogenannten SELECT Klausel. Dabei beziehen wir uns meistens auf die Spaltennamen der Quelltabelle oder wir nehmen mit Stern (*) alle Spalten:

-- Syntax: 
SELECT <Spalten> FROM <Quelltabelle>;

-- Beispiel mit *:
SELECT * 
  FROM tasks;

-- Beispiel mit einzelnen Spaltennamen. Diese werden mit Komma getrennt
SELECT id, 
       title,
       due_date
  FROM tasks;

Wenn die Zeilen gezählt werden sollen, dann können wir das mit dem Aggregatausdruck COUNT(*) machen. Wenn es weitere Spalten in der Abfrage gibt, die nicht aggregiert werden, so müssen wir diese in der GROUP BY Klausel wiederholen.

-- Anzahl der Zeilen in der Tabelle TASKS
SELECT  COUNT(*) 
  FROM tasks;

-- Anzahl der Zeilen in der Tabelle TASKS pro Bearbeiter
SELECT assignee,
       COUNT(*)
  FROM tasks
 GROUP BY assignee;

Um die Menge der Zeilen aus der Quelltabelle einzuschränken, gibt es die WHERE Klausel. Dort können logische Bedingungen angegeben werden, die für alle Datensätze erfüllt sein müssen, die beim Berechnen des Abfrageergebnis berücksichtigt werden sollen.

-- Nur Aufgaben von Bearbeiter 1
SELECT * 
  FROM tasks
 WHERE assignee = 1;

-- Vergleich mit einer Menge - Aufgaben im Status 1, 2 oder 3
SELECT * 
  FROM tasks
 WHERE status IN (1, 2, 3);

Wir werden später auf die unterschiedlichen Klauseln noch viel mehr im Detail eingehen.