Sql-Befehle und -Funktionen für Abfragen - eine kleine FAQ

Dieses Unterkapitel stellt Informationen zu Datentypen, Operatoren und Funktionen des MS-SqlServer-DBMS zur Verfügung. Es handelt sich um sämtliche Operatoren sowie eine Teilmenge der Funktionen, welche innerhalb von Transact-Sql (TSql) definiert sind. Sicherheitsrelevante Funktionen und Funktionen, welche Informationen über die Systemkonfiguration des Sql-Servers liefern, wurden nicht in die Darstellung übernommen. Allgemeine Informationen zu Sql als Abfragesprache sind unabhängig vom MS-SqlServer und im Sql-Tutorial zu finden.

Alle hier aufgelisteten Operatoren und Funktionen können innerhalb von server-daten in Abfragen (Menü 9) gemeinsam mit Standard-Select-Befehlen verwendet werden. Zusätzlich sind die Operatoren und Funktionen für die Definition von Verknüpfungen (Menü 7) erlaubt.

Verwendung von Operatoren / Funktionen

Funktionen können in Sql-Befehlen immer dort verwendet werden, wo Spaltennamen zulässig sind. So kann anstelle von

Select A.A_Id, A.A_Name, A.A_Preis
From Artikel As A

auch notiert werden:

Select A.A_Id,
    A.A_Name + ' [' + Cast(A.A_Id as nvarchar(5)) + ']',
    Round(A.A_Preis, 2) As [ArtikelPreis]
From Artikel As A

Dies gibt den Artikelnamen mit der Artikel-Id konvertiert als Text in eckigen Klammern aus und rundet den Preis auf zwei Nachkommastellen. Analog können mit

Select Year(U.Datum),
    Month(U.Datum),
    Sum(A.A_Preis * U.A_Stueck)
From Umsatz As U Inner Join Artikel As A
On U.A_Id = Artikel.A_Id
Group By Year(U.Datum), Month(U.Datum)

alle Umsätze nach Jahr und Monat gruppiert und über diese Teilgruppen die Summe der Umsätze in diesem Monat ermittelt werden. Ohne Funktionen wäre die letzte Auswertung nach Monatsumsätzen nicht möglich, da die Spalte <Datum> immer tagesgenaue Angaben enthält.

Was ist der Unterschied zwischen Operatoren und Funktionen

Eigentlich gibt es keinen wirklichen Unterschied zwischen Operatoren und Funktionen. Zwar 'sehen' Operatoren anders aus als Funktionen:

<linker Ausdruck> Operator <rechter Ausdruck>

Funktion(<erster Funktionsparameter>, <zweiter Funktionsparameter>)

Aber dies ist eher eine Frage der Konvention. Wichtig ist:

  • Operatoren und Funktionen geben einen Wert zurück, der entweder ausgegeben oder als nächster Ausdruck für den nächsten Operator bzw. als nächster Eingabeparameter für die nächste Funktion dient. Bei Abfragen wird das letzte Ergebnis ausgegeben oder in einem Where / GroupBy / Having / OrderBy - Abschnitt verwendet.
  • Um das Tripel <linker Ausdruck> Operator <rechter Ausdruck> können Klammern notiert werden, Parameter von Funktionen müssen geklammert sein. Die Klammerung von Operatoren ist bekannt:

    Select (A.A_Preis * U.A_Stueck)

    anstelle von

    Select A.A_Preis * U.A_Stueck

  • Die Dokumentation für Operatoren und Funktionen enthält immer 'Leerstellen', Positionen, welche bei der Verwendung meistens mit Spaltennamen oder anderen Operatoren/Funktionen 'gefüllt' werden. In der Dokumentation sind diese immer mit <Name> markiert, die Spitzklammern entfallen bei der Verwendung. Es dürfen nur die erlaubten Datentypen verwendet werden.
  • Jeder Operator kann auch als Funktion geschrieben werden. Statt

    5 * 3

    wird notiert:

    meineMultiplikationsFunktion(5, 3)

    Man sieht: Operatoren sind eine Vereinfachung.

Das sind so viele Funktionen. Muß ich diese verwenden?

Keine Sorge, niemand muß all diese Funktionen verwenden, sie auswendig lernen oder ähnliches. Sehr viele Sql-Abfragen können ohne Operatoren/Funktionen auskommen. Nur gibt es Fälle, in welchen komplexere Informationen interessieren, in welchen zusätzliche Berechnungen (Multiplikation, Sinus) oder Konvertierungen gewünscht sind oder in welchen Probleme mit Null-Feldern auftreten. In solchen Fällen können Funktionen nützlich sein - erst dann sucht man nach der passenden Funktion.

Ich finde die passende Funktion nicht. Gibt es diese überhaupt?

Die Menge der Funktionen mag zunächst einschüchternd erscheinen. Aber orientieren Sie sich zunächst an den drei Haupttypen: Diese Funktionen sind immer für ihren jeweiligen Bereich erschöpfend und umfassend. Sonstige Funktionen umfassen Informationsfunktionen sowie Funktionen zur Verarbeitung von Null-Feldern, Aggregat-Funktionen ermöglichen das Aggregieren und Zusammenfassen von vielen Datensätzen auf wenige Ergebniszeilen. Wenn Ihnen allerdings der Umgang mit Null-Feldern noch nicht so vertraut ist, dann sollten Sie sich den Abschnitt über Vergleichsoperatoren (Punkt 2, insbesondere 2.3) durcharbeiten.
Wenn Sie diese Seite unterstützen möchten, verlinken Sie das Angebot einfach:
<a href='http://www.sql-und-xml.de/server-daten/sql-befehle/>Sql-Befehle</a>

Link zur hiesigen Seite als QR-Code

Kontaktformular:

Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!

Die Erläuterungen zum Datenschutz habe ich gelesen und stimme diesen zu.

© 2003-2023 Jürgen Auer, Berlin.