oracle的内置函数难吗,oracle——学习之路(oracle内置函数)

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

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

举个栗子:

select 30* 20 from dual;

ad1e6840e5ca5e8d9b693fd1b0267499.png

单行函数:

数值型函数:

绝对值函数:abs()

select abs(-300) from dual;

58cbf6022728b10eeb705eff78b6be13.png

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

select mod(2,3) from dual;

c718a1c5749546d00961468aecd006dc.png

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

select round(23456.4322,3) from dual;

8ba68431f8829df10300a7070bb59092.png

select round(23456.4322,3.43) from dual;

结果同上

select round(23456.4322,3.53) from dual;

结果同上

select round(23456.4322,-4) from dual;

f6613ea81bfc1e7c0f6c8db42f6979af.png

select round(23456.4322,-4.3) from dual;

结果同上

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

select trunc(23456.4322,-4) from dual;

0979134fb05dca0761891f20d35ba281.png

字符型函数:

获取字符串长度:length()

select length('asdsdasdsdas') from dual;

f4279c5d841545044b6abddacc79279e.png

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

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

a0ae2710e330374688279fc78aaf766b.png

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

ebbb2680fa1e712409893e8972892bdb.png

字母大小写转换函数:

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

select upper('wewe') from dual;

c5d114b06dd53204f3a6d8611b9b8da5.png

select lower('DFS') from dual;

23a494e991ec834302969080ab1b713c.png

替换字符串函数:

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

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

7b503db39af4ff18750ff4c2626ef66b.png

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

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

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

bccf237ddb69caff36c429b59a469941.png

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

962efe4d5d787c3aa1b579b3f77d7ec3.png

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

af0c62ba393a7bd54718fd5201a99d4b.png

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

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

3ceaecb29015744d906d19ae9074eb6b.png

rtrim()与ltrim()相似

日期型函数:

sysdate系统日期

select sysdate from dual;

88327a2df25e974797a12071fbad3a7e.png

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

select add_months(sysdate,3) from dual;

eb28c0e27cb4062d3b8e3abea841e635.png

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

select last_day(sysdate) from dual;

99d1e03373d89c16af10c97f6fb42d22.png

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

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

8c767a06b8ea1313f4c8e90824431015.png

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

select extract(year from sysdate) from dual;

b345736f9c5adc86bf82367ab5088e49.png

select extract(month from sysdate) from dual;

26d8cf5c6c5a1a21a94b8d3864fc893b.png

select extract(day from sysdate) from dual;

5dba68ce308996312b6b1afca9ebb501.png

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

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

c20999e760ad4490e41e58bbc16b3a45.png

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

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

f43e1df3b6375811735a5436aed665b0.png

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

b7234d1c147eeb5dd95dd9a8a3163303.png

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

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

5e60e5a283b6b3788fa5b30d88717544.png

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

select to_number('23121.32') from dual;

bde1c3ddc1104e765341913ef856fa42.png

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

select nvl(comm,0) from emp;

3482227483cf9b37f6b08764ce7f5904.png

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

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

2cc6688c5b672363b164aaed3259ce6e.png

集合函数:

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

select avg(sal) from emp;

34d274575f21b7b0037ac8456e0f63ee.png

count()求记录数量的函数

select count(*) from emp;

260348969f24148bc6b85e7e3c0d3648.png

select count(sal) from emp group by deptno;

a7f6a06d748ae74a35053555cfa599d6.png

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

select max(sal) from emp;

d2a7d2a42837d93eb84723d464e436b1.png

select min(sal) from emp;

a3b7e6a5517745c8b77d10deadbaaf0f.png

求和函数:sum()

select sum(sal) from emp;

2af8512af08be6d23529e32e084738a0.png

其他函数:

表达式匹配函数:decode()

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

bf2aefa9bd9ff4208e655324d4398b84.png

标签:sysdate,内置,函数,截取,emp,dual,oracle,select

来源: https://www.cnblogs.com/chlme-wyn-001/p/11134348.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值