Um conjunto de caracters é um conjunto de simbolos e códigos. Uma collation é um conjunto de regras para comparação de caracteres em um conjunto de caracteres. Vamos deixar a distinção clara com um exemplo de um conjunto de caracteres imaginário.
Suponha que temos um alfabeto com quatro letras:
‘A
’,
‘B
’,
‘a
’,
‘b
’. Damos um número a cada letra:
‘A
’ = 0,
‘B
’ = 1,
‘a
’ = 2,
‘c
’ = 3. A letra
‘A
’ é o símbolo, o número 0 é o
código para
‘A
’, e a combinação de todas as
quatro letra e seus códigos é um conjunto
de caracteres.
Agora suponha que desejamos comparar dusa strings,
‘A
’ e
‘B
’. O modo mais simples de se
fazer isto é olhar o código --- 0 para
‘A
’ e 1 para
‘B
’ --- e como 0 é menor que 1,
dezemos que ‘A
’ é menor que
‘B
’. Agora, o que fizemos foi
apenas aplicar um collation a nosso conjunto de caracteres. A
collation é um conjunto de regras (apenas um regra neste caso):
``compara os códigos''. Chamamos isto a mais simples de todas as
collations possíveis como um collation
binária
.
Mas e se você dissesse que letras mínusculas e maiúsculas são
equivalentes? Então haveriam pelo menos duas regras: (1) tratar
as letras minúsculas ‘a
’ e
‘b
’ como equivalentes a
‘A
’ e
‘B
’; (2) e então comparar os
códigos. Chamamos isto de collation caso
insensitivo. É um pouco mais complexo do que collation
binária.
Na vida real, a maioria dos conjuntos de caracteres possuem muitos
caracteres: não apenas ‘A
’ e
‘B
’ mas todo o alfabeto, algumas
vezes alfabetos múltiplos ou sistemas de escritas ocidentais com
milhares de caracteres, junto com muitos símbolos especiais e
sinais de pontuação. Em geral as collations também possuem
diversas regras: não apenas caso insensitivo mas acentos
insensitivos e mapeamento de múltiplos caracteres (como a regra
de que ‘Ö
’ =
'OE
' em uma das duas collations alemãs).
O MySQL 4.1 pode fazer as seguintes coisas para você:
Armazena a string usando um variedade de conjunto de caracteres
Compara strings usando uma variedade de collations
Mistura strings com diferentes conjuntos de caracteres ou collations no mesmo servidor, o mesmo banco de dados ou a mesma tabela
Permite a especificação de conjunto de caracteres e collations em qualquer nível
A este respeito, o MySQL 4.1 não só é mais flexível que o MySQL 4.0, mas também está bem a frente de outros SGBDs. No entanto, para usar os novos recursos efetivamente, você precisará aprender quais conjuntos de caracteres e collations estão disponíveis, como alterar os seus padrões e o que os vários operadores de string fazem como ele.
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.