最近学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'),