选择一个正确的数据类型,这看上去再容易不过了,但我们屡屡见到选择不当的情况。要选择什么类型来存储你的数据,这是一个最基本的决定,而且这个决定会在以后的数年间影响着你的应用和数据。因此选择适当的数据类型至关重要,而且很难事后再做改变,也就是说,一旦选择某些类型实现了应用,在相当长的时间内就只能“忍耐”,因为你选择的类型可能不太合适。

上面这段话来自 Thomas Kyte(Oracle公司核心技术集团副总裁)的——《Oracle Database 9i/10g/11g编程艺术》。我对这段话描述的情况感同身受,因此引用了过来。本文第二节内容来自该书第 12 章第一节——《Oracle 数据类型概述》,有删改。

Oracle 数据类型概述

Oracle 提供了 22 种不同的 SQL 数据类型供我们使用,分别如下:

  • CHAR:这是一种定长字符串,会用空格填充来达到其最大长度。非 null 的 CHAR(10) 总是包含 10 字节信息,使用默认 NLS 设置,CHAR 最多可以存储 2000 字节的信息。

  • NCHAR:这是一种包含 UNICODE 格式数据的定长字符串。有了 NCHAR 类型,就允许数据库中包含采用两种不同字符集的数据:使用数据库字符集的 CHAR 类型和使用国家字符集的 NCHAR 类型。非 null 的 NCHAR(10) 总是包含 10 个字符的信息,NCHAR 最多可以存储 2000 字节的信息。

  • VARCHAR2:目前这也是 VARCHAR 的同义词。这是一种变长字符串,与 CHAR 类型不同,它不会用空格填充至最大长度。VARCHAR2(10) 可能包含 0~10 字节的信息,使用默认 NLS 设置,VARCHAR2 最多可以存储 4000 字节的信息。

  • NVARCHAR2:这是一种包含 UNICODE 格式数据的变长字符串。NVARCHAR2(10) 可以包含 0~10 个字符的信息,NVARCHAR2 最多可以存储 4000 字节的信息。

  • RAW:这是一种变长的二进制数据类型,采用这种数据类型存储的数据不会发生字符集转换。可以把它看作是由数据库存储的信息的二进制字节串。RAW 最多可以存储 2000 字节的信息。

  • NUMBER:这种数据类型能存储精度多达 38 位的数字。这些数介于 1.0 * 10-130 至 1.0 * 10 126(不含)之间。每个数存储在一个变长字段中,其长度在 0(尾部的 NULL 列就是 0 字节)~22字节之间。Ora

    网友评论