Documentation Home

10.3.7 国家字符集

标准 SQL 将NCHARor 定义NATIONAL CHAR为一种指示CHAR列应使用某些预定义字符集的方法。MySQL 使用 utf8这个预定义的字符集。例如,这些数据类型声明是等效的:

CHAR(10) CHARACTER SET utf8
NATIONAL CHARACTER(10)
NCHAR(10)

这些也是:

VARCHAR(10) CHARACTER SET utf8
NATIONAL VARCHAR(10)
NVARCHAR(10)
NCHAR VARCHAR(10)
NATIONAL CHARACTER VARYING(10)
NATIONAL CHAR VARYING(10)

您可以使用 (或 ) 在国家字符集中创建一个字符串。这些语句是等价的: N'literal'n'literal'

SELECT N'some text';
SELECT n'some text';
SELECT _utf8'some text';

MySQL 8.0 将国家字符集解释为 utf8mb3,现已弃用。因此,使用 NATIONAL CHARACTER或其同义词之一来定义数据库、表或列的字符集会引发类似于此的警告:

NATIONAL/NCHAR/NVARCHAR implies the character set UTF8MB3, which will be
replaced by UTF8MB4 in a future release. Please consider using CHAR(x) CHARACTER
SET UTF8MB4 in order to be unambiguous.