AWP
03 - Infoblatt DQL

03 - Infoblatt DQL

Infoblatt

Data Query Language

Eine Datenbank enthält eine Vielzahl verschiedener Daten. Abfragen dienen dazu, bestimmte Daten aus der Datenbank auszugeben. Dabei kann die Ergebnismenge gemäß den Anforderungen eingegrenzt und genauer gesteuert werden.

Die SQL-Abfrage kann grundlegend in die folgendenen sechs Komponenten unterteilt werden

SQL-Syntax Bedeutung
SELECT [* | DISTINCT] Spaltenbezeichner [, …] Zeige die Werte aus folgenden Spalten …
FROM Tabellenbezeichner [, …] … aus folgenden Tabellen
[ WHERE Bedingung ] … schränke die Auswahl wie folgt ein …
[ GROUP BY Spalte [, …] ] Gruppenbildung: Verdichte die Ausgabe von allen Zeilen mit gleichem Attributwert
[ HAVING Bedingung ] Zusätzliche Auswahlbedingung auf Gruppenebene
[ ORDER BY Spalte [, …] [ASC | DESC] … ] Sortiere Ausgabe anhand folgender Spalten
[ LIMIT [start,] anzahl ] Gibt nur die ersten DS oder von x bis y aus

Bei der Selektion mit WHERE wird als Bedingung ein logischer Vergleich erwartet, der mit „true“ oder „false“ beantwortet werden kann:

Operator Beispiel Bedeutung, Wirkung
= knr = 24 gleich
< preisgruppe < 5 kleiner als
> - größer als
<> - ungleich
<= - kleiner gleich
>= - größer gleich
LIKE ort LIKE ‘B%’ Vergleicht das Feld Ort mit dem Textmuster
AND plz = 96047 AND nr < 100 Datensatz wird nur berücksichtigt, wenn Bedingung 1 UND Bedingung 2 erfüllt sind
OR nr > 200 OR nr < 100 Datensatz wird berücksichtigt, wenn Bedingung 1 ODER Bedingung 2 erfüllt ist
NOT NOT (plz = 96047) Datensatz wird berücksichtigt wenn die Bedingung NICHT erfüllt ist
BETWEEN gebdat BETWEEN ‘1980/12/31’ AND ‘1979/01/01’ Bereichsabfragen bei numerischen -, Datums- und Textfeldern
IN wohnort IN (‘ULM’, ‘MUC’, ‘BER’) Datensatz wird berücksichtigt wenn Wohnort entweder „ULM“ oder „MUC“ oder „BER“ ist

Pattern Matching

(Wildcards) – Bedeutung siehe Internet:

  • %
  • _
  • [B-F]
  • [^B-F]

NULL-Werte

Spalten in denen keine Werte eingegeben werden, haben den Wert NULL. Rechenoperationen mit einem Feld, das den Wert NULL enthält, erhalten als Ergebnis den WERT NULL. Mit der Eigenschaft NOT NULL können alle Felder gesucht werden die einen Eintrag enthalten.

Daten sortieren

Mit der Anweisung ORDER BY können Ausgaben nach Feldinhalten sortiert werden. Dabei wird die Sortierreihenfolge mit dem Zusatz ASC (ascending = aufsteigend) oder DESC (descending = absteigend) festgelegt.

Werden zwei Feldinhalte als Sortierkriterien angegeben, dann wird nach dem ersten sortiert und bei gleichen Feldinhalten zusätzlich nach dem zweiten.

Alias in Abfrage

Mit dem Schlüsselwort AS können Spaltennamen in der Abfrage ersetzt werden

Beispiele

SELECT * FROM Mitarbeiter;

SELECT name AS Nachname, gebdat FROM Mitarbeiter WHERE gebdat BETWEEN ‘1978/01/01’ AND ‘1979/12/31’ ORDER BY gebdat LIMIT 1;

SELECT DISTINCT name FROM Mitarbeiter;

SELECT name, vorname, telefon, email FROM Mitarbeiter WHERE email IS NOT NULL;