oracle——学习之路(oracle内置函数)

 oracle与很多内置函数,主要分为单行函数与集合函数。

首先要提一下dual表,它oracle的一个表,没有什么实质的东西,不能删除它,否则会造成Oracle无法启动等问题,他有很大用处,可以利用它查询很多它没有的字段

举个栗子:

select 30* 20 from dual;

 

单行函数:

 数值型函数:

绝对值函数:abs()

select abs(-300) from dual;

取余函数;mod(n1,n2)返回n1除以n2的余数

select mod(2,3) from dual;

四舍五入截取函数: round(n,integer)如果integer不是整数,自动截取整数部分,如果是正整数,就截取n的四舍五入integer位小数,如果integer未负整数,n被四舍五入小数点向左integer位

select round(23456.4322,3) from dual;

select round(23456.4322,3.43) from dual;

结果同上

select round(23456.4322,3.53) from dual;

结果同上

select round(23456.4322,-4) from dual;

 

select round(23456.4322,-4.3) from dual;

结果同上

 

trunc(n,integer)也是截取函数

select trunc(23456.4322,-4) from dual;

字符型函数:

获取字符串长度:length()

select length('asdsdasdsdas') from dual;

字符串截取函数:substr(待截取字符串,从哪个位置开始截取,截取多少个字符) 注意下标从1开始,截取多少个字符如果没有说,就默认截取到最后一个字符

select substr('asdsdasdsdas',4,5) from dual;

select substr('asdsdasdsdas',4) from dual;

 

 字母大小写转换函数:

upper()转换成大写字母      lower()转换成小写字母

select upper('wewe') from dual;

select lower('DFS') from dual;

替换字符串函数:

replace(待替换的字符串,要替换的字符串,替换成什么字符串)

select replace('明天是什么天气','什么天气','晴天') from dual;

删除字符串首位指定字符的函数:trim()默认删除空格

both是删除前后两边的的指定字符,leading是删除前边制定字符(左),trailing删除后边指定字符

select trim(leading '2' from '234334232'),trim('    test    ') from dual;

select trim(trailing '2' from '234334232'),trim('    test    ') from dual;

select trim(both '2' from '234334232'),trim('    test    ') from dual;

ltrim()去除指定字符的左边所有字符,如果没有指定默认去除空格

select ltrim('  fsdsddcsd', 'sds') ,ltrim('  fsdsddcsd') from dual;

 

rtrim()与ltrim()相似

 

日期型函数:

sysdate系统日期

select sysdate from dual;

为日期加上指定月份函数:add_moths()

select add_months(sysdate,3) from dual;

返回指定月份最后一天函数:last_day()

select last_day(sysdate) from dual;

返回指定日期后一周的函数:next_day()

select next_day(sysdate,'星期二') from dual;

提取指定日期特定部分的函数:extract()

select extract(year from sysdate) from dual;

select extract(month from sysdate) from dual;

select extract(day from sysdate) from dual;

 

 得到i两个日期之间的月份数:months_between()

 select months_between(sysdate,to_date('1989-01-2','yyyy/mm/dd')) from dual;

数值转换成字符型函数:to_char()也可以将日期转换成字符型

select to_char(23.55,'99.9') from dual;

select to_char(sysdate,'yyyy-mm-dd') from dual;

字符转日期型函数:to_date()

 select to_date('2018-11-09','yyyy-mm-dd') from dual;

字符串转数字函数:to_number()

select to_number('23121.32') from dual;

替换NULL值函数:nvl(n1,n2)如果n1为空,返回n2的值,否则返回n1的值,要求两个参数的类型一致,至少能进行隐式转换

select nvl(comm,0) from emp;

nvl2(n1,n2,n3) n1为空返回n3,不为空,返回n2

select nvl2(comm,100000,0) from emp;

 

集合函数:

avg()求平均值函数,返回数值类型

select avg(sal) from emp;

count()求记录数量的函数

select count(*) from emp;

select count(sal) from emp group by deptno;

返回最大最小值函数:max()   min()

select max(sal) from emp;

select min(sal) from emp;

求和函数:sum()

select sum(sal) from emp;

其他函数:

表达式匹配函数:decode()

select decode(grade,1,'E',2,'D',3,'C',4,'B',5,'A') from salgrade;

 

转载于:https://www.cnblogs.com/chlme-wyn-001/p/11134348.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值