Oracle 数据类型
要使用数据库来存储数据,首先就要知道这个数据库都能存储什么类型的数据。
数据类型是在向数据表中存储数据前必须设定好的,就像如果要使用记事本查看文件内容,那么文件就要是文本的,不能有图片,否则图片是查看不了的,因为记事本中只能查看文本文件。
在 Oracle 11g 中提供的数据类型有 23 种,下面介绍常用的数据类型,并把数据类型分为字符型、数字型、日期类型和其他数据类型 4 类进行讲解。
1. 字符型
字符型在 Oracle 11g 中有 varchar2、char、nchar、nvarchar2 和 long 五种,它们在数据库中是以 ASCII 码的格式存储的。下面用一个表格来讲解每种数据类型的作用。
数据类型 | 取值范围(字节) | 说明 |
---|---|---|
varchar2 | 0 ~ 4000 | 可变长度的字符串 |
nvarchar2 | 0 ~ 1000 | 用来存储 Unicode 字符集的变长字符串型数据 |
char | 0 ~ 2000 | 用于描述定长的字符型数据 |
nchar | 0 ~ 1000 | 用来存储 Unicode 字符集的定长字符型数据 |
long | 0 ~ 2GB | 用来存储变长的字符串 |
2. 数字型
数字型在 Oracle 11g 中常用的有 number 和 float 类型两种,可以用它们来表示整数和小数。
数据类型 | 取值范围 | 说明 |
---|---|---|
number(p, s) | p 最大精度是 38 位(十进制) | p 代表的是精度,s 代表的是保留的小数位数;可以用来存储定长整数和小数 |
float | 用来存储 126 位数据(二进制) | 存储的精度是按二进制计算的。精度范围为二进制的 1~126。在转化为十进制时需要乘以 0.30103 |
3. 日期类型
日期类型在 Oracle 11g 中常用的有 date 和 timestamp 两种类型,可以用它们来存放日期和时间。
数据类型 | 说明 |
---|---|
date | 用来存储日期和时间,范围在公元前 4712 年 1 月 1 日到公园 9999 年 12 月 31 日 |
timestamp | 用来存储日期和时间,与 date 类型的区别就是在显示日期和时间更精确,date 类型的时间精确到秒,而 timestamp 的数据类型可以精确到小数秒。此外,使用 timestamp 存放日期和时间还能够显示当前时上午还是下午 |
4. 其他数据类型
除了上面讲过的字符型、数字型、日期类型之外,在 Oracle 11g 中还有存放大数据的数据类型以及存放二进制文件的数据类型。
数据类型 | 取值范围(字节) | 说明 |
---|---|---|
blob | 最多可以存放 4GB | 存储二进制数据 |
clob | 最多可以存放 4GB | 存储字符串数据 |
bfile | 大小与操作系统有关 | 用来把非结构化的二进制数据存储在数据库以外的操作系统中 |