sql >> Base de Datos >  >> RDS >> MariaDB

2 formas de obtener los juegos de caracteres disponibles en MariaDB

Si necesita encontrar los conjuntos de caracteres que están disponibles en su instalación de MariaDB, consulte los siguientes dos métodos.

El SHOW CHARACTER SET Declaración

El SHOW CHARACTER SET es una forma rápida y fácil de devolver todos los juegos de caracteres que están disponibles en MariaDB. Puede usar esto por sí mismo para devolver todas las intercalaciones, o filtrar los resultados con LIKE y/o WHERE cláusula.

Ejemplo:

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 |
+---------+-----------------------------+-------------------+--------+

En este caso, reduje los resultados a solo aquellos conjuntos de caracteres que comienzan con latin .

Note que podemos incluir el LIKE cláusula inmediatamente después de SHOW CHARACTER SET texto. Cuando hacemos esto, indica qué nombres de intercalación hacer coincidir.

Aquí hay otro ejemplo en el que uso tanto WHERE cláusula y LIKE cláusula, así como el 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 |
+---------+---------------------------+---------------------+--------+

El information_schema.CHARACTER_SETS Mesa

El information_schema.CHARACTER_SETS La tabla contiene una lista completa de juegos de caracteres admitidos en MariaDB. Esta es la misma lista que SHOW CHARACTER_SETS regresa.

Por lo tanto, podemos consultar esta tabla para devolver los conjuntos de caracteres que queremos devolver. También podemos reducir las columnas a solo aquellas que nos interesan.

Ejemplo:

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 puede ver, devuelve las mismas columnas que SHOW CHARACTER SETS estado de cuenta devuelve.

Dado esto, utiliza el SQL estándar SELECT declaración, podemos personalizar nuestros resultados en un gran número de formas. También podemos reducir las columnas devueltas, unir la tabla con otras tablas, etc.

Aquí hay un ejemplo de cómo reducir las columnas devueltas:

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   |
+--------------------+------------------+