Zeichenfolgenliterale in SQL (Zeichenfolgenliterale in SQL), Lektion, Seite 723460
https://www.purl.org/stefan_ram/pub/zeichenfolgenliterale_sql (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

Zeichenfolgenliterale in SQL 

Einführende Beispiele

Wir haben Zeichenfolgenliteral bereits in Eingaben wie der folgenden verwendet.

Konsole (MySQL, E92, C99, C03)
INSERT INTO LISTE ( I ) VALUES ( '1' );
Query OK, 1 row affected (0.00 sec)

Oben gibt das Zeichenfolgenliteral »'1'« die in eine Tabelle einzufügenden Zeichenfolge »1« an.

In dieser Lektion soll der Begriff des Zeichenfolgenliterals noch einmal ausdrücklich definiert werden, aber sie enthält wenig wirklich Neues!

Zeichenfolgen

Eine Zeichenfolge  ist eine Folge von Zeichen.

Beispielsweise ist »Mai« eine Zeichenfolge mit drei Zeichen: »M«, »a« und »i«.

Morphologisches Diagramm
Zeichenfolge
|-|--->.------------------.--->|-|
^ |
| .---------. |
'---| Zeichen |<---'
'---------'

Die Syntax  eines Zeichenfolgenliterals

Das Zeichen »'« wird Apostroph  genannt („der Apostroph“).

Ein Zeichenfolgenliteral  ist eine Folge von Zeichen, die in Apostrophe eingeschlossen ist.

Morphologisches Diagramm
Zeichenfolgenliteral
.-. .--------------. .-.
|-|--->( ' )--->| Zeichenfolge |--->( ' )--->|-|
'-' '--------------' '-'

Beispielsweise ist »'Mai'« ein Zeichenfolgenliteral mit fünf Zeichen: Apostroph, »M«, »a«, »i« und wieder Apostroph.

Solche Zeichenfolgenliterale werden im weiteren Verlauf dieses Kurses immer wieder verwendet werden werden.

Wir haben Zeichenfolgenliterale bisher schon bei der Angabe einer einzufügenden Zeichenfolge in INSERT-Anweisungen wie »INSERT INTO A ( B ) VALUES ( 'C' );« verwendet.

Zeichenfolgenliterale als lexikalische Einheiten

Ein Zeichenfolgenliteral  ist eine einzige lexikalische Einheit. Da Wörter und Sonderzeichen (außerhalb von Zeichenfolgenliteralen) ebenfalls jeweils eine einzige lexikalische Einheit sind, besteht die INSERT-Anweisungen »INSERT INTO A ( B ) VALUES ( 'C D' );« beispielsweise aus den folgenden lexikalischen Einheiten (jeweis eine lexikalische Einheit pro Zeile).

Lexikalische Einheiten der Anweisung »INSERT INTO A ( B ) VALUES ( 'C D' );«
INSERT 
INTO
A
(
B
)
VALUES
(
'C D'
)
;

Leerzeichen und Zeilenenden innerhalb von Zeichenfolgenliteralen  gelten also nicht  als Leerraum.

Der Typ  eines Zeichenfolgenliterals

Einem Zeichenfolgenliteral wird ein Typ  zugeordnet, der beschreibt, daß es sich um eine Zeichenfolge handelt und welche Länge sie hat.

Der Typ des Zeichenfolgenliterals »'ABC'« ist ›VARCHAR(3)‹, also „eine Folge von drei Zeichen“.

Der Wert  eines Zeichenfolgenliterals

Einem Zeichenfolgenliteral wird ein Wert  zugeordnet.

Der Wert eines Zeichenfolgenliterals ist eine Zeichenfolge, nämlich die zwischen den Apostrophen  befindliche Zeichenfolge.

So ist der Wert des Zeichenfolgenliterals »'ABC'« beispielsweise die Zeichenfolge »ABC«.

Das Zeichenfolgenliteral »'ABC'« stellt also die Zeichen »ABC« dar, es steht im Quelltext für diese Zeichenfolge.

Zeichenfolgenliteral
'ABC'
Wert des Zeichenfolgenliterals »'ABC'« (Zeichenfolge)
ABC

Beispiele für Zeichenfolgenliterale

Die Zeichenfolge mit einem Zeichen

Auch eine Zeichenfolge mit nur einem Zeichen gilt als eine Zeichenfolge.

Zeichenfolgenliteral
'A'
Zeichenfolge (ein Zeichen)
A
Skript (MySQL )

DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE LISTE ( I VARCHAR ( 255 ));

INSERT INTO LISTE ( I ) VALUES ( 'A' );

SELECT * FROM LISTE;

+------+
| I |
+------+
| A |
+------+

Die leere Zeichenfolge

Sogar eine Folge ohne  Schriftzeichen gilt als Zeichenfolge, da sie als eine Zeichenfolge mit null  Zeichen interpretiert wird.

Zeichenfolgenliteral (leer)
''
Zeichenfolge (leer, also gar kein Zeichen!)
Skript (MySQL )

DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE LISTE ( I VARCHAR ( 255 ));

INSERT INTO LISTE ( I ) VALUES ( '' );

SELECT * FROM LISTE;

+------+
| I |
+------+
| |
+------+

Zeilenende in Zeichenfolgen (MySQL )

Es ist möglich, im Klienten von MySQL  ein Zeichenfolgenliteral einzugeben, das ein Zeilenende enthält, indem an der Stelle, an der das Zeilenende erscheinen soll, die Eingabetaste getippt wird.

Danach erscheint dann am Anfang der nächsten Zeile der Apostroph-prompt, und die Eingabe des Zeichenfolgenliterals kann fortgesetzt werden.

Prompt  für Zeichenfolgenliterale
    '>

Die sich ergebende Zeichenfolge  enthält dann an den Stellen ein Zeilenende, an der das Zeichenfolgenliteral Zeilenenden enthielt.

Zeichenfolgenliteral
'a
b'
Zeichenfolge
a
b

Die Ausgabe von Tabellen mit mehrzeiligen Zeichenfolgen kann im Klienten allerdings unübersichtlich  werden.

Skript (MySQL )

DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE LISTE ( I VARCHAR ( 255 ));

INSERT INTO LISTE ( I ) VALUES ( 'a
b' );

SELECT * FROM LISTE;

+------+
| I |
+------+
| a
b |
+------+

Ersatzdarstellungen in Zeichenfolgenliteralen (MySQL )

Bestimmte Zeichen werden in Zeichenfolgenliteralen durch zwei Zeichen  dargestellt. Diese beiden Zeichen stehen dann aber für ein einziges Zeichen  in der sich ergebenden Zeichenfolge.

Zeichenfolgenliteral (21 Zeichen)
'a\'b\"c\\d\ne\rf\tg'
Zeichenfolge (11 Zeichen), die Pfeile stehen für „Zeilenvorschub“ beziehungsweise „Wagenrücklauf“)
a'b"c\def
Skript (MySQL )

DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE LISTE ( I VARCHAR ( 255 ));

INSERT INTO LISTE ( I ) VALUES ( 'a\'b\"c\\d\ne\rf\tg' );

SELECT * FROM LISTE;

+---------------+
| I |
+---------------+
| a'b"c\d
f g |
+---------------+
Ersatzdarstellungen

Ersatzdarstellung Zeichen

\' ein Apostroph
'' ein Apostroph
\" ein Anführungszeichen
\\ ein inverser Schraegstrich

\n Das Unicode-Zeichen "linefeed" (Zeilenvorschub)
\r Das Unicode-Zeichen "carriage return" (Wagenruecklauf)
\t Das Unicode-Zeichen "tab" (tabulator)

\0 Das Unicode-Zeichen "NUL"
\b Das Unicode-Zeichen "backspace"
\Z Das Unicode-Zeichen mit der Kennzahl 26

Verbundene Zeichenfolgenliterale (MySQL )

Mehrere aufeinanderfolgende Zeichenfolgenliterale die durch Leerraum voneinander getrennt sind, können wie ein Zeichenfolgenliteral verwendet werden, dessen Zeichenfolge sich aus der Hintereinanderschreibung der einzelnen Zeichenfolgenliterale ergibt.

Zeichenfolgenliterale
'a'   'b'
'c'
Zeichenfolge
abcd
Skript (MySQL )

DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE LISTE ( I VARCHAR ( 255 ));

INSERT INTO LISTE ( I ) VALUES ( 'a' 'b'
'c' );

SELECT * FROM LISTE;

+------+
| I |
+------+
| abc |
+------+

Übungsfragen _

Textangaben in chevrons  (/ʃə.vʁɔ̃s/), also den Zeichen "»" und "«", beziehen sich immer auf den Text zwischen  diesen chevrons. Beispielsweise umfaßt der Text »abc« drei Zeichen (nicht fünf).

?   Übungsfrage _

Wie viele Zeichen hat die vom Zeichenfolgenliteral »'ab'« dargestellte Zeichenfolge ?

?   Übungsfrage _

Wie viele Zeichen hat das Zeichenfolgenliteral »'ab'« selber (als Zeichenfolgenliteral betrachtet)?

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723460 stefan_ram:723460 Zeichenfolgenliterale in SQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723460, slrprddef723460, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/zeichenfolgenliterale_sql