Séquences d'échappement dans MySQL

Mehvish Ashiq 15 février 2024
  1. Définition de la séquence d’échappement
  2. Séquences d’échappement dans MySQL
  3. Séquence d’échappement avec caractère de remplacement dans MySQL
  4. conclusion
Séquences d'échappement dans MySQL

Dans cet article, nous allons en apprendre davantage sur les séquences d’échappement. Nous verrons sa définition avec des exemples et des exemples de code.

Nous explorerons également comment l’utiliser avec des caractères génériques pour trouver des modèles dans les données.

Définition de la séquence d’échappement

Les caractères de séquence d’échappement sont des caractères non imprimables qui spécifient une autre interprétation du caractère suivant comme séquence de caractères d’échappement.

Il commence par la barre oblique inverse (représentée par *\\*) et comporte deux caractères ou plus. Par exemple, \n affiche une nouvelle ligne où barre oblique inverse est un caractère et n est le second.

La liste des séquences d’échappement et leur représentation sont données ci-dessous.

Séquence d’échappement Représentation des personnages
\n Caractère de nouvelle ligne
\0 Caractère NULL
\b Caractère de retour arrière
\r Caractère de retour chariot
\t Caractère de tabulation
\\ Barre oblique inverse
\% Caractère de pourcentage
\a Alerte
\f Flux de formulaire (Nouvelle page)
\v Onglet vertical
\' Guillemet simple
\" Guillemets doubles
\? Point d’interrogation

Lors de l’écriture du programme d’application, il existe certaines situations où vous devez manipuler la chaîne. Cette chaîne doit être correctement échappée avant d’être enregistrée dans la base de données.

Ici, nous utilisons des séquences d’échappement. Par exemple, si vous voulez INSÉRER un enregistrement dans la table customer où le customer_firstname est Nyy'a, vous devez utiliser une séquence d’échappement.

Remarque : Nous utilisons deux tables nommées customer et order pour l’exemple de code de ce didacticiel. Ces tableaux se présentent comme suit avec les données actuelles.

Tableau client :

séquences d’échappement dans mysql - table client

Tableau de commande :

séquences d’échappement dans mysql - table de commande

Exemple de code :

INSERT INTO customer(customer_firstname, customer_lastname, customer_age, customer_salary)
VALUES
('Nyy\'a', 'Daniel', 19, 10000);

Production :

séquences d’échappement dans mysql - exemple

Séquences d’échappement dans MySQL

Il existe différentes séquences d’échappement utilisées dans MySQL. Voir les exemples suivants pour comprendre.

Code d’exemple de nouvelle ligne :

SELECT 'Hi!\nWelcome to the learning Escape Sequences.'

Production :

Hi!
Welcome to the learning Escape Sequences.

Code d’exemple de caractère de retour chariot :

SET @strInput = 'Hello,How are you';
SET @strResult = REPLACE(@strInput, ',', CHAR(10)); #CHAR(10) represents \r
SELECT @strResult;

Production :

Hello
How are you

Exemple de code de point d’interrogation :

SELECT 'Is this a question mark example\?';

Production :

Is this a question mark example?

Code d’exemple de guillemet :

SELECT 'firstname', 'first\'name', '"firstname"',"firstname", '\"firstname\"','firstname\?';

Production :

séquences d’échappement dans mysql - exemple de guillemets doubles

Séquence d’échappement avec caractère de remplacement dans MySQL

Les caractères Wild card sont utilisés pour obtenir le modèle souhaité à partir des données et remplacer une ou plusieurs chaînes.

Il est utilisé avec l’opérateur LIKE et l’opérateur LIKE est utilisé dans la clause WHERE. L’utilisation d’une séquence d’échappement avec un caractère générique facilite l’obtention d’un certain modèle.

Exemple de code :

SELECT customer_firstname from customer where customer_firstname like '___\'_';

Dans ce code, nous recherchons le customer_firstname de la table customer où nous avons trois caractères avant un guillemet simple et un caractère après celui-ci. Un trait de soulignement (_) est utilisé pour un caractère.

Dans ___\'_', nous avons trois traits de soulignement pour obtenir trois caractères, puis un guillemet simple, puis un caractère à la fin. Voir la sortie suivante pour comparer.

Production :

séquences d’échappement dans mysql - apostrophe avec caractère générique

Que faire si vous recherchez un certain modèle dans une colonne ? Entraînons-nous en utilisant le tableau order. Nous trouverons toutes les dates de commande à partir du champ order_date qui contient le modèle -12.

Ici % affiche un ou plusieurs caractères. Cela signifie un ou plusieurs caractères avant le modèle requis et un ou plusieurs dans l’exemple de code suivant.

Exemple de code :

SELECT order_date from order where order_date like '%\-12%';

Production :

séquences d’échappement dans mysql - trouver la partie de modèle a

Pour comprendre l’exemple des guillemets doubles avec des caractères d’échappement, insérez un nouvel enregistrement dans la table customer.

Exemple de code :

INSERT INTO customer(customer_firstname, customer_lastname, customer_age, customer_salary)
VALUES
('\"Nyy\'a\"', 'Dan\'iel', 19, 10000);

Production :

séquences d’échappement dans mysql - trouver la partie b du modèle

Utilisez la commande suivante pour trouver le customer_firstname et le customer_lastname dans la table customer qui répond au modèle suivant.

Exemple de code :

SELECT customer_firstname, customer_lastname from customer 
where customer_firstname like '%\"%\'%\"'
AND customer_lastname like'%\'___';

Production :

séquences d’échappement dans mysql - trouver la partie c du modèle

conclusion

Cet article a conclu que les séquences d’échappement ne sont pas imprimables et spécifient une représentation alternative sur le caractère suivant.

Les chaînes doivent être échappées avant d’être enregistrées dans la base de données. Nous avons également appris que les caractères d’échappement sont utilisés avec des caractères génériques pour trouver différents modèles.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook