DB2字符类型简介

本文介绍了DB2数据库中字符类型的分类及其最大长度限制,包括字符类型(如CHAR、VARCHAR)、双字节graphic类型(如GRAPHIC、VARGRAPHIC)和二进制类型(如BLOB)。此外还详细解释了每种类型的具体用途。
部署运行你感兴趣的模型镜像

DB2字符类型

DB2字符类型包括三个类型:

1、字符类型,字符类型有包括char、varchar、clob三种。

2、双字节graphic类型,包括graphic、vargraphic、dbclob三种。

3、二进制类型,包括blog


注意:这里只涉及到DB2 for luw,不包括iSeries,和zSeries。

数据类型 最大长度
----------------- -----------------------
char 254字节
varchar 32672字节
long varchar 32700字节
clob 2147483647字节
graphic 127字符
vargraphic 16336字符
dbclob 1073741823字符
blob 2147483647字节
------------------ ------------------------

下面是51CTO网站上翻译,详细信息,请参照DB2官网。

字符串是字节序列。

字符串包括定长字符串: CHAR(n) 类型, 变长字符串:VARCHAR(n)、LONG VARCHAR 或 CLOB(n) 类型。

字符串的长度就是序列中的字节数。


*定长字符串,CHARACTER(n) 或 CHAR(n):定长字符串的长度介于 1 到 254 字节之间。

如果没有指定长度,那么就认为是 1 个字节。


*变长字符串,VARCHAR(n)、CHARACTER VARYING(n) 或 CHAR VARYING(n):VARCHAR(n) 类型的字符串是变长字符串,最长可达 32,672 字节。


*LONG VARCHAR:LONG VARCHAR 类型的字符串是变长字符串,最长可达 32,700 字节(LUW only)。


*字符大对象字符串(Character Large Object String),CLOB(n[K|M|G]):CLOB 是变长字符串,最长可以达到 2,147,483,647 字节。

如果只指定了 n,那么 n 的值就是最大长度。如果指定了 nK,那么最大长度就是 n*1,024(n 的最大值为 2,097,152)。

如果指定了 nM,那么最大长度就是 n*1,048,576(n 的最大值为 2,048)。

如果指定了 nG,那么最大长度就是 n*1,073,741,824(n 的最大值是 2)。

CLOB 用于存储基于大单字节字符集(single-byte character set,SBCS)字符的数据,或基于混合(多字节字符集(MBCS)和 SBCS)字符的数据。

图形字符串是表示双字节字符数据的字节序列。

图形字符串包括类型为 GRAPHIC(n) 的定长图形字符串和类型为 VARGRAPHIC(n)、LONG VARGRAPHIC 和 DBCLOB(n) 的变长图形字符串。

字符串的长度就是序列中双字节字符的数目。


*定长图形字符串,GRAPHIC(n):定长图形字符串的长度介于 1 到 127 个双字节字符之间。

如果没有指定长度,就认为是 1 个双字节字符。


*变长图形字符串,VARGRAPHIC(n):VARGRAPHIC(n) 类型的字符串是变长图形字符串,最大长度可达 16,336 个双字节字符。


*LONG VARGRAPHIC:LONG VARGRAPHIC 类型的字符串是变长图形字符串,最大长度可达 16,350 个双字节字符。


*双字节字符大对象字符串,DBCLOB(n[K|M|G]):双字节字符大对象是变长双字节字符图形字符串,最长可达 1,073,741,823 个字符。

如果只指定了 n,那么 n 就是最大长度。如果指定了 nK,那么最大长度就是 n*1,024(n 的最大值为 1,048,576)。

如果指定了 nM,那么最大长度就是 n*1,048,576(n 的最大值为 1,024)。

如果指定了 nG,那么最大长度就是 n*1,073,741,824(n 的最大值是 1)。

DBCLOB 用于存储基于大 DBCS(双字节字符集,double-byte character set)字符的数据。

二进制字符串是字节序列。二进制字符串包括 BLOB(n) 类型的变长字符串,它用于容纳非传统型的数据,诸如图片、语音或混合媒体等,

还可以容纳用户定义的类型及用户定义的函数的结构化数据。


* 二进制大对象,BLOB(n[K|M|G]):二进制大对象是变长字符串,最长可达 2,147,483,647 字节。

