TOP

SQL-Lektion 7. Datenverarbeitungsfunktionen

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:

  • Textfunktionen zur Textverarbeitung (Extrahieren eines Teils der Zeichen aus dem Text, Bestimmen der Textlänge, Konvertieren von Zeichen in Groß- oder Kleinschreibung usw.);
  • Numerische Funktionen. Sie werden verwendet, um mathematische Operationen an numerischen Werten durchzuführen;
  • Datums- und Uhrzeitfunktionen (Datums- und Uhrzeitmanipulationen werden durchgeführt, der Zeitraum zwischen Datumsangaben wird berechnet, Datumsangaben werden auf Richtigkeit überprüft usw.);
  • Statistische Funktionen (zur Berechnung von Maximal-/Minimalwerten, Durchschnittswerten, Mengen- und Summenberechnung...);
  • Systemfunktionen (stellen verschiedene Arten von Dienstinformationen über DBMS, Benutzer usw. bereit).
  • 1. SQL-Funktionen für die Textverarbeitung

    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
    

    2. SQL-Funktionen zur Verarbeitung von Zahlen

    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
    
    MySQL verwendet die Funktion SQRT(), um die Quadratwurzel einer Zahl zu ermitteln.

    3. SQL-Funktionen zur Datums- und Uhrzeitverarbeitung

    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.).

    4. SQL-Statistikfunktionen

    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

    4.1 Beispiele für die Verwendung der Funktion COUNT()

    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.

    4.2 Beispiele für die Verwendung der Funktion SUM()

    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.

    4.3 Beispiel für die Verwendung der Funktion MIN()

    Run SQLSELECT MIN(Amount) AS Min1 
    FROM Sumproduct
    

    4.4 Beispiel für die Verwendung der Funktion MAX()

    Run SQLSELECT MAX(Amount) AS Max1 
    FROM Sumproduct
    

    4.5 Beispiel für die Verwendung der Funktion AVG()

    Run SQLSELECT AVG(Amount) AS Avg1
    FROM Sumproduct