获取 MariaDB 中可用的字符集的 2 种方法
如果您需要查找 MariaDB 安装中可用的字符集,请查看以下两种方法。
声明SHOW CHARACTER SET
语句是返回 MariaDB 中可用的所有字符集的快速简便方法。您可以单独使用它来返回所有排序规则,或使用 aand/orclause 过滤结果。SHOW CHARACTER SETLIKEWHERE
例:
SHOW CHARACTER SET LIKE 'latin%';
结果:
+———+—————————–+——————-+——–+ | 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 | +———+—————————–+——————-+——–+
在本例中,我将结果缩小到仅以开头的字符集。latin
请注意,我们可以在文本之后立即包含子句。当我们这样做时,它会指示要匹配的排序规则名称。LIKE``SHOW CHARACTER SET
这是另一个示例,其中我同时使用子句和子句,以及运算符:WHERE``LIKE``OR
SHOW CHARACTER SET
WHERE Maxlen LIKE '3'
OR Description LIKE '%Japanese%';
结果:
+———+—————————+———————+——–+ | 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 | +———+—————————+———————+——–+
该表information_schema.CHARACTER_SETS
该表包含 MariaDB 中支持的字符集的完整列表。这是返回的相同列表。information_schema.CHARACTER_SETS``SHOW CHARACTER_SETS
因此,我们可以查询此表以返回我们要返回的字符集。我们还可以将列缩小到我们感兴趣的列。
例:
SELECT *
FROM information_schema.CHARACTER_SETS
WHERE CHARACTER_SET_NAME LIKE 'utf%'
AND MAXLEN = '4';
结果:
+——————–+———————-+——————+——–+ | 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 | +——————–+———————-+——————+——–+
如您所见,它返回的列与语句返回的列相同。SHOW CHARACTER SETS
鉴于这使用标准的SQLSELECT语句,我们可以通过多种方式自定义我们的结果。我们还可以减少返回的列,将表与其他表联接等。
下面是减少返回的列的示例:
SELECT
CHARACTER_SET_NAME,
DESCRIPTION
FROM information_schema.CHARACTER_SETS
WHERE CHARACTER_SET_NAME LIKE 'utf%'
AND MAXLEN = '4';
结果:
+——————–+——————+ | CHARACTER_SET_NAME | DESCRIPTION | +——————–+——————+ | utf8mb4 | UTF-8 Unicode | | utf16 | UTF-16 Unicode | | utf16le | UTF-16LE Unicode | | utf32 | UTF-32 Unicode | +——————–+——————+