如果只指定了 n,那么 n 就是最大长度。如果指定了 nK,那么最大长度就是 n*1,024(n 的最大值为 2,097,152)。

如果指定了 nM,那么最大长度就是 n*1,048,576(n 的最大值为 2,048)。

如果指定了 nG,那么最大长度就是 n*1,073,741,824(n 的最大值是 2)。


DB2 V9.7信息中心
--the end--

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think>我们正在讨论DB2 SQL中的字符串数据类型。根据引用[1]和引用[2],DB2内置数据类型包括字符串型(character string)和图形字符串(graphic string)。引用[3]还提到了一些具体类型和转换函数。 具体来说,字符串型(character string)包括: 1. CHAR:定长字符串,长度为1到255字节。 2. VARCHAR:变长字符串,长度为1到32672字节。 图形字符串(graphic string)用于存储双字节字符(如Unicode),包括: 1. GRAPHIC:定长图形字符串,长度为1到127个双字节字符(即最多254字节)。 2. VARGRAPHIC:变长图形字符串,长度为1到16336个双字节字符(即最多32672字节)。 此外,引用[3]还提到了二进制字符串型(binary string),但这不是字符串类型,而是用于存储二进制数据。 所以,DB2 SQL中用于表示字符串类型的数据类型主要有:CHAR, VARCHAR, GRAPHIC, VARGRAPHIC。 注意:在DB2中,字符串类型还可以包括大对象类型(CLOB和DBCLOB),但用户问题中明确是“字符串类型”,通常我们指的是上述的短字符串类型。不过,为了全面性,我们也可以提一下大对象类型中的字符串类型: - CLOB:字符大对象,用于存储大文本数据(单字节字符集)。 - DBCLOB:双字节字符大对象,用于存储大文本数据(双字节字符集)。 但根据引用[1]和[2]的分类,大对象类型(CLOB和DBCLOB)属于字符串型(character string)和图形字符串(graphic string)的扩展。不过,用户问题可能更关注基本字符串类型。 因此,回答将主要聚焦在基本字符串类型:CHAR, VARCHAR, GRAPHIC, VARGRAPHIC。 同时,引用[3]还提供了一些转换函数和日期时间转换的示例,但用户问题仅询问字符串数据类型,因此我们不需要深入讨论这些函数。 现在,根据上述信息,我们可以组织回答如下:</think>### DB2 SQL 字符串数据类型详解 在 DB2 数据库中,字符串数据类型主要分为两类:**字符型字符串**和**图形字符串**。以下是具体类型及特性: #### 一、字符型字符串(Character String) 1. **`CHAR(n)`** - 定长字符串类型 - 长度范围:`1-255`字节 - 示例:`CHAR(10)` 始终占用 10 字节,不足部分用空格填充 - 转换为字符形态:`char(current date)`[^3] 2. **`VARCHAR(n)`** - 变长字符串类型 - 长度范围:`1-32,672`字节 - 示例:`VARCHAR(100)` 实际存储长度根据数据动态变化 - 转换为字符形态:`char(current time)`[^3] #### 二、图形字符串(Graphic String) 用于存储双字节字符(如 Unicode): 1. **`GRAPHIC(n)`** - 定长图形字符串 - 存储单位:双字节字符 - 长度范围:`1-127`个字符(即 `2-254`字节) 2. **`VARGRAPHIC(n)`** - 变长图形字符串 - 长度范围:`1-16,336`个双字节字符(即 `2-32,672`字节) #### 三、其他相关类型 1. **二进制字符串(Binary String)** - 非文本型数据:`BINARY(n)`, `VARBINARY(n)` - 适用于存储原始字节数据(如图片、加密数据) 2. **大对象类型(LOB)** - 超大文本存储: - `CLOB`(字符大对象) - `DBCLOB`(双字节字符大对象) #### 类型转换示例 ```sql -- 字符串转日期/时间 SELECT TIMESTAMP('2023-10-20 12:00:00'), DATE('10/20/2023'); -- 日期转字符串 SELECT CHAR(CURRENT DATE), CHAR(CURRENT TIME); [^3] ``` > **关键区别**: > - `CHAR`/`GRAPHIC` 固定长度,存储效率高但可能浪费空间 > - `VARCHAR`/`VARGRAPHIC` 动态长度,节省空间但有轻微性能开销 > - 图形字符串专为双字节字符集设计(如中文、日文)[^1][^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值