你的位置:首页 > 数据库

[数据库]Oracl常用e函数整理


最近学Oracle数据库,常常遇到Oracle数据库函数问题,经过默默地琢磨处理,总结了一些Oracle数据库常用函数。

 

------------------------------------ ---->oracle常用基本函数(附例子)<---- ------------------------------------

------------------------ ---->常用的字符函数<---- ------------------------

--initap()单词首字母大写  人名  地名 select initcap ('z庆l love') from dual

--lower() 字母全转为小写 select lower('Zq L') from dual

--upper() 字母全转为小写 select upper('zQ l') fro m dual

--ltrim() 左裁剪 必须从第一个开始匹配 直到匹配完成  才能截取成功 select ltrim('人生真是寂寞如雪啊','真') from dual

--rtrim() 右裁剪 同左裁剪 select rtrim('人生真是寂寞如雪啊','啊') from dual

--translate() 按字符翻译 select translate('zadqlf','abfd','爱国向上') from dual

--replace() 字符串替换 select replace('人生这是寂寞如雪啊','这是','嘎嘎嘎') from dual

--instr() 查找子串的位置 select instr('人生真是寂寞如雪啊','如雪') from dual

--substr() 取子字符串 select substr('人生这是寂寞如雪啊',1,4) from dual

--concat() 连接字符串 select concat('My','Love') from dual

---------------------- ---->常用数字函数<---- ----------------------

--abs()取绝对值 select abs(-15) from dual

--ceil()向上取整  去掉小数部分  正数+1  负数+0 select ceil(-1.1) 负数,ceil(1.1) 正数 from dual

----floor() 向下取整 等于去掉小数部分 正数-0  负数-1 select floor(-1.1) 负数,floor(1.1) 正数 from dual

--sin()正弦 三角形对边和斜边的比---->不常用<---- select sin(1.5) from dual

--cos() 余弦 三角形邻边与斜边的比 ---->不常用<---- select cos(1.5) from dual

--sign() 取符号 select sign(-32) 负号,sign(32) 正号 from dual

--power(m,n) m的n次方 select power(3,3) from dual

--sqrt() 平方根 获取数字的平方根  ---->不常用<---- select sqrt(4) from dual

--mod() 取余数 类似于 java中% select mod(7,2) from dual

--round(m,n) 四舍五入 m->操作数  n->精确到小数后几位 select round(1.116,2) from dual

--trunc() 截断 m->操作数 n->保留小数后几位 select trunc(1.116,2) from dual

---------------------- ---->常用日期函数<---- ----------------------

--months_between() 返回两个日期之间相差的月份 参数需是date型 select months_between(date'04-11-05',date'11-1-01') from dual

--add_months() 给日期添加月份 第一个参数需是date select add_months(date'2015-2-14',1) from dual

--next_day() 返回指定日期  后某个星期对应的天数  第二个星期参数需是英文 select next_day(date'2015-5-6','monday') from dual

--round() 按指定格式对日期进行"四舍五入"  这里需要注意时间的转化  以及四舍五入的范围 ---->不常用<---- select round(to_date('2012-2-03','yyyy-mm-dd'),'year') from dual; select round(to_date('2012-2-17','yyyy-mm-dd'),'month') from dual; select round(to_date('2012-2-03','yyyy-mm-dd'),'day') from dual;

--trunc() 对日期按指定的方式进行截断  类似小数的截断  参照一下不难理解 select trunc(date'2015-8-1','year') from dual

--extract() 获取时间各个部分 select extract(month from date'2015-08-01') from dual

--date'字符串' 字符串转化时间 select date'2015-01-02' from dual

--to_timestamp() 格式化(时间)字符串 --->不常用<--- select to_timestamp('2015-01-01','yyyy-mm-dd') from dual

---------------------- ---->常用转换函数<---- ----------------------

--to_char() 转换成字符串类型  to_char转化有  格式 容易出错  例如$9999.9 不能写成¥9999.9 select to_char(date'2015-01-01','yyyy"年"mm"月"dd"日"') from dual select to_char(1234.4,'$9999.9') from dual

--to_date() 转换成时间类型 date系统格式 2015/5/6 select to_date('2015-5-6','yyyy-mm-dd') from dual

--to_number() 转换成数值类型 select to_number('2015.56') from dual

---------------------- ---->操作结果函数<---- ----------------------

--decode() 相当于sql的case end select decode(1,1,'true',2,'false') from dual

--nvl() 替换指定列中的null值 select nvl(name,'无名') from pet --name 是null 返回‘无名’ 不是null返回 原值

--nvl2() select nvl2(name,'无名','有名') from pet --name 是null 返回‘无名’ 不是null返回 ‘有名’

------------------------ ---->常用的多行函数<---- ------------------------

--sum() 求和 select sum(love) from pet

--avg() 求平均数 select avg(love) from pet

--count() 计数 select count(*) from pet

--max() 求最大数 select max(love) from pet

--min() 求最小数 select min(love) from pet

 

 

注意:Oracle数据库插入时间:不能直接插入时间
如2014-12-05,而应该
to_date('2014-12-05','yyyy-mm-dd'),