7.1.1 Chaînes

Une chaîne est une séquence de caractères, entourée par des guillemets simples (`''') ou doubles(`""'). Par exemple :

'une chaîne'
"une autre chaîne"

A l'intérieur d'une chaîne, on trouve des séquences spéciales. Celles-ci commencent avec le caractère backslash (``\''), dit aussi caractère d'échappement. MySQL reconnaît les séquences suivantes :

Within a string, certain sequences have special meaning. Each of these sequences begins with a backslash known as the escape character. MySQL recognizes the following escape sequences:

  • \0 ASCII 0 (NUL) le caractère nul.
  • \n Une nouvelle ligne.
  • \t Une tabulation.
  • \r Un retour chariot.
  • \b Un effacement.
  • \' Un guillemet simple (``''').
  • \" Un guillemet double (``"'').
  • \\ Un backslash (``\'').
  • \% Un pourcentage ``%''. Cela permet de rechercher le caractère `%' dans un contexte ou il pourrait etre considéré comme un caractère spécial.
  • \_ Un souligné ``_'' Cela permet de rechercher le caractère ``_'dans un contexte ou il pourrait etre considéré comme un caractère spécial.'

    Il y a plusieurs façons d'introduire des guillemets dans une chaîne.

    • Un guillemet simple ``''' dans une chaîne à guillemet simple peut s'écrire : ``''''.
    • Un guillemet double ``"''dans une chaîne à double simple peut s'écrire : ``""''.
    • On peut ajouter le caractère d'échappement avant un guillemet : ``\''.
    • Un guillemet simple ``''' dans une chaîne à guillemet double ne requiert aucun traitement spécial.
    • Un guillemet double ``"'' dans une chaîne à guillemet simple ne requiert aucun traitement spécial.

    La commande SELECT ci-dessous montre comment fonctionne les guillemets et le caractère d'échappement.

    mysql> SELECT 'bonjour', '"bonjour"', '""bonjour""', 'bonj''our', '\'bonjour';

    +---------+-----------+-------------+----------+----------+
    | bonjour | "bonjour" | ""bonjour"" | bonj'our | 'bonjour |
    +---------+-----------+-------------+----------+----------+
    mysql> SELECT "bonjour", "'bonjour'", "''bonjour''", "bonj""our", "\"bonjour";
    +---------+-----------+-------------+----------+----------+
    | bonjour | 'bonjour' | ''bonjour'' | bonj"our | "bonjour |
    +---------+-----------+-------------+----------+----------+
    
    mysql> SELECT "Voici\nQuatre\nLignes\nDistinctes";
    +--------------------+
    | Voici
    Quatre
    Lignes
    Distinctes |
    +--------------------+
    

    Pour ajouter des valeurs binaires dans un BLOB, les caractères suivants doivent être représenté par des séquences spéciales :

  • NUL ASCII 0. Représentation : ``\0'' (un backslash et un caractère ASCII ``0'' ).
  • \ ASCII 92, backslash. Représentation : ``\\''.
  • ' ASCII 39, guillemet simple. Représentation : ``\'''.
  • " ASCII 34, guillemet double. Représentation : ``\"''.
  • De préférence, on utilisera une séquence d'échappement pour toute chaîne qui contient un des caractères spéciaux ci-dessus.