MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

2 maneiras de obter os conjuntos de caracteres disponíveis no MariaDB


Se você precisar encontrar os conjuntos de caracteres disponíveis em sua instalação do MariaDB, confira os dois métodos a seguir.

O SHOW CHARACTER SET Declaração


O SHOW CHARACTER SET A instrução é uma maneira rápida e fácil de retornar todos os conjuntos de caracteres disponíveis no MariaDB. Você pode usar isso sozinho para retornar todos os agrupamentos ou filtrar os resultados com um LIKE e/ou WHERE cláusula.

Exemplo:
SHOW CHARACTER SET LIKE 'latin%';

Resultado:
+---------+-----------------------------+-------------------+--------+
| Charset | Description                 | Default collation | Maxlen |
+---------+-----------------------------+-------------------+--------+
| latin1  | cp1252 West European        | latin1_swedish_ci |      1 |
| latin2  | ISO 8859-2 Central European | latin2_general_ci |      1 |
| latin5  | ISO 8859-9 Turkish          | latin5_turkish_ci |      1 |
| latin7  | ISO 8859-13 Baltic          | latin7_general_ci |      1 |
+---------+-----------------------------+-------------------+--------+

Nesse caso, reduzi os resultados apenas aos conjuntos de caracteres que começam com latin .

Observe que podemos incluir o LIKE cláusula imediatamente após o SHOW CHARACTER SET texto. Quando fazemos isso, ele indica quais nomes de agrupamento devem ser correspondidos.

Aqui está outro exemplo onde eu uso tanto o WHERE cláusula e o LIKE cláusula, bem como o OR operador:
SHOW CHARACTER SET 
WHERE Maxlen LIKE '3'
OR Description LIKE '%Japanese%';

Resultado:
+---------+---------------------------+---------------------+--------+
| Charset | Description               | Default collation   | Maxlen |
+---------+---------------------------+---------------------+--------+
| ujis    | EUC-JP Japanese           | ujis_japanese_ci    |      3 |
| sjis    | Shift-JIS Japanese        | sjis_japanese_ci    |      2 |
| utf8    | UTF-8 Unicode             | utf8_general_ci     |      3 |
| cp932   | SJIS for Windows Japanese | cp932_japanese_ci   |      2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |      3 |
+---------+---------------------------+---------------------+--------+

O information_schema.CHARACTER_SETS Tabela


O information_schema.CHARACTER_SETS table contém uma lista completa de conjuntos de caracteres suportados no MariaDB. Esta é a mesma lista que SHOW CHARACTER_SETS retorna.

Portanto, podemos consultar esta tabela para retornar os conjuntos de caracteres que queremos retornar. Também podemos restringir as colunas apenas àquelas em que estamos interessados.

Exemplo:
SELECT * 
FROM information_schema.CHARACTER_SETS
WHERE CHARACTER_SET_NAME LIKE 'utf%'
AND MAXLEN = '4';

Resultado:
+--------------------+----------------------+------------------+--------+
| CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION      | MAXLEN |
+--------------------+----------------------+------------------+--------+
| utf8mb4            | utf8mb4_general_ci   | UTF-8 Unicode    |      4 |
| utf16              | utf16_general_ci     | UTF-16 Unicode   |      4 |
| utf16le            | utf16le_general_ci   | UTF-16LE Unicode |      4 |
| utf32              | utf32_general_ci     | UTF-32 Unicode   |      4 |
+--------------------+----------------------+------------------+--------+

Como você pode ver, ele retorna as mesmas colunas que o SHOW CHARACTER SETS declaração retorna.

Dado isso, usa o SQL padrão SELECT declaração, podemos personalizar nossos resultados de várias maneiras. Também podemos reduzir as colunas retornadas, unir a tabela com outras tabelas, etc.

Aqui está um exemplo de redução das colunas retornadas:
SELECT 
    CHARACTER_SET_NAME,
    DESCRIPTION
FROM information_schema.CHARACTER_SETS
WHERE CHARACTER_SET_NAME LIKE 'utf%'
AND MAXLEN = '4';

Resultado:
+--------------------+------------------+
| CHARACTER_SET_NAME | DESCRIPTION      |
+--------------------+------------------+
| utf8mb4            | UTF-8 Unicode    |
| utf16              | UTF-16 Unicode   |
| utf16le            | UTF-16LE Unicode |
| utf32              | UTF-32 Unicode   |
+--------------------+------------------+