Escape-Sequenzen in MySQL
- Definition der Escape-Sequenz
- Escape-Sequenzen in MySQL
-
Escape Sequence
mit Platzhalterzeichen in MySQL - Schlussfolgerungen
In diesem Artikel werden wir etwas über Escape-Sequenzen lernen. Wir werden seine Definition mit Beispielen und Beispielcode sehen.
Wir werden auch untersuchen, wie man es mit Platzhalterzeichen verwendet, um Muster in den Daten zu finden.
Definition der Escape-Sequenz
Escape-Sequenzzeichen sind nicht druckbare Zeichen, die eine alternative Interpretation des folgenden Zeichens angeben, ist die Escape-Zeichenfolge.
Es beginnt mit dem backslash
(dargestellt als *\\*
) und besteht aus zwei oder mehr Zeichen. Zum Beispiel zeigt \n
eine neue Zeile, wobei backslash
ein Zeichen ist und n
das zweite.
Die Liste der Escape-Sequenzen und ihre Darstellung ist unten angegeben.
Fluchtabfolge | Zeichendarstellung |
---|---|
\n |
Zeichen für neue Zeile |
\0 |
NULL-Zeichen |
\b |
Backspace-Zeichen |
\r |
Wagenrücklaufzeichen |
\t |
Tabulatorzeichen |
\\ |
Backslash |
\% |
Prozentzeichen |
\a |
Alarm |
\f |
Formular-Feed (Neue Seite) |
\v |
Vertikaler Tab |
\' |
Einfaches Anführungszeichen |
\" |
Doppeltes Anführungszeichen |
\? |
Fragezeichen |
Beim Schreiben des Anwendungsprogramms gibt es Situationen, in denen Sie Zeichenketten bearbeiten müssen. Dieser String muss korrekt maskiert werden, bevor er in der Datenbank
gespeichert wird.
Hier verwenden wir Escape-Sequenzen. Wenn Sie beispielsweise einen Datensatz in die Tabelle Kunde``EINFÜGEN
möchten, bei dem Kunde_Vorname``Nyy'a
ist, müssen Sie eine Escape-Sequenz
verwenden.
Hinweis: Wir verwenden zwei Tabellen namens customer
und order
für den Beispielcode für dieses Tutorial. Diese Tabellen sehen mit den aktuellen Daten wie folgt aus.
Kundentabelle:
Bestelltabelle:
Beispielcode:
INSERT INTO customer(customer_firstname, customer_lastname, customer_age, customer_salary)
VALUES
('Nyy\'a', 'Daniel', 19, 10000);
Ausgabe:
Escape-Sequenzen in MySQL
Es gibt verschiedene Escape-Sequenzen, die in MySQL verwendet werden. Sehen Sie sich zum Verständnis die folgenden Beispiele an.
Beispielcode für neue Zeile:
SELECT 'Hi!\nWelcome to the learning Escape Sequences.'
Ausgabe:
Hi!
Welcome to the learning Escape Sequences.
Beispielcode für Wagenrücklaufzeichen:
SET @strInput = 'Hello,How are you';
SET @strResult = REPLACE(@strInput, ',', CHAR(10)); #CHAR(10) represents \r
SELECT @strResult;
Ausgabe:
Hello
How are you
Fragezeichen-Beispielcode:
SELECT 'Is this a question mark example\?';
Ausgabe:
Is this a question mark example?
Beispielcode für Anführungszeichen:
SELECT 'firstname', 'first\'name', '"firstname"',"firstname", '\"firstname\"','firstname\?';
Ausgabe:
Escape Sequence
mit Platzhalterzeichen in MySQL
Platzhalter-Zeichen werden verwendet, um das gewünschte Muster aus den Daten zu erhalten und eine oder mehrere Zeichenketten zu ersetzen.
Es wird mit dem Operator LIKE
verwendet, und der Operator LIKE
wird in der Klausel WHERE
verwendet. Die Verwendung einer Escape-Sequenz mit einem Platzhalter macht es einfach, ein bestimmtes Muster zu erhalten.
Beispielcode:
SELECT customer_firstname from customer where customer_firstname like '___\'_';
In diesem Code suchen wir nach dem customer_firstname
aus der customer
-Tabelle, wo wir drei Zeichen vor einem einfachen Anführungszeichen
und ein Zeichen danach haben. Für ein Zeichen wird ein Unterstrich
(_
) verwendet.
In ___\'_'
haben wir drei Unterstriche, um drei Zeichen zu erhalten, dann ein einfaches Anführungszeichen und dann ein Zeichen am Ende. Sehen Sie sich zum Vergleich die folgende Ausgabe an.
Ausgabe:
Was ist, wenn Sie nach einem bestimmten Muster in einer Spalte suchen? Üben wir es anhand der Tabelle Bestellung
. Wir finden alle Bestelldaten aus dem Feld order_date
, das das Muster als -12
enthält.
Hier zeigt %
ein oder mehrere Zeichen. Es bedeutet ein oder mehrere Zeichen vor dem erforderlichen Muster und ein oder mehrere im folgenden Beispielcode.
Beispielcode:
SELECT order_date from order where order_date like '%\-12%';
Ausgabe:
Um das Beispiel doppelter Anführungszeichen mit Wildcard-Zeichen
zu verstehen, INSERT
einen neuen Eintrag in der Kunde
-Tabelle.
Beispielcode:
INSERT INTO customer(customer_firstname, customer_lastname, customer_age, customer_salary)
VALUES
('\"Nyy\'a\"', 'Dan\'iel', 19, 10000);
Ausgabe:
Verwenden Sie den folgenden Befehl, um customer_firstname
und customer_lastname
aus der customer
-Tabelle zu finden, die dem folgenden Muster entspricht.
Beispielcode:
SELECT customer_firstname, customer_lastname from customer
where customer_firstname like '%\"%\'%\"'
AND customer_lastname like'%\'___';
Ausgabe:
Schlussfolgerungen
Dieser Artikel kam zu dem Schluss, dass Escape-Sequenzen nicht druckbar sind, die eine alternative Darstellung für das folgende Zeichen angeben.
Die Zeichenketten müssen maskiert werden, bevor sie in der Datenbank gespeichert werden. Wir haben auch gelernt, dass die Escape-Zeichen mit Platzhalterzeichen verwendet werden, um verschiedene Muster zu finden.