1,字符类型
1) Char:区分中英文中文占两个字符,长度固定不足空格补齐,英文一个(定义char(20),例如abc剩下的补17个空格占20字节)
2) Varchar:长度不固定根据实际长度决定,区分中英文(定义varchar(20)插入abc则只占3个字节)
3) Varchar2:同varchar,但是用null代替varchar空字符串
4) Nvarchar:不区分中英文,长度不固定,(定义nvarchar(20)存储字母和汉字组合则该20定义的是字符数不是字节数)
5) Nvarchar2:汉字和英文字母都占2字节,适用于存储中文情况
2,数值类型(Nnmber,Float,Integer,Binary_float,Binary_double)
1) Number:在oracle中占用0-22个字节存储空间,边长数据类型,0-22字节1个字节用于存储数据长度1个字节用于存储符合和指数相关内容,20个字节用于存储数
2) Integer:Interger是number的子类型,它等同于number(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。
3) Float:float类型也是NUMBER的子类型。Float(n),数n指示位的精度,可以存储的值的数目。n值的范围可以从 1 到 126。
4)Binary_float:存储一个单精度的32位浮点数。
5)Binary_double:存储一个双精度的64位浮点数。
3,日期类型(DATE,TIMESTAMP)
1)DATE:DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle 存储以下信息: 世纪、 年、 月、 日期、 小时、 分钟和秒。一般占用7个字节的存储空间。
2)TIMESTAMP:TIMESTAMP是一个7字节或12字节的定宽日期/时间数据类型,是DATE类型的扩展类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒,带小数秒的TIMESTAMP在小数点右边最多可以保留9位
4,LOB类型
1)CLOB存储单字节和多字节字符数据。支持固定宽度和可变宽度的字符集。CLOB对象可以存储最多 (4 gigabytes-1) * (database block size) 大小的字符
2)NCLOB存储UNICODE类型的数据,支持固定宽度和可变宽度的字符集,NCLOB对象可以存储最多(4 gigabytes-1) * (database block size)大小的文本数据。
3)BLOB存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。BLOB对象最多存储(4 gigabytes-1) * (database block size)的二进制数据。
4)BFILE 数据类型:二进制文件,存储在数据库外的系统文件,只读的,数据库会将该文件当二进制文件处理
5,RAW & LONG RAW
1)RAW:用于存储二进制或字符类型数据,变长二进制数据类型,这说明采用这种数据类型存储的数据不会发生字符集转换。这种类型最多可以存储2000字节的信息,建议使用 BLOB 来代替它
2)LONG RAW:能存储2GB的原始二进制数据(不用进行字符集转换的数据)。建议使用BLOB来代替它。
6,ROWID & UROWID类型
1)ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。ROWID伪列在SQL SELECT语句中可以像普通列那样被访问。ROWID表示行的地址,ROWID伪列用ROWID数据类型定义。Oracle数据库中每行都有一个伪列。
2)UROWID,它用于表,是行主键的一个表示,基于主键生成。UROWID与ROWID的区别就是UROWID可以表示各种ROWID,使用较安全。一般是索引组织表在使用UROWID。