Um Charset (character set) é um conjunto de símbolos e codificações. Um Collation é um conjunto de regras para comparar caracteres em um conjunto de caracteres (charset).
Exemplos de Charset: latin1, utf8, ascii, binary, geostd8 (mysql> SHOW CHARACTER SET)
Exemplos de Collation: latin1_swedish_ci, utf8_general_ci, ascii_general_ci, binary, geostd8_general_ci (mysql> SHOW COLLATION)
O comando abaixo mostra o Collation de todas as colunas de uma tabela.
Comando:
mysql> SHOW FULL COLUMNS FROM nome_da_tabela;
Exemplo:
mysql> SHOW FULL COLUMNS FROM noticias;
Resultado:
+--------------------+--------------+-------------------+------+-----+
| Field | Type | Collation | Null | Key |
+--------------------+--------------+-------------------+------+-----+
| id_noticia | int(11) | latin1_swedish_ci | NO | PRI |
| titulo_noticia | varchar(255) | latin1_swedish_ci | NO | |
| descricao_noticia | text | latin1_swedish_ci | YES | |
| data_noticia | date | latin1_swedish_ci | NO | |
| ativo_noticia | int(1) | latin1_swedish_ci | NO | |
+--------------------+--------------+-------------------+------+-----+
Para exibir o Charset e o Collation de um banco de dados específico, use o comando abaixo:
USE nome_do_banco_de_dados;
show variables like "character_set_database";
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| character_set_database | utf8 |
+------------------------+-------+
-- ou
show variables like "collation_database";
+--------------------+-----------------+
| Variable_name | Value |
+--------------------+-----------------+
| collation_database | utf8_unicode_ci |
+--------------------+-----------------+
O comando abaixo pode ser utilizado para saber o Charset e o Collation de todas tabelas do servidor:
SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation'
FROM information_schema.SCHEMATA;