CHAR
CHAR 是固定最大长度的字符类型,最大长度 255。
选型建议
| 类型 | 最大长度 | 不足时补空格 | 适用场景 |
|---|---|---|---|
| 255 | 否(Lakehouse 不补空格) | 固定长度编码:国家代码、状态码、固定格式 ID |
| 65535 | 否 | 有长度上限的变长字段:用户名、邮箱、标题 |
| 无限制 | 否 | 长文本、JSON 字符串、无长度约束的字段 |
语法
其中,
N 表示字符类型 CHAR 的最大长度,范围为 1 到 255。
示例
- 创建一个固定长度为 5 的
类型:CHAR
- 不足指定长度时,不补空格:
返回
3,不是 10。
- 插入超出声明长度的字符串时,静默截断:
返回
'abc'(截取前 3 个字符,不报错)。
- CHAR 比较按实际内容比较:
返回
true——两者均不补空格,实际值都是 'abc',内容相同。
返回
false——比较按实际长度,尾随空格不忽略。
注意事项
- Lakehouse 的
不补空格,与标准 SQL 行为不同。CHAR
返回LENGTH(CAST('abc' AS CHAR(10)))
,不是3
。10 - 超出声明长度的字符串写入时静默截断,不报错。
和CHAR
均如此,写入前需在应用层校验长度。VARCHAR - 比较时按实际字符串内容比较,不存在尾随空格忽略逻辑。
- 根据实际需求合理选择
与CHAR
。数据长度固定或变化范围较小时可使用VARCHAR
;长度变化较大时使用CHAR
。VARCHAR
联系我们
