Una cadena (string) es una secuencia de caracteres, encerrada
        por comillas simples (''') o dobles
        ('"'). Ejemplos:
      
'una cadena' "otra cadena"
        Si el modo de servidor tiene habilitado
        ANSI_QUOTES, las cadenas solamente pueden
        delimitarse con comillas simples. Una cadena delimitada por
        comillas dobles será interpretada como un identificador.
      
        A partir de MySQL 4.1.1, las cadenas pueden tener una parte
        indicativa del conjunto de caracteres y una cláusula
        COLLATE:
      
[_conjunto_caracteres]'cadena' [COLLATEtipo_ordenación]
Ejemplos:
SELECT _latin1'cadena'; SELECT _latin1'cadena' COLLATE latin1_danish_ci;
Para más información sobre esta sintaxis consulte Sección 10.3.7, “Conjunto de caracteres y colación de columnas “carácter””.
        Dentro de una cadena, ciertas secuencias de caracteres tienen un
        significado especial. Cada una de estas secuencias comienza con
        una barra diagonal invertida ('\'), conocida
        como caracter de escape. MySQL reconoce las
        siguientes secuencias de escape:
      
        Estas secuencias son sensibles a mayúsculas. Por ejemplo,
        '\b' se interpreta como carácter de
        retroceso, pero '\B' se interpreta como
        'B'.
      
        Las secuencias '\%' y '\_'
        se emplean para buscar apariciones literales de
        '%' y '_' en un contexto
        de búsqueda por patrones, donde en otro caso se debieran
        interpretar como caracteres comodines. Consulte
        Sección 12.3.1, “Funciones de comparación de cadenas de caracteres”. Hay que advertir
        que si se emplean '\%' o
        '\_' en otra situación, devolverán las
        cadenas '\%' y '\_' y no
        '%' y '_'.
      
En toda otra secuencia de escape, la barra invertida se ignora. Esto es, el carácter al que se aplica se interpreta como si no tuviera delante un carácter de escape.
Hay varias formas de incluir comillas dentro de una cadena:
            Un ''' dentro de una cadena que está
            delimitada por ''' debe escribirse como
            ''''.
          
            Un '"' dentro de una cadena que está
            delimitada por '"' debe escribirse como
            '""'.
          
            Se puede preceder el carácter de comillas con un carácter
            de escape. ('\').
          
            Un ''' dentro de una cadena delimitada
            con '"' no necesita ningún tratamiento
            especial, ni colocarla en forma doble ni precederla con un
            carácter de escape. Lo mismo se cumple para una
            '"' colocada en una cadena delimitada con
            '''.
          
        Las siguientes sentencias SELECT demuestran
        cómo actúan las comillas y los caracteres de escape:
      
mysql> SELECT 'hola', '"hola"', '""hola""', 'hol''a', '\'hola'; +------+--------+----------+-------+-------+ | hola | "hola" | ""hola"" | hol'a | 'hola | +------+--------+----------+-------+-------+ mysql> SELECT "hola", "'hola'", "''hola''", "hol""a", "\"hola"; +------+--------+----------+-------+-------+ | hola | 'hola' | ''hola'' | hol"a | "hola | +------+--------+----------+-------+-------+ mysql> SELECT 'Estas\nSon\nCuatro\nLíneas'; +--------------------+ | Estas Son Cuatro Líneas | +--------------------+ mysql> SELECT 'barra\ desaparece'; +------------------+ | barra desaparece | +------------------+
        Si se pretende insertar datos binarios en una columna de tipo
        cadena (por ejemplo un BLOB), los siguientes
        caracteres deberán representarse con secuencias de escape:
      
| NUL | Byte NUL(ASCII 0). Este carácter se representará
                con '\0' (una barra invertida seguida
                de un carácter ASCII '0'). | 
| \ | Barra invertida (ASCII 92). Este carácter se representará con
                ' \\'. | 
| ' | Comilla simple (ASCII 39). Este carácter se representará con
                ' \''. | 
| " | Comilla doble (ASCII 34). Este carácter se representará con
                ' \"'. | 
Al escribir programas de aplicación, cualquier cadena que pudiese contener cualquiera de estos caracteres especiales deberá ser preparada antes de utilizarse como valor en una sentencia SQL que se enviará al servidor MySQL. Esto puede hacerse de dos maneras:
            Procesando la cadena con una función que reemplace los
            caracteres especiales con una secuencia de escape. Por
            ejemplo, en un programa C, se puede emplear la función de
            la API de C mysql_real_escape_string().
            Consulte Sección 24.2.3.48, “mysql_real_escape_string()”. La
            interfaz DBI de Perl proporciona un método
            quote para convertir caracteres
            especiales a las secuencias de escape equivalentes. Consulte
            Sección 24.4, “La API Perl de MySQL”.
          
Como alternativa al reemplazo explícito de caracteres especiales, varias APIs de MySQL proporcionan la parametrización de consultas, lo que permite insertar marcadores especiales en una consulta y luego asociarles valores al momento de emitirla. En este caso, la API toma a su cargo el reemplazo de caracteres especiales en los valores.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

