:: DEVELOPER ZONE
Uma string é uma sequência de caracteres, cercada por caracteres de aspas
simples (''') ou duplas ('"') (Se você utiliza o modo ANSI deve
utilizar somente as aspas simples). Exemplos:
'uma string' "outra string"
Em uma string, certas sequências tem um significado especial. Cada uma destas
sequências começam com uma barra invertida ('\'), conhecida como
caracter de escape. O MySQL reconhece a seguinte sequência de escape:
\0
Um caracter ASCII 0 (NUL).
\'
Um caracter de aspas simples (''').
\"
Um caracter de aspas duplas ('"').
\b
Um caracter de backspace.
\n
Um caracter de nova linha.
\r
Um caracter de retorno de carro.
\t
Um caracter de tabulação.
\z
ASCII(26) (Control-Z). Este caracter pode ser codificado para permitir que você
contorne o problema que o ASCII(26) possui comoEND-OF-FILE ou EOF (Fim do arquivo)
no Windows. (ASCII(26) irá causar problemas se você tentar usar
mysql banco_dados < nome_arquivo).
\\
O caracter de barra invertida ('\') character.
\%
Um caracter '%'. Ele pode ser usado para pesquisar por instâncias literais de
'%' em contextos onde '%' deve, de outra maneira, ser interpretado como
um meta caracter. See Secção 6.3.2.1, “Funções de Comparação de Strings”.
\_
Um caracter '_'. Ele é usado para pesquisar por instâncias literais de '_'
em contextos onde '_' deve, de outra maneira, ser intrerpretado como um meta
caracter. See Secção 6.3.2.1, “Funções de Comparação de Strings”.
Note que se você utilizar '\%' ou '\_' em alguns contextos de
strings, eles retornarão as strings '\%' e '\_' e não '%' e
'_'.
Estas são as várias maneiras de incluir aspas com uma string:
Um ''' dentro de uma string com ''' pode ser escrita como ''''.
Um '"' dentro de uma string com '"' pode ser escrita como '""'.
Você pode preceder o caracter de aspas com um caracter de escape ('\').
Um ''' dentro de uma string com '"' não precisa de tratamento especial e
não precisa ser duplicada ou utilizada com caracter de escape. Da mesma maneira,
'"' dentro de uma string com ''' não necessita de tratamento especial.
As instruções SELECT exibidas abaixo demonstram como citações e escapes
funcionam:
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello'; +-------+---------+-----------+--------+--------+ | hello | "hello" | ""hello"" | hel'lo | 'hello | +-------+---------+-----------+--------+--------+ mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello"; +-------+---------+-----------+--------+--------+ | hello | 'hello' | ''hello'' | hel"lo | "hello | +-------+---------+-----------+--------+--------+ mysql> SELECT "This\nIs\nFour\nlines"; +--------------------+ | This Is Four lines | +--------------------+
Se você deseja inserir dados binários em uma coluna BLOB, os caracteres
a seguir devem ser representados por sequências de espace:
NUL
ASCII 0. Você deve representá-lo como '\0' (uma barra invertida e um caractere '0').
\
ASCII 92, barra invertida. Representado como '\\'.
'
ASCII 39, aspas simples. Representado como '\''.
"
ASCII 34, aspas duplas. Representado como '\"'.
Se você escreve código C, você pode utilizar a função da API C mysql_escape_string() para caracteres de escape para a instrução INSERT.
See Secção 12.1.2, “Visão Geral das Função da API C”. No Perl, pode ser
utilizado o método quote do pacote DBI para converter caracteres
especiais para as sequências de escape corretas. See Secção 12.5.2, “A interface DBI”.
Deve ser utilizada uma função de escape em qualquer string que contêm qualquer um dos caracteres especiais listados acima!
Alternativamente, muitas APIs do MySQL fornecem algumas da capacidades de placeholder que permitem que você insira marcadores especiais em um string de consulta e então ligar os valores dos dados a eles quando você executa a consulta. Neste caso, a API inclui, automaticamente, os caracteres especiais de escape nos valores para você.
© 1995-2005 MySQL AB. All rights reserved.
