Oracle学习笔记:分析各种数据类型


根据最近对Oracle数据库的学习,现在逐步整理出关于Oracle的相关知识,希望对一些刚接触Oracle的朋友有所帮助。

Oracle提供了比较单纯的几种数据类型,不像sql server有很多种数据类型。Oracle常用类型有char,varchar2,clob,number,Date,timestamp,blob等常用数据类型。

char(num)定长,最长为2000个字符,运用char的查询效率特高,但是用char的话,不会自动识别字符长度,定义了多少个字符,它就会占用几个字符,即使存储的字符只有2个,而定义的char为4个字符的话,它会用空格把后两个字符填充。

varchar2(num)算是varchar的升级版,Oracle对varchar2进行优化过, VARCHAR的区别是VARCHAR2把空串等同于null处理。varchar2最大长度是4000个字符,varchar2可以节省字符,跟char有个鲜明的区别就是,varchar2会识别存储的字符长度,不会占用多余的空间。但是查询效率没有char高。至于一个VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,比如GBK,汉字就会占两个字节,英文1个,如果是UTF-8,汉字一般占3个字节,英文还是1个。

clob字符型的最大对象,可以存放4G的容量。

number类型是一个数据类型,只定义number的话,就表示整形,而如果定义number(7,2)的话,就表示7个有效数字,小数位为两位,例如12345.67这个数字就符合number(7,2)的定义。number的范围是-(10的38次方)到10的38次方。

date时间数据类型,包含年月日时分秒。

timestamp是date类型的扩充,是一个更为精细的时间数据类型,一般情况都用不到。

blob二进制数据,可以存放图片,视频等资源,最大为4G。

oralce还有其他比较少用的类型,如long,nvarchar2()【根据字符集而定的可变长度字符串】等。如果有兴趣的朋友可以继续去研究下,顺便把研究结果分享给我,资源共享嘛。

相关内容