Oracle数据库基本数据类型

  • 格式:pdf
  • 大小:6.42 KB
  • 文档页数:2

本文由horoscopec贡献
doc1。
oracle 基本数据类型
数据类型 char(n)
参数 n=1 to 2000 字节
描述 定长字符串,n 字节长,如果不指定长度,缺省 为 1 个字节长(一个汉
字为 2 字节) 可变长的字符串,具体定义时指明最大长度 n, 这种数据类型可以放
数字、字母以及 ASCII 码字 符集(或者 EBCDIC 等数据库系统接受的字符集标 准)中
的所有符号。
varchar2(n) n=1 to 4000 字节 如果数据长度没有达到最大值 n,Oracle 8i 
会 根据数据大小自动调节字段长度, 如果你的数据前后有空格,Oracle 8i 会自动
将 其删去。VARCHAR2 是最常用的数据类型。 可做索引的最大长度 3209。 可变长的
数值列,允许 0、正值及负值,m 是所 有有效数字的位数,n 是小数点以后的位数。
 如:number(5,2),则这个字段的最大值是 99,999,如果数值超出了位数限制就会被
截取多 number(m,n) m=1 to 38 n=-84 to 127 余的位数。 如:number(5,2),但在
一行数据中的这个字段 输入 575.316,则真正保存到字段中的数值是 575.32。 如:
number(3,0),输入 575.316,真正保存的数 据是 575。 从公元前 4712 年 1 月 1
 日到公元 4712 年 12 月 date 无 31 日的所有合法日期, Oracle 8i 其实在内部
是按 7 个字节来保存日期 数据,在定义中还包括小时、分、秒。
缺省格式为 DD-MON-YY,如 07-11 月-00 表示 2000 年 11 月 7 日。 可变长
字符列,最大长度限制是 2GB,用于不需 要作字符串搜索的长串数据,如果要进行字
符搜 long 无 索就要用 varchar2 类型。 long 是一种较老的数据类型,将来会逐渐
被 BLOB、CLOB、NCLOB 等大的对象数据类型所取代。 可变长二进制数据,在具体定
义字段的时候必须 指明最大长度 n,Oracle 8i 用这种格式来保存 raw(n) n=1 to 
2000 较小的图形文件或带格式的文本文件,如 Miceosoft Word 文档。 raw 是一种
较老的数据类型, 将来会逐渐被 BLOB、 CLOB、NCLOB 等大的对象数据类型所取代。
 可变长二进制数据,最大长度是 2GB。Oracle 8i 用这种格式来保存较大的图形文件
或带格式的 文本文件,如 Miceosoft Word 文档,以及音频、 long raw 无 视频等
非文本文件。 在同一张表中不能同时有 long 类型和 long raw 类型,long raw 也
是一种较老的数据类型,将来 会逐渐被 BLOB、CLOB、NCLOB 等大的对象数据类 型所
取代。 三种大型对象(LOB),用来保存较大的图形文件 或带格式的文本文件,如 Mi
ceosoft Word 文档, blob clob nclob 无 以及音频、视频等非文本文件,最大长度
是 4GB。 LOB 有几种类型,取决于你使用的字节的类型, Oracle 8i 实实在在地将
这些数据存储在数据库 内部保存。 可以执行读取、存储、写入等特殊操作。 bfile
 无 在数据库外部保存的大型二进制对象文件,最大
长度是 4GB。 这种外部的 LOB 类型, 通过数据库记录变化情况, 但是数据的
具体保存是在数据库外部进行的。 Oracle 8i 可以读取、查询 BFILE,但是不能写 
入。 大小由操作系统决定。
oracle 数据库中讨论 char ,varchar ,varchar2 数据类型!
这 3 种字符串数据类型是我们使用最多的, 我们在数据库设计时到底该怎么使
用 了? 首先我们先来分析 3 个数据类型的说明: 1。char
CHAR 的长度是固定的,最长 2000 个字符。 2。varchar 和 varchar2 可以肯定
的是 oracle 中目前是可以使用 varchar 数据类型的, 但他们 的区别我查了不少资
料也没有找到一个准确的答案 oracle 中的 varchar 只是 varchar2 的别名也就是同
义词。 其次也有人认为 varchar 是最大长度为 2000 的可变字符串(和 sql serve
r 中的 varchar 一致),而 varchar2 最大长度为 4000。 知道了他们的特点我们就
来讨论下使用区别 1.char 和 varchar、varchar2 由于 varchar 和 varchar2 用途
类似,我们先来讨论 char 和他们的使 用区别: varchar 和 varchar2 比 char 节
省空间,在效率上比 char 会稍微差一些, 即要想获得效率,就必须牺牲一定的空间
,这也就是我们在数据库设计上常说的 最常见的说话是说
‘以空间换效率’。 varchar 和 varchar2 虽然比 char 节省空间,但是如果
一个 varchar 和 varchar2 列经常被修改,而且每次被修改的数据的长度不同,这会

