从事oracle开发快3年了,技术一直没怎么提升,从来没写过博客,也从来不擅长总结。发现,再也不能这样下去了,否则一生就太失败了。想改变自己,从写博客开始,不扯了,开始总结下oracle 常用数据类型。
oracle 数据类型 分6种:
number
number,翻译过来为数字,没错,在现实生活中,好多度量的数据类型都是数字,比如 银行存款金额,证券账户资产,保险缴纳的保费,都是 用number 描述的。
当然,有些度量值有小数,那该用什么数据类型昵,用 number就可以了。
如果,想更体现小数的位数,就用number(p,s)
number(p,s):p 代表最大的精度位数,s代表 小数位数,比如number(5,2): --代表存的数总共5位,其中小数位数为 2位。
char
char:字符,固定长度的2000个字节。
1bit:二进制1位
1字节(byte) = 8bit
1KB=1024byte
1MB=1024KB
1GB=1024MB
1TB=?
1PB=?
那工作当中什么时候会用到昵,比如 性别(1代表 男,0代表女),还有证件类型...
讲到这里,不得不说下 我们的母语。
1个汉字 占几个字节昵? 是2个,还是3个?
根据编码规定:
UTF-3:1个汉字 占3个字节
GBK:1个汉字 占2个字节
varchar2
varchar2:也是字符数据类型,但和char不同,能最大存储4000个字节,即4Kb。
讲了char,varchar2没什么好讲的,但是有一点比较特殊:
varchar(1000 char):代表能存储最多1000个字符,一个汉字也算一个字符。
blob
blob:存图片,但是工作当中一般不怎么用。
clob
clob:大对象数据类型,存储的字符串长度超过 4000byte。
date
date:时间类型,生活中,我们无时无刻不在跟时间打交道,今天的数据为啥没有同步过来,昨天job跑失败了。
sysdate;--获取当前数据库的date时间
systimestamp;--获取当前数据库的timestamp时间
=>to_date('2016-11-16 12:00:05','yyyy-mm-dd hh24:mi:ss')
=>to_date('2016-11-16 14','yyyy-mm-dd hh24') 14点整
=>to_date('2016-11-16','yyyy-mm-dd') --0点整
=>to_date('2016-11','yyyy-mm') --11月1号0点整
=>to_date('2016','yyyy') --2016年 当前月份的 1号零点整