标准 SQL 将NCHAR
or
定义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.