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ê.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.