总共6大类型,具体如下:
字符串类型
数字类型
日期类型
LOB类型
LONG RAW & RAW 类型
ROWID & UROWID 类型
定长或变长
所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;有var前缀的,表示是实际存储空间是变长的,比如varchar2,nvarchar2变长字符数据则不会以空格填充。
Unicode或非Unicode
数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar2,这两种类型使用了Unicode字符集。
char: 类型:
char类型存储定常字符串,默认位1字节
当定义字符不足(较小时),值会由空白字符填充到指定的长度。
当值超出定义字符的时候,oracle会返回错误。
Varchar2 与varchar的 (Nchar unicode 的字符集编码)
varchar 是varchar2的同义词
varchar2 数据类型存储变长数据类型,字节子1-4000字节之间的值。不会补充空白,
如果超过了最大的长度数据库返回错误。
varchar 数据类型存储时候 字节是1-2000字节之间的值,不会补充空白。
不同点:
varchar 2 把所有字符当两个字符进行处理,
varchar只对汉字和全角等字符当两个字符进行处理。也不会填充至最大的长度。
VARCHAR2把空串等同于null处理,
varchar把空串仍按照空串处理
LOB类型
存储非结构化的数据类型像音乐,视频等
LONG类型
LONG类型可以存储最多2的32次方-1字节的变长字符串
NUMBER类型
NUMBER类型用于存储定点数和浮点数,可以保存几乎任意大小(38位精度)的数值并在不同版本的Oracle数据库中通用。
BINARY_FLOAT和BINARY_DOUBLE (对于)
它们支持所有NUMBER提供的基本功能。并且由于NUMBER使用十进制精度,BINARY_FLOAT和BINARY_DOUBLE使用二进制精度,这为它们提供了更快的数值计算速度并常常减少了存储需求。
BINARY_FLOAT
BINARY_FLOAT是32位单精度浮点数类型,需要占用5个字节的存储空间,包括一个长度字节。
BINARY_DOUBLE
BINARY_DOUBLE是64位双精度浮点数类型,需要占用9个字节的存储空间,包括一个长度字节。
BFILE类型
BFILE类型存储在数据库之外的非结构化的二进制数据。BFILE数据存储了指向外部文件的文件定位符。可以存储的BFILE数量手操作系统的限制。另外,BFILE是只读的。