page 1
引起‘行迁 移’(Row Migration)现象,而这造成多余的 I/O,是数据库设计和调整
中要尽 力避免的,在这种情况下用 char 代替 varchar 和 varchar2 会更好一些。
 当然还有一种情况就是象身份证这种长度几乎不变的字段可以考虑使用 char,以获
得更高的效率。 2。varchar 和 varchar2 这里就进入重点了, 前面的区别我们在 
sql server 中我们已经基本了解了, 大家可能都知道,最多也就是复习下,但 ora
cle 增加了一个 varchar2 类型,是 大家以前所没有用到过的。 因为 oracle 保证
在任何版本中该数据类型向上和向下兼容,但不保证 varchar,还有其他数据中一般
都有 varchar 这个数据类型。 所以我得出了以下结论: 如果想在 oracle 新版本的
数据库兼容就不要用 varchar,如果想和 oracle 之外其他数据库兼容就不要用 varc
har2。
ORACLE 中的数据类型分类
ORACLE 中的数据类型不可谓不多,下面把我这两天来的学习体会写一下吧! 1
、字符数据类型:包括我 CHAR,VARCHAR2,LONG。 CHAR 型可以存储字母数字值,这
种数据类型的 列长度可以是 1 到 2000 个字节。如果未指明,则默认其占用一个字
节,如果用户输入的值 小于指定的长度,数据库则用空格填充至固定长度。 VARCHA
R2 型其实就是 VARCHAR,只不过后面多了一个数字 2,VARCHAR2 就是 VARCHAR 的同
义词,也称别名。数据类型大小在 1 至 4000 个字节,但是和 CHAR 不同 的一点是
: 当你定义了 VARCHAR2 长度为 30, 但是你只输入了 10 个字符, 这时 VARCHAR
2 不会像 CHAR 一样填充,在数据库中只有 10 具字节。
LONG 型:此数据类型用来存储可变长度的字符数据,最多能存储 2GB。但是有
一些限制: 一个表中只有一列可以为 LONG 型,LONG 列不能定义为主键或唯一约束
,不能建立索引, 过程或存储过程不能接受 LONG 数据类型的参数。 2、数值数据类
型只有 NUMBER 型,但是 NUMBER 功能不小,它可以存储正数,负数, 零,定点数和
精度为 30 位的浮点数。格式为(P=38,S=0),其中 P 为精度,表示数字的 总位数
,它在 1-38 之间,S 为范围,表示小数点右边的数字的位数,它在-84 至 127 之间
。 3、日期时间数据类型:有 DATE 数据类型,TIMESTAMP 数据类型。 DATE 用于存
储表中的日期和时间数据,ORACLE 使用自己的格式存储日期,使用 7 个字 节固定长
度,每个字节分别存储世纪,年月日,小时,分和秒。日期数据类型的值从公元前 4
712 年 1 月 1 日到公元 9999 年 12 月 31 日。 ORACLE 中的 SYSDATE 函数用于返
回当前的 日期和时间。 TIMESTAMP 数据类型与 DATE 不同的是:它还返回当前的时
区。 4RAW 和 LONG RAW 数据类型 此种数据类型主要用于存储二进制数据。 RAW 用
于存储基于字节的数据,最多能存储 2000 个字节,它没有默认大小,所以在使用 时
要指定大小,可以建立索引。 RAW LONG 用于存储可变长度的二进制数据, 最多能存
储 2GB, 它受的限制和 LONG 类型 一样。 5、LOB 数据类型 LOB 又称为“大对象”
数据类型:主要有 CLOB,BLOB,BFILE,三种子类型。 CLOB 代表(CHARACTER LOB)
,它能够存储大量字符数据,可以存储非结构化的 XML 文档。 BLOG 代表(BINARY 
LOB),它可以存储较大的二进制对象;如图形,音视频剪辑。 BFILE 代表(BINARY
 FILE),它能够将二进制文件存储在数据库外部的操作系统文件中, 注意是二进制
文件,不是一般数据,BFILE 列存储一个 BFILE 定位器,它指向位于服务器 文件系
统上的二进制文件,支持的文件最大为 4GB。不过 ORACLE10 以上的会更大,这还 需
要硬件方面的支持。

page 2