

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

# 字符类型
<a name="Character_types"></a>

字符数据类型包括 CHAR（字符）和 VARCHAR（字符变体）。

**Topics**
+ [CHAR 或 CHARACTER](Character_types-char-or-character.md)
+ [VARCHAR 或 CHARACTER VARYING](Character_types-varchar-or-character-varying.md)
+ [尾部空格的意义](#Character_types-significance-of-trailing-blanks)

# CHAR 或 CHARACTER
<a name="Character_types-char-or-character"></a>

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

```
char(10)
```

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

CHAR 和 VARCHAR 数据类型是按照字节而不是字符来定义的。CHAR 列只能包含单字节字符，因此 CHAR(10) 列可包含最大长度为 10 字节的字符串。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/clean-rooms/latest/sql-reference/Character_types-char-or-character.html)

# VARCHAR 或 CHARACTER VARYING
<a name="Character_types-varchar-or-character-varying"></a>

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

```
varchar(120)
```

VARCHAR 数据类型是根据字节而不是字符来定义的。VARCHAR 可包含多字节字符，并且每个字符最多可以有 4 个字节。例如，VARCHAR(12) 列可包含 12 个单字节字符、6 个双字节字符、4 个三字节字符或 3 个四字节字符。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/clean-rooms/latest/sql-reference/Character_types-varchar-or-character-varying.html)

## 尾部空格的意义
<a name="Character_types-significance-of-trailing-blanks"></a>

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

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

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

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