Oracle常见系统函数

一、字符类函数

1,ASCII(c)和CHR(i)字符串和ascii码互转换

SQL> select ascii('Z') ,ascii('H'),ascii(' A')  from dual;

ASCII('Z') ASCII('H') ASCII('A')
---------- ---------- ----------
        90         72         32

SQL> select chr(90),chr(72),chr(65) from dual;

CH CH CH
-- -- --
Z  H  A

2.CONCAT(s1,s2)连接字符串

SQL> select concat('','')from dual;

C
-


SQL> select concat('hey','')from dual;

CONCAT
------
hey

SQL> select concat('','addie')from dual;

CONCAT('',
----------
addie

3.INITCAP首字母大写

SQL> select initcap('addie')from dual;

INITCAP('A
----------
Addie

4.INSTR(s1,s2[,i][,j])返回子字符串s2在s1中

SQL> select instr('helloinaddie','addie') from dual;

INSTR('HELLOINADDIE','ADDIE')
-----------------------------
                            8

5.LENGTH返回字符串长度

SQL> select length('helloaddie') from dual;

LENGTH('HELLOADDIE')
--------------------
                  10

6.LOWER和UPPER大小写转换

SQL> select lower('ADDIE'),upper('addie')from dual;

LOWER('ADD UPPER('ADD
---------- ----------
addie      ADDIE

7.Itrim(s1,s2)、Rtrim(s1,s2)、Trim(s2 from s1)去除字符串左边、右边、两边的指定字符

SQL> select ltrim('***addie***','*'),rtrim('**addie*','*'),trim('*' from '******addie***')from dual;

LTRIM('***ADDIE* RTRIM('**ADDIE TRIM('*'FR
---------------- -------------- ----------
addie***         **addie        addie

8.REPLACE(s1,s2[,s3])使用子

将s1中s2位置处的字符替换成字符串s3

SQL> select replace('helloimaddie','addie','allen')from dual;

REPLACE('HELLOIMADDIE','
------------------------
helloimallen

9.SUBSTR(s,i,[j])截取字符串

从字符串s中第i个字符开始截取j个长度的子字符串

SQL> select substr('helloeocoimaddiethisismyfirstexercise',10,15)from dual;

SUBSTR('HELLOEOCOIMADDIETHISIS
------------------------------
imaddiethisismy

二、数字类函数

1.ABS[n]返回n的绝对值

SQL> select abs(-9.1) from dual;

 ABS(-9.1)
----------
       9.1

2.ROUND(n1,n2)返回舍入小数点右边n2位的n1的值

n2的默认值为0 返回最接近的整数。如果n2为负数,则向小数点左边相应位数做舍入,n2必须是整数。

SQL> select round(3.1415926,3) from dual;

ROUND(3.1415926,3)
------------------
             3.142

3.CELI(n)返回大于等于n的最小整数,FLOOR(n)则相反 返回小于等于n的最大整数

SQL> select ceil(9.1),floor(-7.1) from dual;

 CEIL(9.1) FLOOR(-7.1)
---------- -----------
        10          -8

4.MOD(n1,n2)返回n1除以n2的余数

SQL> select mod(9.3,3) from dual;

MOD(9.3,3)
----------
        .3

5.ROUND(n1,n2)返回舍入小数点右边n2位的值,n2可以是负数 为负则小数点左边舍入

四舍五入

SQL> select round(13.1526789,3),round(13.1526789,-1) from dual;

ROUND(13.1526789,3) ROUND(13.1526789,-1)
------------------- --------------------
             13.153                   10

6.sign(n)判断n的正负

SQL> select sign(1),sign(0),sign(-9) from dual;

   SIGN(1)    SIGN(0)   SIGN(-9)
---------- ---------- ----------
         1          0         -1

7.TRUN(n1,n2)返回结尾到n2位小数的n1的值,可以为负数,必须为整数

仅截取,不做四舍五入

SQL> select trunc(3.14159,3),trunc(3.14159,-1),round(3.14159,3) from dual;

TRUNC(3.14159,3) TRUNC(3.14159,-1) ROUND(3.14159,3)
----------------- ----------------- ----------------
            3.141                 0            3.142

三、日期和时间类函数

1.ADD_MONTHS(date,n)返回date后n个月的date

SQL> select sysdate,add_months(sysdate,6) from dual;

SYSDATE        ADD_MONTHS(SYS
-------------- --------------
19-3月 -25     19-9月 -25

2.LAST_DAY(date)返回date所在月份的最后一天

SQL> select last_day(sysdate) from dual;

LAST_DAY(SYSDA
--------------
31-3月 -25

3.MONTHS_BETWEEN(d1,d2)返回d1和d2之间相差的天数

4.NEW_TIME(d1,t1,t2)当时区t1中的日期和时间是d1时,返回时区t2中的日期和时间

5.SYSDATE()返回系统当前的日期

四、转换类函数

1.TO_CHAR(x[,format])将表达式转换为字符串

SQL> select sysdate,to_char(sysdate,'YYYY-MM-DD') from dual;

SYSDATE        TO_CHAR(SYSDATE,'YYY
-------------- --------------------
19-3月 -25     2025-03-19

2.TO_DATE(s[,format[lan]])将字符串转换为date类型

SQL> select to_date('2025-09-19','YYYY-MM-DD') from dual;

TO_DATE('2025-
--------------
19-9月 -25

3.TO_NUMBER(s[,format[lan]])返回字符串s代表的数字

常用于进制转换

五、聚集类函数

1.AVG()计算选择列表项的平均值

SQL> select count(empno),avg(sal) from emp;

COUNT(EMPNO)   AVG(SAL)
------------ ----------
          10     2267.5

2.COUNT()返回查询结果中的记录数

3.MAX()返回选择列表项目中的最大数

4.MIN()返回选择列表项目中的最小数

5.SUM()返回选择列表项目的数值总和

6.VAR()返回选择列表项目的统计方差

7.STDDEV()返回选择列表项目的标准偏差

### Oracle 数据库系统函数用法与示例 #### 1. 常见Oracle 系统函数分类 Oracle 提供了多种类型的内置函数来支持复杂的查询需求,其中包括但不限于字符串处理、日期时间操作、数值运算以及聚合统计等功能。以下是几个主要类别及其典型代表: - **字符串处理函数**: 如 `CONCAT`、`SUBSTR` 和 `INSTR` 等用于文本片段的操作[^1]。 - **日期时间函数**: 包括 `SYSDATE` 获取当前服务器时间戳;还有像 `ADD_MONTHS` 或者 `NEXT_DAY` 这样的调整型指令可以改变指定的时间间隔[^2]。 - **转换类函数**: 比如提到过的 `TRANSLATE()` 函数能够实现字符一对一映射替换或者移除某些特殊符号[^4]。 #### 2. 实际应用场景下的具体例子 ##### (a). 使用 TRANSLATE() 替换单词中的元音字母 假设我们需要把单词里的所有元音替换成星号(*)以便隐藏敏感信息,则可以通过如下方式完成: ```sql SELECT TRANSLATE('hello world', 'aeiouAEIOU', '**********') AS masked_word FROM dual; -- 结果应该是 h*ll* w*rld ``` 这里利用到了第三个参数长度不足的情况自动填充剩余位置为空格这一特性[^4]。 ##### (b). 自定义加法器 ADD_NUMBERS() 下面展示了一个非常基础的例子——编写一个接受两个输入并返回其总和的新功能模块add_numbers(): ```plsql CREATE OR REPLACE FUNCTION add_numbers(p_num1 IN NUMBER, p_num2 IN NUMBER) RETURN NUMBER IS v_result NUMBER; BEGIN -- 计算两数相加之结果 v_result := p_num1 + p_num2; RETURN v_result; END add_numbers; / ``` 之后就可以调用它来进行任意实数间的求和运算了[^3]: ```sql SELECT add_numbers(50,78) total_sum FROM DUAL ; -- 输出应显示为 TOTAL_SUM=128 ``` #### 总结说明 以上仅列举了一些最常用到的功能点作为入门指导材料。实际上每种类型下还存在更多高级选项等待探索学习。对于初学者而言建议先熟悉基本语法结构再逐步深入研究细节差异之处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值