O metadados é o dado sobre o dado. Qualquer coisa que descreva os
      bancos de dados, como o opsto de ser o conteúdo do banco de
      dados, é metadados. Assim nomes de colunas, banco de dados,
      usuários, versões e a maioria dos resultados strings de
      SHOW, são metadados.
    
      Todos os metadados devem estar no mesmo conjunto de caracteres.
      (Senão, SHOW não funcionaria corretamente
      devido aos diferentes registros na mesma coluna estarem em
      conjunto de caracteres diferentes). Por outro lado, metadados
      devem incluir todos os caracteres em todas as linguagens (senào
      os usuários não poderiam nomear as colunas e tabelas na suas
      próprias linguagens). Para permitir ambos os objetivos, o MySQL
      armazena metadados em um conjunto de caracteres Unicode, chamado
      UTF8. Isto não causa qualquer rompimento se você nunca usar
      caracteres acentuados. Mas se você fizer, deverá estar ciente
      que o metadado está em UTF8.
    
      Isto significa que funções USER() (e seus
      sinônimos), SESSION_USER() and
      SYSTEM_USER()),
      CURRENT_USER(), e VERSION()
      terá o conjunto de caracteres UTF8 por padrão.
    
      Isto NÃO significa que o cabeçalho das colunas e os resultados
      da função DESCRIBE estarão no conjunto de
      caracteres UTF8 por padrão. (Quando você fizer SELECT
      column1 FROM t o nome column1 será
      retornado do servidor para o cliente no conjunto de caracteres do
      cliente como determinado pela instrução SET
      NAMES.)
    
      Se você quizer que o servidor passe o resultado de volta em um
      conjunto de caracteres não-UTF8, então use SET
      CHARACTER SET para forçar o servidor a converter (see
      Secção 9.3.6, “Conjunto de Caracteres e Collation de Conexão”), ou configurar o cliente
      para fazer a a conversão, mas esta opção não estará
      disponível para muitos clientes até no final no ciclo do produto
      MySQL 4.x.
    
      Se você está apenas usando, por exemplo, a função
      USER() para comparação ou atribuição dentro
      de uma única instrução ... não preocupe. O MySQL fará alguma
      conversão automática para você.
    
SELECT * FROM Table1 WHERE USER() = latin1_column;
      Isto funcionará, porque o conteúdo de
      latin1_column é convertido automaticamente
      para UTF8 antes da comparação.
    
INSERT INTO Table1 (latin1_column) SELECT USER();
      Isto funcionará, porque o contéudo de USER()
      é convertido automaticamente para latin1 antes
      da atribuição. A conversão automática ainda não está
      totalmente implementada, mas deve funcionar corretamente em uma
      versão posterior.
    
Embora a conversão automática não esteja no padrão SQL, o documento do padrão SQL diz que todo conjunto de caracteres é (em termos de caracteres suportados) um ``subconjunto'' do Unicode. Desde que isto seja um princípio bem conhecido que ``o que aplica a um superconjunto pode ser aplicado a um subconjunto'', acreditamos que uma collation para Unicode pode ser aplicado para comparações com strings não -Unicode.
      NATA DA VERSÃO 4.1.1: Os arquivos errmsg.txt
      estarão todos em UTF8 depois deste ponto. Conversão o conjunto
      de caracteres do clientes serão automáticos, como para
      metadados. Também: Podemos alterar o comportamento padrão para
      passar de volta o metadado do resultado em um futuro próximo.
    
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.

