CHAR

CHAR
CHAR
是固定最大长度的字符类型,最大长度 255。

选型建议

类型最大长度不足时补空格适用场景
CHAR(N)
CHAR(N)
255否(Lakehouse 不补空格)固定长度编码:国家代码、状态码、固定格式 ID
VARCHAR(N)
VARCHAR(N)
65535有长度上限的变长字段:用户名、邮箱、标题
STRING
STRING
无限制长文本、JSON 字符串、无长度约束的字段

语法

CHAR(N)

其中,

N
N
表示字符类型
CHAR
CHAR
的最大长度,范围为 1 到 255。

示例

  1. 创建一个固定长度为 5 的
    CHAR
    CHAR
    类型:

CREATE TABLE char_t(col CHAR(5));

  1. 不足指定长度时,不补空格:

SELECT length(CAST('abc' AS CHAR(10)));

返回

3
3
,不是
10
10

  1. 插入超出声明长度的字符串时,静默截断:

SELECT CAST('abcdef' AS CHAR(3));

返回

'abc'
'abc'
(截取前 3 个字符,不报错)。

  1. CHAR 比较按实际内容比较:

SELECT CAST('abc' AS CHAR(5)) = CAST('abc' AS CHAR(10));

返回

true
true
——两者均不补空格,实际值都是
'abc'
'abc'
,内容相同。

SELECT 'abc' = 'abc ';

返回

false
false
——比较按实际长度,尾随空格不忽略。

注意事项

  • Lakehouse 的
    CHAR
    CHAR
    不补空格,与标准 SQL 行为不同。
    LENGTH(CAST('abc' AS CHAR(10)))
    LENGTH(CAST('abc' AS CHAR(10)))
    返回
    3
    3
    ,不是
    10
    10
  • 超出声明长度的字符串写入时静默截断,不报错。
    CHAR
    CHAR
    VARCHAR
    VARCHAR
    均如此,写入前需在应用层校验长度。
  • 比较时按实际字符串内容比较,不存在尾随空格忽略逻辑。
  • 根据实际需求合理选择
    CHAR
    CHAR
    VARCHAR
    VARCHAR
    。数据长度固定或变化范围较小时可使用
    CHAR
    CHAR
    ;长度变化较大时使用
    VARCHAR
    VARCHAR
联系我们
预约咨询
微信咨询
电话咨询