全面了解DB2数据库中的各数据类型
作者:ibm 来源:ibm (2007-01-31 17:52:19)
DB2内置数据类型可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。还有一种叫做 DATALINK 的特殊数据类型。DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。
数值型数据类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零,就认为符号为正。
*小整型,SMALLINT:小整型是两个字节的整数,精度为 5 位。小整型的范围从 -32,768 到 32,767。
*大整型,INTEGER 或 INT:大整型是四个字节的整数,精度为 10 位。大整型的范围从 -2,147,483,648 到 2,147,483,647。
*巨整型,BIGINT:巨整型是八个字节的整数,精度为 19 位。巨整型的范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
*小数型,DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或 NUM(p,s):小数型的值是一种压缩十进制数,它有一个隐含的小数点。压缩十进制数将以二-十进制编码(binary-coded decimal,BCD)记数法的变体来存储。小数点的位置取决于数字的精度(p)和小数位(s)。小数位是指数字的小数部分的位数,它不可以是负数,也不能大于精度。最大精度是 31 位。小数型的范围从 -10**31+1 到 10**31-1。
*单精度浮点数(Single-precision floating-point),REAL:单精度浮点数是实数的 32 位近似值。数字可以为零,或者在从 -3.402E+38 到 -1.175E-37 或从 1.175E- 37 到 3.402E+38 的范围内。
*双精度浮点数(Double-precision floating- point),DOUBLE,DOUBLE PRECISION 或 FLOAT:双精度浮点数是实数的 64 位近似值。数字可以为零,或者在从 -1.79769E+308 到 -2.225E-307 或从 2.225E-307 到 1.79769E+308 的范围内。
字符串是字节序列。字符串包括 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 字节。
*字符大对象字符串(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)。
日期时间型数据类型包括 DATE、TIME 和 TIMESTAMP。日期时间值可在某些算术和字符串操作中使用,而且兼容某些字符串,但它们既不是字符串,也不是数字。
*DATE:DATE 是一个由三部分组成的值(年、月和日)。年份部分的范围是从 0001 到 9999。月份部分的范围是从 1 到 12。日部分的范围是从 1 到 n,其中 n 的值取决于月份。DATE 列长 10 个字节。
*TIME:TIME 是一个由三部分组成的值(小时、分钟和秒)。小时部分的范围是从 0 到 24。分钟和秒部分的范围都是从 0 到 59。如果小时为 24,分钟和秒的值都是 0。TIME 列长 8 个字节。
*TIMESTAMP:TIMESTAMP 是一个由七部分组成的值(年、月、日、小时、分钟、秒和微秒)。年份部分的范围是从 0001 到 9999。月份部分的范围是从 1 到 12。日部分的范围是从 1 到 n,其中 n 的值取决于月份。小时部分的范围是从 0 到 24。分钟和秒部分的范围都是从 0 到 59。微秒部分的范围是从 000000 到 999999。如果小时是 24,那么分钟值、秒的值和微秒的值都是 0。 TIMESTAMP 列长 26 个字节。日期时间值的字符串表示:尽管 DATE、TIME 和 TIMESTAMP 的值的内部表示对用户是透明的,日期、时间和时间戳记也可以用字符串来表示,CHAR 标量函数(请参阅 SQL 的“词类(parts of speech)”)可以用于创建日期时间值的字符串表示。
*日期值的字符串表示是一个以数字开始,长度不少于 8 个字符的字符串。日期值的月份和日部分中前面的零可以省略。
*时间值的字符串表示是以数字开头,长度不少于 4 个字符的字符串。时间值的小时部分前面的零可以省略,秒部分可以完全省略。如果秒的值没有指定,那么就认为是 0。
*时间戳记值的字符串表示是以数字开头,长度不少于 16 个字符的字符串。完整的时间戳记字符串表示形式为 yyyy-mm-dd- hh.mm.ss.nnnnnn。时间戳记值的月、日或小时等几部分前面的零可以省略,微秒可以截断或完全省略。如果任何时间戳记值的微秒部分尾零被省略掉了,那么将假定空缺的数位上是零。
分享到:
相关推荐
Oracle 与 DB2 数据类型分类对应说明 Oracle 和 DB2 是两个广泛应用的关系数据库管理系统,它们都具有丰富的数据类型,用于存储和管理各种类型的数据。然而,在实际应用中,我们经常需要在 Oracle 和 DB2 之间进行...
### DB2 数据类型详解 #### 一、概述 DB2 是 IBM 开发的一款关系型数据库管理系统,被广泛应用于企业级环境中。为了满足不同场景下的需求,DB2 提供了多种内置的数据类型,主要包括数值型、字符串型、图形字符串型...
Oracle 与 DB2 数据类型的分类对应说明 在数据类型方面,Oracle 和 DB2 都提供了多种数据类型以满足不同的应用需求。然而,这两种数据库管理系统之间的数据类型并不完全相同,本文将对 Oracle 和 DB2 数据类型进行...
### DB2 数据类型详解 #### 一、概述 DB2 是 IBM 开发的一款关系型数据库管理系统,被广泛应用于企业级应用环境中。为了更好地理解和使用 DB2 数据库,本篇文章将详细介绍 DB2 中的各种数据类型及其特点。DB2 的...
Oracle与DB2数据类型的对应说明书 在软件开发和数据库管理中,了解不同的数据库管理系统之间的数据类型对应关系至关重要。作为dba和软件开发人员,了解Oracle和DB2之间的数据类型对应关系是必备的知识。本文将详细...
db2数据类型,详解,java,db2,数据类型
### DB2 数据类型详解 #### 一、概述 在 IBM DB2 数据库系统中,数据类型定义了存储在表中的数据格式以及可以对该数据执行的操作。合理选择数据类型不仅可以提高查询性能,还能节省存储空间。本文将详细介绍 DB2 ...
DB2 数据类型详解 DB2 数据库提供了多种数据类型,包括数值型、字符串型、图形字符串型、日期时间型和特殊的 DATALINK 类型。这些数据类型可以满足不同的应用场景和业务需求。 数值型数据类型 数值型数据类型包括...
### DB2修改表数据类型详解 在DB2数据库系统中,有时我们需要更改现有表中列的数据类型以适应新的业务需求或提高数据处理效率。本文将详细介绍如何在DB2中修改表的数据类型,并通过一个具体的例子来说明整个过程。 ...
DB2数据库是一个强大的关系型数据库管理系统,其内部支持多种数据类型,这些数据类型的设计使得DB2能够处理各种复杂的数据结构和类型。以下是DB2数据库中主要数据类型的详细说明: 1. **数值型数据类型**: - **...
本主题将详细探讨如何将Oracle数据库中的表定义映射到DB2数据库的数据类型。Oracle和DB2作为两种广泛使用的数据库管理系统,它们各自拥有独特的数据类型体系。理解这些映射关系有助于确保数据的一致性和兼容性。 1....
DB2 数据库管理系统支持多种数据类型,用于存储各种不同类型的数据,包括数值、字符串、图形、二进制以及日期和时间。这些数据类型的精确定义和使用是数据库设计的基础,确保了数据的有效存储和处理。 首先,我们来...
本篇文章主要探讨了 Oracle 数据类型与 DB2/400 数据类型的分类对应关系,帮助用户在进行数据迁移、集成或跨平台开发时更好地理解和处理数据类型转换。 1. **日期和时间类型**: - Oracle 的 `DATE` 类型包含年、...
### COBOL与DB2数据类型对应关系详解 #### 一、引言 在使用COBOL编程语言进行开发时,经常会遇到需要与DB2数据库交互的情况。为了确保数据能够准确无误地从数据库传递到程序中,或者从程序传递到数据库中,必须...
### DB2数据库数据类型详解 #### 引言 在DB2数据库系统中,数据类型扮演着至关重要的角色,它们定义了如何存储、处理以及检索数据。深入理解DB2中的各种数据类型,对于优化数据库设计、提升查询性能以及确保数据...
Db2 基本数据类型 Db2 是一种关系数据库管理系统,它提供了多种基本数据类型,用于存储和处理不同的数据形式。这些基本数据类型可以分为字符串类型、数字类型、日期时间类型和二进制类型等。 字符串类型 Db2 提供...
### Oracle和DB2的数据类型比较 #### 一、概述 本文旨在对比Oracle和DB2/400数据库管理系统中的数据类型,并重点分析日期和时间类型的差异。由于Oracle和DB2/400在数据类型的定义和实现上存在差异,因此在进行...
以下是一些关于DB2数据类型的练习题及其相关知识点: 1. 数据类型:正确的DB2数据类型是B. INTERVAL。DB2支持多种数据类型,如INTERVAL用于存储时间间隔,而NUMBER、BYTE和NUM不是DB2的标准数据类型。 2. 变长数据...
1. DB2数据类型 DB2提供了多种数据类型供用户使用,包括数值类型、字符类型、日期和时间类型、大对象类型等。每种数据类型在存储和使用上都有特定的规则和限制。例如,NUMERIC数据类型用于存储精确的数值数据,而...
#### 三、DB2数据类型与表结构设计 - **数据类型**:掌握DB2支持的各种数据类型,如整数类型(INT, SMALLINT)、字符类型(CHAR, VARCHAR)、日期时间类型(DATE, TIMESTAMP)等,并理解其适用场景。 - **表结构设计**:...