Oracle 数据类型
要使用数据库来存储数据,首先就要知道这个数据库都能存储什么类型的数据。
数据类型是在向数据表中存储数据前必须设定好的,就像如果要使用记事本查看文件内容,那么文件就要是文本的,不能有图片,否则图片是查看不了的,因为记事本中只能查看文本文件。
在 Oracle 11g 中提供的数据类型有 23 种,下面介绍常用的数据类型。
1. 字符型
字符型在 Oracle 11g 中有 varchar2、char、nchar、nvarchar2 和 long 五种,它们在数据库中是以 ASCII 码的格式存储的。
数据类型 | 说明 |
---|---|
CHAR(n) | 存储固定长度的字符串,长度以字节为单位,默认和最小字符数为 1,最大字符数为 2000 |
VARCHAR2(n) | 存储可变长度的字符串,长度以字节为单位,最小字符数是 1,最大字符数是 4000 |
2. 数字型
数字型在 Oracle 11g 中常用的有 number 和 float 类型两种,可以用它们来表示整数和小数。
数据类型 | 说明 |
---|---|
NUMBER(p, s) | 可以存储 0、正数和负数。p 表示数值的总位数(精度),取值范围为 1~38;s 表示刻度,取值为−84~127 |
3. 日期类型
日期类型在 Oracle 11g 中常用的有 date 和 timestamp 两种类型,可以用它们来存放日期和时间。
数据类型 | 说明 |
---|---|
DATE | 用于存储日期和时间。可以存储的日期范围为公元前 4712 年 1 月 1 日到公元后 9999 年 12 月 31 日,占据 7 字节的空间,由世纪、年、月、日、时、分、秒组成 |
TIMESTAMP(n) | 表示时间戳,是 DATE 数据类型的扩展,允许存储小数形式的秒值。p 表示秒的小数位数,取值范围为 0~9,默认值为 6 |
4. 其他数据类型
除了上面讲过的字符型、数字型、日期类型之外,在 Oracle 11g 中还有存放大数据的数据类型以及存放二进制文件的数据类型。
数据类型 | 取值范围(字节) | 说明 |
---|---|---|
CLOB | 用于存储单字节或多字节的大型字符串对象,支持使用数据库字符集的定长或变长字符。在 Oracle 11g 中 CLOB 类型最大存储容量为 128TB | |
BLOB | 用于存储大型的、未被结构化的变长的二进制数据(如二进制文件、图片文件、音频和视频等非文本文件)。在 Oracle 11g 中 BLOB 类型最大存储容量为 128TB | |
BFILE | 用于存储指向二进制格式文件的定位器,该二进制文件保存在数据库外部的操作系统中。在 Oracle 11g 中 BFILE 文件最大容量为 128TB,不能通过数据库操作修改 BFILE 定位器所指向的文件 | |
RAW(n) | 用于存储变长的二进制数据,n 表示数据长度,取值范围为 1~2000 字节 | |
LONG RAW | 用于存储变长的二进制数据,最大存储数据量为 2GB。Oracle 建议使用 BLOB 类型代替 LONG RAW 类型 | |
ROWID | 行标识符,表示表中行的物理地址的伪列类型 |