AWP
06 - Infoblatt DQL

06 - Infoblatt DQL

Infoblatt

Funktionen in SELECT-Abfragen

Im SQL-Standard werden einige wenige Funktionen festgelegt, die in jedem SQL-Dialekt vorkommen. In aller Regel ergänzt jedes DBMS diese Funktionen durch weitere eigene. Eine ganze Reihe davon kann als Standard angesehen werden, weil sie immer (oder fast immer) vorhanden sind. An vielen Stellen ist aber auf Unterschiede im Namen oder in der Art des Aufrufs hinzuweisen.

Aggregatfunktionen

Aggregatfunktionen (Gruppenfunktionen) werten eine oder mehrere Spalten einer Tabelle nach bestimmten Kriterien aus. Das Ergebnis wird in einem Feld ausgegeben:

Funktion Ergebnis
MIN(Spaltenname) Minimalwert der Feldinhalte einer Spalte
MAX(Spaltenname) Maximalwert
COUNT(Spaltenname) Anzahl der vorhandenen Einträge in einer Spalte
COUNT(*) Anzahl aller Datensätze
SUM(Spaltenname) Summe der Feldinhalte einer Spalte
AVG(Spaltenname) Arithmetischer Mittelwert der Feldinhalte

Bsp.: SELECT AVG(Beitrag) AS Durchschnittsbeitrag FROM sportarten;

Mathematische Funktionen

Mit den Werten aus numerischen Spalten können Rechenoperationen durchgeführt werden. Neben den üblichen Operatoren für Grundrechenarten (+, -, *, /) sowie den üblichen mathematischen Regeln (Punkt vor Strich) existieren zusätzlich mathematische Funktionen:

Funktion Ergebnis
ABS(zahl) Absoluter Wert (ohne negatives Vorzeichen)
SQRT(zahl) Wurzel einer Zahl
RAND() Zufallszahl zwischen 0 und 1
ISNULL(Ausdruck) Wert = 1 wenn Feldinhalt leer, sonst 0
EXP(Wert) Ergibt e^Wert mit der Eulerschen Zahl e = 2,718…
LOG(Wert) Der natürliche Logarithmus
SIGN(Wert) Liefert -1 für negative Werte und 1 für positive Werte
MOD(Wert, Divisor) Restwert der ganzzahligen Division von Wert/Divisor
POWER(X, Y) X hoch Y → xʸ
ROUND(zahl, Genauigkeit) Rundet mathematisch auf angegebene Anzahl an Nachkommastellen (z. B.: SELECT ROUND(12.248, 2);)

Zeichenkettenfunktionen

Um mit Zeichenketten zu arbeiten stehen folgende Funktionen zur Verfügung:

Funktion Ergebnis
ASCII(’n') Liefert die ASCII-Codenummer von n
UPPER(‘string’) Wandelt in Großbuchstaben um
LOWER(‘string’) …in Kleinbuchstaben (z. B.: SELECT LOWER('MÜLLER');)
CHAR_LENGTH(‘string’) Gibt die Zeichenanzahl aus
CONCAT(‘string’, ‘string’, …) Gibt verknüpfte übergebene Zeichenketten aus

Datumsfunktionen

Für die Datentypen Datum und Zeit gibt es spezielle Funktionen, für die wie immer gilt: Jeder SQL-Dialekt hat sich seinen eigenen „Standard“ ausgedacht. So oder so ähnlich gibt es folgende Funktionen in allen Dialekten (genaueres in den DBMS-Dokumentationen):

Funktion Ergebnis
CURRENT_DATE() Aktuelles Datum
CURRENT_TIME() Aktuelle Uhrzeit
CURRENT_TIMESTAMP() Aktuelles Datum und Aktuelle Uhrzeit
DAYOFWEEK(value) Gibt den Wochentag an (als Zahl, 1 für Sonntag usw.)

EXTRACT(<part> FROM <value>)

<part> ist der Teil des betreffenden Datum/Uhrzeit/Timestamp: YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | MILLISECONDS

Oder alternativ: YEAR(<value>) | MONTH(<value>) | DAY(<value>) | …

Beispiele: SELECT EXTRACT(DAY FROM CURRENT_TIMESTAMP()); oder SELECT YEAR(CURRENT_TIMESTAMP());