oracle常见数据类型及常见函数

第一节:字符串类型及函数

1、字符类型

• CHAR:一个定长字符串,当位数不足自动用空格填充来达到其最大长度。如非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。

• VARCHAR2:目前这也是VARCHAR 的同义词。这是一个变长字符串,与CHAR 类型不同,它不会用空格填充至最大长度。VARCHAR2(12)可能包含0~12字节的信息。VARCHAR2最多可以存储4,000 字节的信息。

CHAR和VARCHAR2的比较

CHAR(4) “A“ 实际在数据库中存储为"A “

“ABCDE”超长报错

VARCHAR2(4) “A” 存储的还是“A”

“ABCDE”超长报错

汉字:每个汉字占多少字节,要看具体的编码方式,如UTF-8(1-3字节)、

GB2312(2字节)、GBK(2字节)、GB18030(1、2、4字节)

 

2、常用函数

lower() 返回字符串小写:select lower(userName) from t_user;

upper() 返回字符串大写:select upper(userName) from t_user;

length() 返回字符串长度:select length(password) from t_user;

substr() 截取字符串:select substr (userName,1,2) from t_user;

instr() 获取字符串出现的位置:select instr(password,'23',2,2) from  t_user;第一个2表示重第二个位置开始查,第二个二表示第2次出现

concat() 串联字符串:select concat (userName,password) from t_user;

reverse() 反转字符串:select everse (userName) from t_user;

 

第二节:数值类型及函数

1、数值类型

• NUMBER:该数据类型能存储精度最多达38位的数字。每个数存储在一个变长字段中,其长度在0~22字节之间。Oracle的NUMBER类型精度很高, 远远高于许多编程语言中常规的FLOAT和DOUBLE类型。

NUMBER( p,s ) p表示精度(总长度) s表示小数位置且四舍五入

NUMBER(10,3) 10是总长度,3是小数位数的长度

123.456

123.4567 :将存储为123.457

12345679.899 :精度超长了,10是总长度,3是小数位, 整数位为10-3=7位

NUMBER(10)==NUMBER(10,0) java.lang.Integer

NUMBER(19)==NUMBER(19,0) java.lang.Long

 

2、常用函数

abs() 求绝对值;select  abs(n1) from t_number where id=1;

round() 四舍五入:select  round(n1,2) from t_number where id=1;

ceil() 向上取整:select ceil(n1) from t_number  where id=2;

floor 向下取整:select floor(n1) from t_number where id=2;

Mod()取模:select mod(5,3) from dual;

Sign()正负性:select sign(n1)  from t_number where id=1;

Sqrt() 求平方根:select sqrt(9) from dual;

Power()求乘方:select power(2,3) from dual;

Trunc()截取:select trunc(123.456,2) from dual;截取两位小数位,运行后结果123.45

To_char() 格式化数值:常见的字符匹配有 0、9、,、$、FM、L、C,    FM可以与$,L,C一起使用

select to_char(123.45,'0000.000') from dual;-----------> 1230.450

select to_char(123.45,'9999.999') from dual;----------->  123.450

select to_char(123123,'99,999,999.99') fromd ual;----------->  123,123.00

select to_char(123123.3,'FM99,999,999.99') from dual;----------->123,123,.3  FM可去掉前面空格和后面的0.

select to_char(123123.3,'$99,999,999.99') from dual;-----------> $123,123.3

select to_char(123123.3,'L99,999,999.99') from dual;----------->  ¥123,123.30

select to_char(123123.3,'99,999,999.99C') from dual;-----------> 123,123,30CNY

 

第三节:日期类型及函数

1、日期类型

• DATE:一个7字节的定宽日期/时间数据类型。其中总包含7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。

• TIMESTAMP:一个7 字节或12.字节的定宽日期/时间数据类型。它与DATE 数据类型不同,因为TIMESTAMP 可以包含小数秒(fractional second);带小数秒的TIMESTAMP 在小数点右边最多可以保留9位。

 

2、常用函数

Add_months 添加月份: selectadd_months(d1,2)from t_date where id=1;

Last_day 返回指定日期月份的最后一天: select last_day(d1) from t_date where id=1;

updatet_datesetd3=to_date('2016-12-20','YYYY-MM-DD') whereid=1;

updatet_datesetd3=to_date('2016-12-2018:31:34','YYYY-MM-DD HH24:MI:SS') whereid=1;

Months_between 返回两个日期的相差月数 select month s_between(d1,d3) fromt_date where id=1;

next_day 返回特定日期之后的一周内的日期:select next_day(d1,2) from t_date where id=1;

Trunc 截取日期: 

              select trunc(d1,'YYYY') from t_date where id=1;

              select trunc(d1,'MM') from t_date where id=1;

              select trunc(d1,'DD') from t_date where id=1;

              select trunc(d1,'HH') from t_date where id=1;

              select trunc(d1,'MI') from t_date where id=1;

Extract 返回日期的某个域:

              select extract(year from sysdate) from dual;

              select extract(month from sysdate) from dual;

              select extract(day from sysdate) from dual;

              select extract(Hour from systimestamp) from dual;

              select extract(minute from systimestamp) from dual;

              select extract(second from systimestamp) from dual;

To_char 将日期转换成字符串:

              selectto_char(d1,'YYYY-MM-DD') fromt_datewhereid=1;

              selectto_char(d1,'YYYY-MM-DDHH24:MI:SS') fromt_datewhereid=1;

 

第四节:二进制及其他大数据文本

• BLOB: (binary large object)在Oracle9i及以前的版本中, 这种数据类型允许存储最多4GB的数据, 在Oracle 10g及以后的版本中允许存储最多(4GB)×(数据库块大小)字节的数据。BLOB包含不需要进行字符集转换的“二进制“数据,如果要存储电子表格、字处理文档、图像文件等就很适合采用

• CLOB:(Character Large Object)在Oracle9i及以前的版本中, 这种数据类型允许存储最多4GB的数据, 在Oracle 10g及以后的版本中允许存储最多(4GB)×(数据库块大小)字节的数据。CLOB包含要进行字符集转换的信息。这种数据类型很适合存储纯文本信息。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值