Wie die meisten Programmiersprachen verfügt SQL über Funktionen zur Datenverarbeitung. Es ist zu beachten, dass Funktionen im Gegensatz zu SQL-Anweisungen nicht für alle DBMS-Typen standardisiert sind, d. h. um dieselben Operationen an Daten auszuführen, haben verschiedene DBMS ihre eigenen Funktionsnamen. Dies bedeutet, dass der in einem DBMS geschriebene Abfragecode möglicherweise in einem anderen nicht funktioniert, und dies sollte in Zukunft berücksichtigt werden. Dies gilt vor allem für Funktionen zur Verarbeitung von Textwerten, zur Konvertierung von Datentypen und zur Manipulation von Datumsangaben.
Die meisten DBMS unterstützen einen Standardsatz von Funktionstypen, nämlich:
Die SQL-Implementierung in MS Access verfügt über folgende Funktionen zur Textverarbeitung:
Funktion | Beschreibung |
---|---|
Left() | Wählt die Zeichen im Text von links aus |
Right() | Wählt die Zeichen im Text rechts aus |
Mid() | Wählt Zeichen aus der Mitte des Textes aus |
UCase() | Wandelt Zeichen in Großbuchstaben um |
LCase() | Wandelt Zeichen in Kleinbuchstaben um |
LTrim() | Entfernt alle Leerzeichen links vom Text |
RTrim() | Entfernt alle Leerzeichen rechts vom Text |
Trim() | Entfernt alle Leerzeichen von beiden Seiten des Textes |
Lassen Sie uns Produktnamen mit der Funktion UCase() in Großbuchstaben umwandeln:
Run SQLSELECT Product, UCase(Product) AS Product_UCase
FROM Sumproduct
Trennen wir die ersten drei Zeichen im Text mit der Funktion LEFT():
Run SQLSELECT Product, LEFT(Product, 3) AS Product_LEFT
FROM Sumproduct
Zahlenverarbeitungsfunktionen dienen dazu, mathematische Operationen an numerischen Daten durchzuführen. Diese Funktionen sind für algebraische und geometrische Berechnungen konzipiert und werden daher viel seltener verwendet als Funktionen zur Datums- und Uhrzeitverarbeitung. Numerische Funktionen sind jedoch in allen SQL-Versionen am stärksten standardisiert. Schauen wir uns die Liste der numerischen Funktionen an:
Funktion | Beschreibung |
---|---|
SQR() | Gibt die Quadratwurzel der angegebenen Zahl zurück |
ABS() | Gibt den absoluten Wert einer Zahl zurück |
EXP() | Gibt den Exponenten der angegebenen Zahl zurück |
SIN() | Gibt den Sinus des angegebenen Winkels zurück |
COS() | Gibt den Kosinus des angegebenen Winkels zurück |
TAN() | Gibt den Tangens des angegebenen Winkels zurück |
Wir haben nur einige der Hauptfunktionen aufgelistet. Eine vollständige Liste der unterstützten Funktionen mit detaillierten Beschreibungen finden Sie jedoch jederzeit in Ihrer DBMS-Dokumentation.
Schreiben wir beispielsweise eine Abfrage, um mithilfe der Funktion SQR() die Quadratwurzel der Zahlen in der Spalte „Betrag“ zu ermitteln:
Run SQLSELECT Amount, SQR(Amount) AS Amount_SQR
FROM Sumproduct
Funktionen zur Datums- und Uhrzeitmanipulation gehören zu den wichtigsten und am häufigsten verwendeten SQL-Funktionen. In Datenbanken werden Datums- und Uhrzeitwerte in einem speziellen Format gespeichert, sodass sie ohne zusätzliche Verarbeitung nicht direkt verwendet werden können. Jedes DBMS verfügt über eigene Funktionen zur Verarbeitung von Daten, die leider keine Übertragung auf andere Plattformen und SQL-Implementierungen ermöglichen.
Liste einiger Funktionen zum Umgang mit Datum und Uhrzeit in MS Access:
Funktion | Beschreibung |
---|---|
DatePart() | Gibt einen Teil eines Datums zurück: Jahr, Quartal, Monat, Woche, Tag, Stunde, Minute, Sekunde |
Year(), Month() | Gibt das Jahr bzw. den Monat zurück |
Hour(), Minute(), Second() | Gibt die Stunden, Minuten und Sekunden des angegebenen Datums zurück |
WeekdayName() | Gibt den Namen des Wochentags zurück |
Schauen wir uns ein Beispiel für die Funktionsweise der Funktion DatePart() an:
SELECT Date1, DatePart("m", Date1) AS Month1
FROM Sumproduct
Die Funktion DatePart() verfügt über einen zusätzlichen Parameter, der es uns ermöglicht, den erforderlichen Teil des Datums anzuzeigen. Im Beispiel haben wir den Wert des Parameters „m“ verwendet, der die Monatszahl anzeigt (auf die gleiche Weise können wir das Jahr anzeigen – „yyyy“, das Quartal – „q“, den Tag – „d“, die Woche – „w“, die Stunde – „h“, die Minuten – „n“, die Sekunden – „s“ usw.).
Statistische Funktionen helfen uns, Daten ohne Stichproben bereitzustellen. SQL-Abfragen mit diesen Funktionen werden häufig zur Analyse und Erstellung verschiedener Berichte verwendet. Ein Beispiel für eine solche Auswahl kann sein: Bestimmen der Anzahl der Zeilen in einer Tabelle, Ermitteln der Summe der Werte für ein bestimmtes Feld, Suchen nach dem größten/kleinsten oder durchschnittlichen Wert in der angegebenen Spalte der Tabelle. Wir weisen außerdem darauf hin, dass Statistikfunktionen von allen DBMS ohne besondere schriftliche Änderungen unterstützt werden.
Liste der Statistikfunktionen im DBMS Access:
Funktion | Beschreibung |
---|---|
COUNT() | Gibt die Anzahl der Zeilen in einer Tabelle oder Spalte zurück |
SUM() | Gibt die Summe der Werte in einer Spalte zurück |
MIN() | Gibt den kleinsten Wert in einer Spalte zurück |
MAX() | Gibt den größten Wert in einer Spalte zurück |
AVG() | Gibt den Durchschnittswert in einer Spalte zurück |
Gibt die Anzahl aller Zeilen in der Tabelle zurück:
Run SQLSELECT COUNT(*) AS Count1
FROM Sumproduct
Gibt die Anzahl aller nicht leeren Zeilen im Produktfeld zurück:
SELECT COUNT(Product) AS Count2
FROM Sumproduct
Wir haben absichtlich einen Wert in der Spalte „Produkt“ entfernt, um den Leistungsunterschied zwischen den beiden Abfragen anzuzeigen.
Run SQLSELECT SUM(Quantity) AS Sum1
FROM Sumproduct
WHERE Month = 'April'
Mit dieser Anfrage haben wir die Gesamtmenge der im Monat April verkauften Waren angezeigt.
Run SQLSELECT SUM(Quantity*Amount) AS Sum2
FROM Sumproduct
Wie Sie sehen, können wir in statistischen Funktionen auch Berechnungen für mehrere Spalten mithilfe standardmäßiger mathematischer Operatoren durchführen.
Run SQLSELECT MIN(Amount) AS Min1
FROM Sumproduct
Run SQLSELECT MAX(Amount) AS Max1
FROM Sumproduct
Run SQLSELECT AVG(Amount) AS Avg1
FROM Sumproduct