1、字符数据类型:包括CHAR,VARCHAR2,LONG。
CHAR型 可以存储字母数字值或字节,这种数据类型的:CHAR(<size>)
列长度可以是1到2000个字节。如果未指明,则默认其占用一个字节,如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。
VARCHAR2型其实就是VARCHAR,只不过后面多了一个数字2,VARCHAR2就是VARCHAR的同义词,也称别名。数据类型大小在1至4000个字节,
但是和CHAR不同的一点是:当你定义了VARCHAR2长度为30,但是你只输入了10个字符,这时VARCHAR2不会像CHAR一样填充,在数据库中只有10具字节。
NCHAR(<size>) 和 NVARCHAR2(<size>)数据类型分别与CHAR(<size>) 和VARCHAR2(<size>)类型是相同的,
只不过它们用来存储NLS(National Language Support)数据。其中N表示Unicode常量,可以解决多语言字符集之间的转换问题。
LONG型:此数据类型用来存储可变长度的字符数据,最多能存储2GB。但是有一些限制:一个表中只有一列可以为LONG型,LONG列不能定义为主键或唯一约束,不能建立索引,过程或存储过程不能接受LONG数据类型的参数。LONG 数据类型是一个遗留下来的而且在将来不会被支持的数据类型。它将被LOB(Large Object)数据类型所代替。
比较规则 Varchar2和char数据类型根据尾部的空格有不同的比较规则。对Char型数据,尾部的空格将被忽略掉,对于Varchar2型数据尾部带空格的数据排序比没有空格的要大些。比如:
Char 型数据: ‘YO’=‘YO ’
Varchar2型数据: ‘YO’<’YO ’
2、数值数据类型只有NUMBER型,但是NUMBER功能不小,它可以存储正数,负数,零,定点数和精度为30位的浮点数。格式为(P=38,S=0),其中P为精度,表示数字 的总位数,它在1-38之间,S为范围,表示小数点右边的数字的位数,它在-84至127之间。
3、日期时间数据类型:有DATE数据类型,TIMESTAMP数据类型。
DATE用于存储表中的日期和时间数据,ORACLE使用自己的格式存储日期,使用7个字节固定长度,每个字节分别存储世纪,年月日,小时,分和秒。日期数据类型的值从公元前4712年1月1日到公元9999年12月31日。data 的默认格式是DD-MOM-YY,注意这里年只显示最后两位数字,时间的默认格式是HH:MM:SS A.M. 注意这里使用的是12小时计时法。如果enter没有定义或者输入时间,默认时间是12:00:00 A.M. 如果enter没有输入data, 默认的时期是当前月的第一天。
ORACLE中的TIMESAMP和DATE类似,但是它精确到秒的后六位。 格式是:filename TIMESAMP (fractional_seconds_precision). fractional_seconds_precision;表示秒的精度。如:filename TIMESAMP (2). 表示精确到秒小数点后两位。
4、RAW和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以上的会更大,这还需要硬件方面的支持。