Todo caracter de uma string literal tem um conjunto de caracteres e collation, que podem ser nulos.
Um caracter de uma string literal pode ter um introdutor de
conjunto de caracteres opcional e cláusula
COLLATE
:
[_character_set_name]'string' [COLLATE collation_name]
Exemplos:
SELECT 'string'; SELECT _latin1'string'; SELECT _latin1'string' COLLATE latin1_danish_ci;
A instrução simples SELECT 'string'
usa o
conjunto de caracteres da conexão/literal.
A expressão _character_set_name
é
formalmente chamada um introdutor. Ele diz
ao analisador que ``a string que ele vai seguir está no
conjunto de caracteres X
.'' Como isto tem
confundido as pessoas no passado, enfatizamos que um introdutor
não faz qualquer conversão, ele simplesmente um sinal que não
altera o valor da string. Um introdutor também é permitido
antes de uma notação de um literal hexa padrão e um literal
hexa numérico (x'literal'
e
0xnnnn
), e antes de ?
(substituição de parâmetros ao usar intruções preparadas
dentro de uma interface de linguagem de programação).
Exemplos:
SELECT _latin1 x'AABBCC'; SELECT _latin1 0xAABBCC; SELECT _latin1 ?;
O MySQL determina um conjunto de caracteres e collation de literal desta forma:
Se _X
e COLLATE Y
forma especificados então o conjunto de caracteres do
literal é X
e o collation do literal é
Y
Se _X
é especificado mas
COLLATE
não é especificado, então o
conjunto de caracteres do literal é X
e
a collation do literal é a collation padrão do
X
De outra forma, o conjunto de caracteres e collation é o da conexão/literal.
Exemplos:
Uma string com o conjunto de caracteres
latin1
e collation
latin1_german1_ci
.
SELECT _latin1'Müller' COLLATE latin1_german1_ci;
Uma string com conjunto de caracteres
latin1
e e sua collation padrão, isto
é, latin1_swedish_ci
:
SELECT _latin1'Müller';
Uma string com o conjunto de caracteres e a collation da conexão/literal:
SELECT 'Müller';
Introdutores de conjunto de caracteres e a cláusula
COLLATE
são implementados de acordo com as
especificações do padrão SQL.
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.