Oracle 数据类型

Char   固定长度字符串  最大长度2000  bytes  每行定长(不足部分补为空格);缺省值为每行1字节。设置长度(size)前需考虑字符集为单字节或多字节。

Varchar2 可变长度的字符串    最大长度4000    bytes  每行长度可变,最大长度为每行4000字节。设置长度(size)前需考虑字符集为单字节或多字节。

NCHAR    根据字符集而定的固定长度字符串    最大长度2000    bytes     

由字符集决定缺省值为1个字符或1个字节。    

NVARCHAR2    根据字符集而定的可变长度字符串    最大长度4000    bytes  

DATE    日期(日-月-年)    DD-MM-YY(HH-MI-SS)

LONG    超长字符串    最大长度2G(231-1) 

RAW    固定长度的二进制数据    最大长度2000    bytes      可存放多媒体图象声音等  

LONG    RAW    可变长度的二进制数据    最大长度2G   

BLOB    二进制数据    最大长度4G         

CLOB    字符数据    最大长度4G  

NCLOB    根据字符集而定的字符数据    最大长度4G     BFILE    存放在数据库外的二进制数据    最大长度4G         

 ROWID    数据表中记录的唯一行号    10    bytes    ********.****.****格式,*为0或1     

NROWID    二进制数据表中记录的唯一行号    最大长度4000    bytes     

NUMBER(P,S)    数字类型    P为整数位,S为小数位     

DECIMAL(P,S)    数字类型    P为整数位,S为小数位     

INTEGER    整数类型    小的整数     

FLOAT    浮点数类型    NUMBER(38),双精度     

REAL    实数类型    NUMBER(63),精度更高   

 

Char varchar varchar2 nchar的区别

  1. char的长度是固定的,而varchar2的长度是可以变化的,比如“abcd”,对于char(20),表示你的存储将占20个字节(包括16个空字符),而varchar2(20)则只占用了4个字符节的长度。它是按照实际的长度存储。
  2. char的执行效率比varchar2要高,所为了浪费空间节省时间。
  3. varchar是varchar2的同义词,工业标准的varchar类型可以存储空字符串,但是oracle不这样做,oracle自己开发一个数据类型varchar2,这个类型不是一个标准的varchar,它将在数据库中varchar列可以存储空字符串的特性改为存储null值,oracle建议使用varchar2。
  4. Unicode或非Unicode
    数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集
  5. nchar占用空间比char大。比如char格式下一个字母只占用一个字节,汉字占用两个,nchar所有字符都占用两个字节。
posted on 2013-05-29 15:27  无尽的缥缈  阅读(180)  评论(0编辑  收藏  举报