---
title: "字符类型 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 字符类型 ​字符类型将数字、字母等字符以字符串的形式存储。本节主要介绍最常用的字符数据类型，包括 CHAR 和 VARCHAR 类型以及 BINARY 和 VARBINARY 类型。 CHAR 和 VARCHAR 类型 CHAR 和 VARCHAR 类型是相似的，他们的区别在于存储和取回的方式不同以及对末尾空格的处理…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# 字符类型

更新时间：2026-02-26 08:38:31

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/100.oceanbase-database-concepts/400.database-objects/200.database-objects-of-mysql-mode/200.table-of-mysql-mode/200.data-type-of-mysql-mode/400.string-data-type-of-mysql-mode.md)  

​字符类型将数字、字母等字符以字符串的形式存储。本节主要介绍最常用的字符数据类型，包括 CHAR 和 VARCHAR 类型以及 BINARY 和 VARBINARY 类型。

## CHAR 和 VARCHAR 类型

`CHAR` 和 `VARCHAR` 类型是相似的，他们的区别在于存储和取回的方式不同以及对末尾空格的处理方式不同。

`CHAR` 和 `VARCHAR` 类型都可以指定最大长度。例如 `CHAR(30)` 最多存储 30 个字符。

`CHAR` 类型的列可以指定的长度范围是 0~256，`CHAR` 类型是将写入的值末尾连续空格去掉后进行存储的，当取回时，如果 `PAD_CHAR_TO_FULL_LENGTH` SQL 模式是开启状态，会将取回的值用空格填充到最大长度。

`VARCHAR` 类型的列可以指定的长度范围是 0~262144，有效的最大长度为 262144 个字节。

对 `CHAR` 和 `VARCHAR` 类型，如果插入的数据长度超过了最大长度，当 `sql_mode` 包含`STRICT_TRANS_TABLES` 的设置时报错，当不包含该设置时会自动截取到最大长度并报警告。

在存储 `VARCHAR` 和 `CHAR` 类型时，比较方法是根据字符序的设置。

## BINARY 和 VARBINARY 类型

`BINARY` 和 `VARBINARY` 类型与 `CHAR` 和 `VARCHAR` 类型相似，区别在于他们存储的是二进制数据。

`BINARY` 和 `VARBINARY` 类型的最大长度与 `CHAR` 和 `VARCHAR` 类型一样，不同的是它们的长度是按字节长度计算。

当存储 `BINARY` 类型时，待存储的值会在右侧补充 0x00（即 '\0'）到最长长度。

当开启严格模式时，插入超过最大长度会报错。当开启非严格模式时会进行截断并报出警告。

`BINARY` 类型的比较是会显式比较末尾的空字节的，0x00 与空格不同，0x00 排序会排在空格之前。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
