百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Oracle数据库 常用函数_oracle数据库常用语法

wptr33 2025-10-14 06:13 20 浏览



提供了丰富的内置函数,用于处理各种数据类型和逻辑操作。以下是一些常用的Oracle函数分类及其说明:

一、字符函数(处理字符串数据)

1. LOWER(char):将字符串转换为小写。

示例:SELECT LOWER('ABC') FROM DUAL; 结果:'abc'。

2. UPPER(char):将字符串转换为大写。

示例:SELECT UPPER('abc') FROM DUAL; 结果:'ABC'。

3. LENGTH(char):返回字符串的长度。

示例:SELECT LENGTH('Hello') FROM DUAL; 结果:5。

4. SUBSTR(char, start, length):截取子串(从start位置开始,截取length个字符)。

示例:SELECT SUBSTR('Oracle', 3, 4) FROM DUAL; 结果:'cle'。

5. REPLACE(char, old, new):替换字符串中的指定内容。

示例:SELECT REPLACE('ABCABC', 'B', 'X') FROM DUAL; 结果:'AXCAXC'。

6. INSTR(char, substring):返回子串在字符串中第一次出现的位置。

示例:SELECT INSTR('Oracle', 'le') FROM DUAL; 结果:3。

二、数学函数(处理数值计算)

1. ROUND(n, m):四舍五入到小数点后m位或整数。

示例:SELECT ROUND(3.1415, 2) FROM DUAL; 结果:3.14。

2. TRUNC(n, m):截断数字到小数点后m位或整数。

示例:SELECT TRUNC(3.1415, 2) FROM DUAL; 结果:3.14。

3. MOD(m, n):返回m除以n的余数。

示例:SELECT MOD(10, 3) FROM DUAL; 结果:1。

4. CEIL(n):返回大于等于n的最小整数(向上取整)。

示例:SELECT CEIL(3.2) FROM DUAL; 结果:4。

5. FLOOR(n):返回小于等于n的最大整数(向下取整)。

示例:SELECT FLOOR(3.8) FROM DUAL; 结果:3。

三、日期函数(处理日期和时间)

1. SYSDATE:返回当前系统日期和时间。

示例:SELECT SYSDATE FROM DUAL; 结果:当前日期时间(如'2025-06-19 12:34:56')。

2. ADD_MONTHS(date, months):在日期上增加指定月数。

示例:SELECT ADD_MONTHS(SYSDATE, 6) FROM DUAL; 结果:当前日期加6个月后的日期。

3. LAST_DAY(date):返回指定日期所在月份的最后一天。

示例:SELECT LAST_DAY('2025-06-15') FROM DUAL; 结果:'2025-06-30'。

4. MONTHS_BETWEEN(date1, date2):返回两个日期之间的月数差。

示例:SELECT MONTHS_BETWEEN('2025-06-19', '2024-01-01') FROM DUAL; 结果:约17个月。

5. TO_CHAR(date, format):将日期转换为指定格式的字符串。

示例:SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL; 结果:'2025-06-19 12:34:56'。

四、转换函数(数据类型转换)

1. TO_CHAR(n/ date, format):将数值或日期转换为字符串。

示例:SELECT TO_CHAR(1234.56, 'L99999.99') FROM DUAL; 结果:本地货币符号 + 数值(如'$1,234.56')。

2. TO_DATE(string, format):将字符串按格式转换为日期。

示例:SELECT TO_DATE('2025-06-19', 'YYYY-MM-DD') FROM DUAL; 结果:日期类型'2025-06-19'。

3. TO_NUMBER(string):将字符串转换为数值。

示例:SELECT TO_NUMBER('123.45') FROM DUAL; 结果:123.45。

4. CAST(expr AS data_type):显式类型转换(如CAST('2025' AS DATE))。

五、逻辑与条件函数

1. DECODE(expr, value1, result1,..., default):类似CASE WHEN的简单条件判断。

示例:SELECT DECODE(job, 'MANAGER', '经理', 'SALESMAN', '销售', '其他') FROM emp;

2. CASE WHEN condition THEN result [ELSE default] END:多条件分支。

示例:SELECT CASE WHEN sal > 5000 THEN '高薪' ELSE '普通' END FROM emp;

六、其他常用函数

1. SYS_CONTEXT('参数', '值'):获取系统上下文信息(如当前用户、数据库名等)。

