Literale in SQL
In der letzten Lektion haben wir eine Zeichenkette ausgegeben – formal gesprochen ein sogenanntes String-Literal.
MySQL 8.1SELECT 'Hello world'
Ein Literal ist ein fest angegebener Wert, zum Beispiel die Zahl 12 oder die Zeichenkette 'SQL'.
Die wichtigsten Literaltypen in SQL sind:
- String
- Zahl
- Wahrheitswert
- NULL
- Datum/Uhrzeit
String-Literale
Ein String ist eine Folge von Zeichen, eingeschlossen in einfache (') oder doppelte (") Anführungszeichen. Zum Beispiel 'das ist ein String' oder "das ist ein String".
Ein String ist eine Folge von Zeichen, eingeschlossen in einfache Anführungszeichen ('). Zum Beispiel 'das ist ein String'.
In PostgreSQL werden doppelte Anführungszeichen (") für Bezeichner (Tabellen- und Spaltennamen) verwendet, für String-Literale dürfen sie nicht eingesetzt werden.
Strings können spezielle Zeichenfolgen enthalten, die mit "\" (dem Escape-Zeichen) beginnen. Damit gibt das DBMS gewöhnlichen Zeichen (Buchstaben oder anderen Symbolen) eine neue Sonderbedeutung. Die Sequenz "\n" bedeutet zum Beispiel "Zeilenumbruch" – ohne den vorangestellten Backslash wäre es einfach der Buchstabe "n".
Strings können spezielle Zeichenfolgen enthalten, die mit "\" (dem Escape-Zeichen) beginnen. Damit gibt das DBMS gewöhnlichen Zeichen (Buchstaben oder anderen Symbolen) eine neue Sonderbedeutung. Die Sequenz "\n" bedeutet zum Beispiel "Zeilenumbruch" – ohne den vorangestellten Backslash wäre es einfach der Buchstabe "n".
Damit Escape-Sequenzen in PostgreSQL funktionieren, musst du E-Strings verwenden.
-
MySQL 8.1
SELECT 'String Anderer String' as String -
MySQL 8.1
SELECT 'String \n Anderer String' as StringMySQL 8.1SELECT E'String \n Anderer String' as String
Zahlenliterale
Arithmetische Operatoren
Für Zahlenliterale stehen in SQL alle gewohnten arithmetischen Operatoren zur Verfügung:
Mit diesen Operatoren baust du beliebige arithmetische Ausdrücke und nutzt die üblichen Rechenregeln.
Zum Beispiel:
MySQL 8.1SELECT (5 * 2 - 6) / 2 AS Result;
Datum- und Zeitliterale
Werte für Datum und Uhrzeit lassen sich als String oder als Zahl darstellen.
Wenn wir zum Beispiel in einer Query ein bestimmtes Datum angeben wollen, geht das per String "1970-12-30", "19701230" oder als Zahl 19701230. In allen Fällen wird der Wert als Datum "30. Dezember 1970" interpretiert.
Wenn wir zum Beispiel in einer Query ein bestimmtes Datum angeben wollen, geht das per String '1970-12-30' oder '19701230'.
Ein Beispiel für die Verwendung eines Datumsliterals:
MySQL 8.1SELECT * FROM FamilyMembers WHERE birthday > '1970-12-30'
Was die Query genau macht, ist hier nicht wichtig – das schauen wir uns später an. Wichtig ist die Syntax, mit der wir das Datum in der Query angeben.
Neben dem reinen Datum können wir auch eine Uhrzeit allein oder Datum und Uhrzeit zusammen angeben.
Wahrheitswert-Literale
Ein Wahrheitswert-Literal sind die Werte TRUE und FALSE. Sie stehen für die Wahrheit oder Unwahrheit einer Aussage.
Beim Interpretieren der Query wandelt MySQL sie in Zahlen um: TRUE und FALSE werden zu 1 bzw. 0.
NULL
NULL bedeutet "keine Daten" oder "kein Wert". Damit lässt sich unterscheiden zwischen leeren Werten – etwa einem String der Länge null oder einem Leerzeichen – und dem Fall, dass überhaupt kein Wert vorhanden ist.