Wie Verwenden von Wertausdrücke mit SQL

Wenn ein Data Manipulation Language (DML) Anweisung enthält mehrere Ausdrücke, zu verstehen, was die SQL-Anweisung versucht, kann zu tun, eine Herausforderung sein. Sie können verwenden Wertausdrücke

kombinieren zwei oder mehr Werte. Mehrere Arten von Wertausdrücke existieren, zu den verschiedenen Datentypen entsprechen:

  • numerisch

  • Schnur

  • Terminzeit

  • Intervall

  • Boolean

  • Benutzerdefinierte

  • Reihe

  • Sammlung

Die Booleschen, benutzerdefinierte, Zeile und Sammlungstypen wurden mit SQL eingeführt: 1999. Einige Implementierungen können sie alle nicht noch unterstützen. Wenn Sie diese Datentypen verwenden möchten, stellen Sie sicher, dass Ihre Implementierung diejenigen enthält, die Sie verwenden möchten.

Numerische Wertausdrücke

So kombinieren Sie numerische Werte, verwenden Sie den Zusatz (+), Subtraktion (-), Multiplikation (*) Und Division (/) Betreiber. Die folgenden Zeilen sind Beispiele für numerische Wertausdrücke:

12 - 715/3 - 46 * (8 + 2)

Die Werte in diesen Beispielen sind Zahlenliterale. Diese Werte können auch Spaltennamen, Parameter, Host-Variablen oder Unterabfragen sein - sofern diese Spaltennamen, Parameter, Host-Variablen oder Unterabfragen in einen numerischen Wert zu bewerten. Im Folgenden sind einige Beispiele:

SUBTOTAL + TAX + Shipping6 * MILES / ZEITEN: Monate / 12

Der Doppelpunkt im letzten Beispiel signalisiert, dass der folgende Ausdruck (Monate) Ist entweder ein Parameter oder eine Hostvariable.

String Wertausdrücke

String Wertausdrücke kann die Konkatenationsoperator (||).

Einige SQL-Implementierungen verwenden + als Verkettungsoperator statt ||. Prüfen Sie die Dokumentation, um zu sehen, welcher Betreiber Ihre Implementierung verwendet.

Einige Implementierungen können String-Operatoren andere als Verkettung umfassen, aber ISO-Standard-SQL unterstützt keine solche Operatoren. Verkettungs gilt für Binärstrings sowie Textfolgen.

Für Datum und Uhrzeit und Intervall-Wertausdrücke

Datetime-Wert Ausdrücke befassen sich mit Daten und Zeiten. Daten DATUM, ZEIT, TIMESTAMP, und INTERVALL Typen in Datetime-Wert Ausdrücke erscheinen. Das Ergebnis eines Ausdrucks Datetime-Wert ist immer ein anderes Datumzeit. Sie können ein Intervall von einem Datumzeit addieren oder zu subtrahieren und Zeitzoneninformationen angeben.

Hier ist ein Beispiel für einen Datetime-Wert Ausdruck:

DueDate + INTERVAL '7' DAY

Eine Bibliothek kann einen solchen Ausdruck verwenden, um festzustellen, wann eine verspätete Mitteilung zu senden. Das folgende Beispiel gibt eine Zeit und nicht als Datum:

TIME '18: 55: 48 'LOCAL

Das AT LOCAL Schlüsselwörter angeben, dass die Zeit, um die lokale Zeitzone bezieht.

Intervall-Wertausdrücke befassen sich mit der Differenz (wie viel Zeit vergeht) zwischen einem Datetime und anderen. Sie haben zwei Arten von Intervallen: Jahr Monat und Tageszeit. Sie können nicht die beiden in einem Ausdruck mischen.

Als ein Beispiel für ein Intervall an, dass jemand ein Buch aus der Bibliothek nach dem Fälligkeitsdatum zurückgibt. Durch die Verwendung eines Intervallwert Ausdruck wie die des folgenden Beispiel können Sie berechnen, wie viele Tage zu spät ist das Buch und zu beurteilen, eine Geldbuße entsprechend:

(DateReturned - DateDue) DAY

Da ein Intervall von entweder dem Jahr-Monat oder der Tageszeit Vielfalt sein können, müssen Sie angeben, welche Art zu verwenden. (Im vorhergehenden Beispiel, TAG angegeben wurde.)

Boolesche Wertausdrücke

EIN Boolesche Wertausdruck prüft den Wahrheitswert eines Prädikats. Im Folgenden ist ein Beispiel für einen Booleschen Ausdruck:

(Class = SENIOR) wahr

Wenn dies eine Bedingung für das Abrufen von Zeilen aus einer Schülertisch waren, nur die Zeilen die Datensätze von Senioren enthält, würde abgerufen werden. Um die Datensätze aller Nicht-Senioren abrufen, können Sie das folgende verwenden:

NOT (Class = SENIOR) wahr

Alternativ können Sie verwenden:

(Class = SENIOR) falsch

Um jede Zeile abzurufen, die einen Nullwert in der hat KLASSE Spalte, die Verwendung

(Class = SENIOR) ist unbekannt

Benutzerdefinierte Typ Wertausdrücke

Falls erforderlich, können Sie Ihre eigenen Datentypen definieren, anstatt für diejenigen vorgesehen zu regeln, dass es durch # 147-Lager # 148- SQL. Ausdrücke, die Datenelemente eines solchen benutzerdefinierten Typ nehmen muss an ein Element desselben Typs auswerten.

Row Wertausdrücke

EIN Zeilenwert Ausdruck, nicht überraschend, gibt einen Zeilenwert. Der Zeilenwert kann aus einem Wertausdruck, oder zwei oder mehrere kommagetrennte Wertausdrücke. Beispielsweise:

( 'Joseph Tykociner "," Professor Emeritus ", 1918)

Dies ist eine Zeile in einer Fakultät Tisch, ein Mitglied der Fakultät Namen, Rang und Jahr leihweise zeigt.

Sammlung Wertausdrücke

EIN Sammlung Wertausdruck ein Array ausgewertet.

Referenzwertausdrücke

EIN Referenzwert Ausdruck wertet auf einen Wert, einen anderen Datenbankkomponente, wie beispielsweise eine Tabellenspalte verweist.

Menü