Conjunto de Caracteres e Collation de Caracter de String Literal
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
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
.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 MariaDB determina um conjunto de caracteres e collation de literal desta forma:
- Se
_X
eCOLLATE Y
forma especificados então o conjunto de caracteres do literal éX
e o collation do literal éY
- Se
_X
é especificado masCOLLATE
não é especificado, então o conjunto de caracteres do literal éX
e a collation do literal é a collation padrão doX
- De outra forma, o conjunto de caracteres e collation é o da conexão/literal.
Exemplos:
- Uma string com o conjunto de caracteres
latin1
e collationlatin1_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.