当你在数据库中创建数据表的时候你需要定义表中所有字段的类型ORACLE有许多种数据类型以满足你的需要数据类型大约分为character number date LOB 和RAW等类型虽然ORACLEi也允许你自定义数据类型但是它们是最基本的数据类型在下面的文章中你将了解到他们在oracle 中的用法限制以及允许值
Character 数据类型
Character 数据类型用来存储字母数字型数据当你在oracle 中定义一个character 数据时通常需要制定字段的长度它是该字段的最大长度ORACLE提供以下几种character 数据类型
CHAR(<size>) CHAR数据类型是一种有固定长度和最大长度的字符串存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度长度定义在——字节之间
当你创建一个CHAR型字段数据库将保证在这个字段中的所有数据是定义长度如果某个数据比定义长度短那么将用空格在数据的右边补到定义长度如果长度大于定义长度将会触发错误信息
VARCHAR(<size>) varchar型数据是varchar型数据的快照
VARCHAR(<size>) varchar数据类型是一种可变长度的有最大长度的字母数字型数据Varchar类型的字段长度可以达到字节Varchar类型的变量长度可以达到字节
一个空的varchar()字段和一个空的varchar()字段所占用的空间是一样的
NCHAR(<size>) 和 NVARCHAR(<size>)NCHAR(<size>) 和 NVARCHAR(<size>)数据类型分别与CHAR(<size>) 和 VARCHAR(<size>)类型是相同的只不过它们用来存储NLS(National Language Support)数据
LONGLONG 数据类型是一个遗留下来的而且在将来不会被支持的数据类型它将被LOB(Large Object)数据类型所代替
比较规则 Varchar和char数据类型根据尾部的空格有不同的比较规则对Char型数据尾部的空格将被忽略掉对于Varchar型数据尾部带空格的数据排序比没有空格的要大些比如
Char 型数据YO=YO
Varchar型数据 YO<YO
Numberic 数据类型
Numberic 数据类型用来存储负的和正的整数分数和浮点型数据范围在* 和…*之间有位的精确度标识一个数据超出这个范围时就会出错
Number(<p><s>) Number数据类型存储一个有p位精确度的s位等级的数据
DATE 数据类型
DATE 数据类型用来存储日期和时间格式的数据这种格式可以转换为其他格式的数据去浏览而且它有专门的函数和属性用来控制和计算以下的几种信息都包含在DATE数据类型中
Century
Year
Month
Day
Hour
Minute
Second
LOB 数据类型
LOB(Large Object) 数据类型存储非结构化数据比如二进制文件图形文件或其他外部文件LOB 可以存储到G字节大小数据可以存储到数据库中也可以存储到外部数据文件中LOB数据的控制通过DBMS_LOB 包实现BLOB NCLOB 和CLOB 数据可以存储到不同的表空间中BFILE存储在服务器上的外部文件中LOB数据类型有以下几种
BLOB: 二进制数据
CLOB: 字符型数据
BFILE: 二进制文件
其他数据类型
ROWID ROWID 数据类型是ORACLE数据表中的一个伪列它是数据表中每行数据内在的唯一的标识