示例:SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM DUAL; 结果:当前会话用户。

2. ROW_NUMBER() OVER (PARTITION BY... ORDER BY...):分组排序生成序号。

示例:SELECT ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal DESC) AS rank FROM emp;

3. NVL(expr1, expr2):如果expr1为NULL,返回expr2。

示例:SELECT NVL(comm, 0) FROM emp; 将空佣金替换为0。

总结:Oracle函数涵盖字符处理、数学计算、日期操作、类型转换及逻辑判断等场景,掌握常用函数可大幅提升数据查询与处理的效率。需根据实际需求选择合适的函数,并理解参数格式与返回值类型。

相关推荐

oracle数据导入导出_oracle数据导入导出工具

关于oracle的数据导入导出,这个功能的使用场景,一般是换服务环境,把原先的oracle数据导入到另外一台oracle数据库,或者导出备份使用。只不过oracle的导入导出命令不好记忆,稍稍有点复杂...

继续学习Python中的while true/break语句

上次讲到if语句的用法,大家在微信公众号问了小编很多问题,那么小编在这几种解决一下,1.else和elif是子模块,不能单独使用2.一个if语句中可以包括很多个elif语句,但结尾只能有一个else解...

python continue和break的区别_python中break语句和continue语句的区别

python中循环语句经常会使用continue和break,那么这2者的区别是?continue是跳出本次循环,进行下一次循环;break是跳出整个循环;例如:...

简单学Python——关键字6——break和continue

Python退出循环,有break语句和continue语句两种实现方式。break语句和continue语句的区别:break语句作用是终止循环。continue语句作用是跳出本轮循环,继续下一次循...

2-1,0基础学Python之 break退出循环、 continue继续循环 多重循

用for循环或者while循环时,如果要在循环体内直接退出循环,可以使用break语句。比如计算1至100的整数和,我们用while来实现:sum=0x=1whileTrue...

Python 中 break 和 continue 傻傻分不清

大家好啊,我是大田。今天分享一下break和continue在代码中的执行效果是什么,进一步区分出二者的区别。一、continue例1:当小明3岁时不打印年龄,其余年龄正常循环打印。可以看...

python中的流程控制语句:continue、break 和 return使用方法

Python中,continue、break和return是控制流程的关键语句,用于在循环或函数中提前退出或跳过某些操作。它们的用途和区别如下:1.continue(跳过当前循环的剩余部分,进...

L017:continue和break - 教程文案

continue和break在Python中,continue和break是用于控制循环(如for和while)执行流程的关键字,它们的作用如下:1.continue:跳过当前迭代,...

作为前端开发者,你都经历过怎样的面试?

已经裸辞1个月了,最近开始投简历找工作,遇到各种各样的面试,今天分享一下。其实在职的时候也做过面试官,面试官时,感觉自己问的问题很难区分候选人的能力,最好的办法就是看看候选人的github上的代码仓库...

面试被问 const 是否不可变?这样回答才显功底

作为前端开发者,我在学习ES6特性时,总被const的"善变"搞得一头雾水——为什么用const声明的数组还能push元素?为什么基本类型赋值就会报错?直到翻遍MDN文档、对着内存图反...

2023金九银十必看前端面试题!2w字精品!

导文2023金九银十必看前端面试题!金九银十黄金期来了想要跳槽的小伙伴快来看啊CSS1.请解释CSS的盒模型是什么,并描述其组成部分。答案:CSS的盒模型是用于布局和定位元素的概念。它由内容区域...

前端面试总结_前端面试题整理

记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学...

由浅入深,66条JavaScript面试知识点(七)

作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录由浅入深,66条JavaScript面试知识点(一)由浅入深,66...

2024前端面试真题之—VUE篇_前端面试题vue2020及答案

添加图片注释,不超过140字(可选)1.vue的生命周期有哪些及每个生命周期做了什么?beforeCreate是newVue()之后触发的第一个钩子,在当前阶段data、methods、com...

今年最常见的前端面试题,你会做几道?

在面试或招聘前端开发人员时,期望、现实和需求之间总是存在着巨大差距。面试其实是一个交流想法的地方,挑战人们的思考方式,并客观地分析给定的问题。可以通过面试了解人们如何做出决策,了解一个人对技术和解决问...