字符类型 - AWS Clean Rooms

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

字符类型

字符数据类型包括 CHAR(字符)和 VARCHAR(字符变体)。

存储和范围

CHAR 和 VARCHAR 数据类型是按照字节而不是字符来定义的。CHAR 列只能包含单字节字符,因此 CHAR(10) 列可包含最大长度为 10 字节的字符串。VARCHAR 可包含多字节字符,并且每个字符最多可以有 4 个字节。例如,VARCHAR(12) 列可包含 12 个单字节字符、6 个双字节字符、4 个三字节字符或 3 个四字节字符。

名称 存储 范围(列宽度)
CHAR 或 CHARACTER 字符串的长度,包括尾部空格(如有) 4096 字节
VARCHAR 或 CHARACTER VARYING 4 字节 + 字符的总字节,其中每个字符可为 1 至 4 个字节。 65535 字节 (64K -1)
主题

    CHAR 或 CHARACTER

    使用 CHAR 或 CHARACTER 列存储固定长度字符串。这些字符串将使用空格填补,因此 CHAR(10) 列始终占用 10 字节的存储。

    char(10)

    未指定长度的 CHAR 列将生成 CHAR(1) 列。

    VARCHAR 或 CHARACTER VARYING

    使用 VARCHAR 或 CHARACTER VARYING 列存储具有固定限制的可变长度字符串。这些字符串不会使用空格填补,因此 VARCHAR(120) 列最多包含 120 个单字节字符、60 个双字节字符、40 个三字节字符或 30 个四字节字符。

    varchar(120)

    尾部空格的意义

    CHAR 和 VARCHAR 数据类型存储长度最多为 n 字节的字符串。尝试将更长的字符串存储到这些类型的列中将导致错误。但是,如果额外的字符全为空格,则字符串将截断至最大长度。如果字符串短于最大长度,CHAR 值将使用空格填补,但 VARCHAR 值将存储不带空格的字符串。

    CHAR 值中的尾部空格始终无语义意义。当比较两个 CHAR 值时将忽视尾部空格,而不将其包含在 LENGTH 计算中,在将 CHAR 值转换为其他字符串类型时将删除尾部空格。

    VARCHAR 和 CHAR 值中的尾部空格将在比较值时视为无语义意义。

    长度计算将返回 VARCHAR 字符串的包含尾部空格在内的长度。尾部空格不会计入固定长度字符串的长度中。