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