Conjuntos de caracteres MySQL

Resumo : neste tutorial, exploraremos os conjuntos de caracteres do MySQL e sua importância na forma como o MySQL armazena dados de texto.

No MySQL, o conjunto de caracteres e o agrupamento são conceitos essenciais que definem como os dados são armazenados e classificados em colunas de texto.

Compreender conjuntos de caracteres e agrupamentos é crucial para projetar bancos de dados que possam lidar com diferentes idiomas e requisitos de texto.

Introdução aos conjuntos de caracteres MySQL

Um conjunto de caracteres é uma coleção de caracteres com uma codificação exclusiva. Ele define o conjunto de caracteres que podem ser usados ​​em uma coluna de texto, como letras, números, símbolos e caracteres especiais.

O MySQL suporta vários conjuntos de caracteres, e a escolha do conjunto de caracteres determina o intervalo de caracteres que pode ser armazenado em uma coluna.

Conjuntos de caracteres comuns incluem utf8, utf8mb4, latin1, utf16e muitos outros. Para listar todos os conjuntos de caracteres no servidor MySQL atual, use a seguinte instrução:

SHOW CHARACTER SET;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a saída parcial:

+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 |
| ascii    | US ASCII                        | ascii_general_ci    |      1 |
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| binary   | Binary pseudo charset           | binary              |      1 |
...Linguagem de código:  PHP  ( php )

A Maxlencoluna especifica o número de bytes que um caractere em um conjunto de caracteres contém.

Alguns conjuntos de caracteres contêm caracteres de byte único, por exemplo, latin1, latin2, cp850, etc., enquanto outros conjuntos de caracteres contêm caracteres de múltiplos bytes.

Os conjuntos de caracteres padrão são utf8mb4utf8mb4_0900_ai_ci. No entanto, você pode alterá-los de acordo.

Convertendo entre diferentes conjuntos de caracteres

O MySQL fornece duas funções que permitem converter strings entre diferentes conjuntos de caracteres: CONVERTe CAST.

A sintaxe da CONVERTfunção é a seguinte:

CONVERT(expression USING character_set_name)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A CASTfunção é semelhante à CONVERTfunção. Ele converte uma string em um conjunto de caracteres diferente:

CAST(string AS character_type CHARACTER SET character_set_name)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Dê uma olhada no seguinte exemplo de uso da CASTfunção:

SELECT CAST(_latin1'MySQL character set' AS CHAR CHARACTER SET utf8);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Configurando conjuntos de caracteres para conexões de cliente

Para configurar um conjunto de caracteres para uma conexão de cliente, você pode fazer uma das seguintes maneiras:

1) Usando a instrução SET NAMES

Emita a SET NAME  instrução após o cliente se conectar ao servidor de banco de dados MySQL. Por exemplo, para definir um conjunto de caracteres Unicode utf8mb4, use a seguinte instrução:

SET NAMES 'utf8mb4';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

2) Usando a opção –default-character-set

Se o aplicativo suportar a --default-character-set  opção, você poderá usá-la para definir o conjunto de caracteres.

Por exemplo, a ferramenta cliente mysql suporta --default-character-seta opção e você pode configurá-la no arquivo de configuração da seguinte maneira:

[mysql]
default-character-set=utf8mb4Linguagem de código:  texto simples  ( texto simples )

3) Usando o charset em strings de conexão

Alguns conectores MySQL permitem especificar um conjunto de caracteres. Por exemplo, se você usar PHP PDO , poderá definir o conjunto de caracteres no nome da fonte de dados da seguinte maneira:

$dsn ="mysql:host=$host;dbname=$db;charset=utf8mb4";Linguagem de código:  PHP  ( php )

Independentemente da forma como você o utiliza, certifique-se de que o conjunto de caracteres usado pelo aplicativo corresponda ao conjunto de caracteres armazenado no servidor de banco de dados MySQL.

Resumo

  • Os conjuntos de caracteres definem como o MySQL armazena dados em colunas de texto.
  • Use a SHOW CHARACTER SETinstrução para listar todos os conjuntos de caracteres.
  • Use a função CONVERT()ou CAST()para converter entre conjuntos de caracteres.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *