ORACLE字段类型详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字段类型中文说明限制条件其它说明
CHAR固定长度字符串最大长度2000bytes VARCHAR2可变长度的字符串最大长度4000bytes可做索引的最大长度749
NCHAR根据字符集而定的固定长度字符串最大长度2000bytes NVARCHAR2根据字符集而定的可变长度字符串最大长度4000bytes
DATE日期(日-月-年)DD-MM-YY(HH-MI-SS)经过严格测试,无千虫问题LONG超长字符串最大长度2G(231-1)足够存储大部头著作
RAW固定长度的二进制数据最大长度2000bytes可存放多媒体图象声音等LONG RAW可变长度的二进制数据最大长度2G同上
BLOB二进制数据最大长度4G
CLOB字符数据最大长度4G
NCLOB根据字符集而定的字符数据最大长度4G
BFILE存放在数据库外的二进制数据最大长度4G
ROWID数据表中记录的唯一行号10bytes********.****.****格式,*为0或1
NROWID二进制数据表中记录的唯一行号最大长度4000bytes
NUMBER(P,S)数字类型P为整数位,S为小数位
DECIMAL(P,S)数字类型P为整数位,S为小数位
INTEGER整数类型小的整数
FLOAT浮点数类型NUMBER(38),双精度
REAL实数类型NUMBER(63),精度更高
数据类型参数描述
char(n)n=1to2000字节定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)
varchar2(n)n=1to4000字节可变长的字符串,具体定义时指明最大长度n,
这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。
如果数据长度没有达到最大值n,Oracle8i会根据数据大小自动调节字段长度,
如果你的数据前后有空格,Oracle8i会自动将其删去。VARCHAR2是最常用的数据类型。可做索引的最大长度3209。
number(m,n)m=1to38
n=-84to127可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。
如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。
如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。
如:number(3,0),输入575.316,真正保存的数据是575。
date无从公元前4712年1月1日到公元4712年12月31日的所有合法日期,
Oracle8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。
缺省格式为DD-MON-YY,如07-11月-00表示2000年11月7日。
long无可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。
long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。
raw(n)n=1to2000可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle 8i用这种格式来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档。
raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。
long raw无可变长二进制数据,最大长度是2GB。Oracle8i用这种格式来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件。
在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。
blob
clob
nclob无三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。
LOB有几种类型,取决于你使用的字节的类型,Oracle8i实实在在地将这些数据存储在数据库内部保存。
可以执行读取、存储、写入等特殊操作。
bfile无在数据库外部保存的大型二进制对象文件,最大长度是4GB。
这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。
Oracle8i可以读取、查询BFILE,但是不能写入。
大小由操作系统决定。
数据类型是列或存储过程中的一个属性。
Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。
字符数据类型
CHAR char数据类型存储固定长度的字符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1。如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。
VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的最大长度而非实际赋值长度。不需用空格填充。最多可设置为4000个字符。因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。
Oracle推荐使用VARCHAR2
NCHAR和NVARCHAR2NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符串,但是它们使用的是和数据库其他类型不同的字符集。在创建数据库时,需要指定所使用的字符集,以便对数据中数据进行编码。还可以指定一个辅助的字符集[即本地语言集]。NCHAR和NVARCHAR2类型的列使用辅助字符集。NCHAR和NVARCHAR2类型的列使用辅助字符集。
在Oracle9i中,可以以字符而不是字节为单位表示NCHAR和NVARCHAR2列的长度。
LONG long数据类型可以存放2GB的字符数据,它是从早期版本中继承下来的。现在如果存储大容量的数据,Oracle推荐使用CLOB和NCLOB数据类型。在表和SQL语句中使用LONG类型有许多限制。
CLOB和NCLOB CLOB和NCLOB数据类型可以存储多达4GB的字符数据。NCLOB数据类型可存储NLS数据。
数字数据类型
Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。
NUMBER数据类型可以有两个限定符,如:column NUMBER(precision,scale)。precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。scale表示小数点右边的位数,scale默认设置为0。如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。
日期数据类型
Oracle标准日期格式为:DD-MON-YY HH:MI:SS
通过修改实例的参数NLS_DATE_FORMAT,可以改变实例中插入日期的格式。在一个会话期间,可以通过Alter session SQL命令来修改日期,或者通过使用SQL语句的TO_DATE表达式中的参数来更新一个特定值。
其它的数据类型
RAW和LONG RAW RAW和LONG RAW数据类型主要用于对数据库进行解释。指定这两种类型时,Oracle以位的形式来存储数据。RAW数据类型一般用于存储有特定格式的对象,如位图。RAW数据类型可占用2KB的空间,而LONG RAW数据类型则可以占用2GB大小。
ROWID ROWID是一种特殊的列类型,称之为伪列(pseudocolumn)。ROWID伪列