XOOPS Brasil

 

Capítulo 9. Conjunto de Caracteres Nacionais e Unicode

Índice

9.1. Conjuntos de Caracteres e Collations em Geral
9.2. Conjunto de Caracteres e Collations no MySQL
9.3. Determinando o Conjunto de Caracteres e Collation Padrões
9.3.1. Conjunto de Caracteres e Collations do Servidor
9.3.2. Conjunto de Caracteres e Collation de Banco de Dados
9.3.3. O Conjunto de Caracteres e Collations de Tabela
9.3.4. Conjunto de Caracteres e Collation de Colunas
9.3.5. Exemplos de Atribuições de Conjuntos de Caracteres e Collation
9.3.6. Conjunto de Caracteres e Collation de Conexão
9.3.7. Conjunto de Caracteres e Collation de Caracter de String Literal
9.3.8. Cláusula COLLATE em Várias Partes de uma Consulta SQL
9.3.9. Precedência da Cláusula COLLATE
9.3.10. Operador BINARY
9.3.11. Alguns Casos Especiais Onde a Determinação da Collation e Trabalhosa
9.3.12. Collations Devem Ser para o Conjunto de Caracteres Certo
9.3.13. Um exemplo do Efeito da Collation
9.4. Operações Afetadas pelo Suporte a Conjunto de Caracteres
9.4.1. Strings de Resultados
9.4.2. CONVERT()
9.4.3. CAST()
9.4.4. SHOW CHARACTER SET
9.4.5. SHOW COLLATION
9.4.6. SHOW CREATE DATABASE
9.4.7. SHOW FULL COLUMNS
9.5. Suporte Unicode
9.6. UTF8 para Metdados
9.7. Compatibilidade com Outros SGBDs
9.8. Novo Formato do Arquivo de Configuração do Conjunto de Caracteres
9.9. Conjunto de Caracteres Nacional
9.10. Atualizando para o MySQL 4.0
9.10.1. Conjunto de Caracteres do MySQL e o Par/Conjunto de Caracter/Collation Correspondente do MySQL 4.1
9.11. Os conjuntos de Caracteres e Collations que o MySQL Suporta
9.11.1. O Conjunto de Caracteres Unicode
9.11.2. Conjunto de Caracteres para Plataformas Específicas
9.11.3. Conjunto de Caracteres do Sul da Europa e Oriente Médio
9.11.4. Os Conjuntos de Caracteres Asiáticos
9.11.5. Os Conjuntos de Caracteres Bálticos
9.11.6. Os Conjuntos de Caracteres Cirílicos
9.11.7. O Conjunto de Caracteres da Europa Central
9.11.8. Os Conjuntos de Caracteres da Europa Ocidental

Melhora do tratamento dos conjuntos de caracteres é um do recursos adicionado ao MySQL na versão 4.1. Este capítulo explica:

  • O que são conjuntos de caracteres e collations

  • O sistema padrão de multi níveis

  • A nova sintaxe no MySQL 4.1

  • Funções e operações afetadas

  • O signifcado individual de cada conjunto de caracter e collation

Os recursos descritos aqui estão como implementados no MySQL 4.1.1. (MySQL 4.1.0 possui alguns, mas não todos destes recuros, e alguns deles estão implementados de forma diferente.)

9.1. Conjuntos de Caracteres e Collations em Geral

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.