Oracle数据库入门第三课(函数)

本文介绍了SQL函数的基础知识,包括函数的分类(系统函数、单行函数等)、数值函数如ABS、MOD、CEIL等以及日期函数如sysdate、add_months等。通过实例演示了如何运用这些函数进行日期计算和数据处理。
摘要由CSDN通过智能技术生成

前面二白讲了一些简单的查询语句,仅仅知道查询语句的语法是不够的,要想实现更多的需求,更重要的是函数的使用,这节课我们简单说一下一些函数的使用。

一、函数的分类

什么叫做函数?

函数就是用来实现某种功能的,提前声明好的代码块

分类:

•系统函数 

        ‣单行函数

                •数值函数

                •字符函数

                •日期函数

                •转换函数

                •通用函数

        ‣聚合函数

        ‣分析函数

•自定义函数

‣单行函数     一次只影响一行  

        •数值函数   他是适用于数值型的数据

        •字符函数   他是适用于字符型的数据

        •日期函数   他是适用于日期型的数据  

        •转换函数   他是适用于各种数据类型之间的转换  

        •通用函数   他是适用于任何数据类型

二、数值函数

1. ABS(数)  绝对值     返回值:数值型

select abs(-1)
from dual

2.MOD(数1,数2)   取余  返回值:数值型

数1除以数2的余数

select mod(5,2)
from dual

注:特殊用法

(1):判断奇偶数

任何数和2取余,结果为1则表示他是奇数,否则就是偶数

(2):提取小数部分
select mod(3.52,1)
from dual

(3):数2为负数还是正数对结果的正负情况没有影响,结果的情况,只跟数1的正负有关
select mod(3.52,-1),mod(-3.52,1)
from dual

3.CEIL(数)   向上取整   往大了取,取最近的整数    返回值:数值型

4.FLOOR(数)  向下取整   往小了取,取最近的整数    返回值:数值型

select ceil(3.14),floor(3.14),
       ceil(-3.14),floor(-3.14)
from dual

5.ROUND(数1[,数2])  四舍五入    返回值:数值型

数1四舍五入保留数2位小数

数2不写,默认保留到整数

select round(3.1415926,2),
       round(3.1415926,3),
       round(1614.520,-3),
       round(3.5415)
from dual

6.TRUNC(数1[,数2])  截断       返回值:数值型

数1截断到保留数2位小数

数2不写,默认保留到整数

select trunc(3.1415926,2),
       trunc(3.1415926,3),
       trunc(1614.520,-3),
       trunc(3.5415)
from dual

7.SIGN(数)   判断正负零 

如果数为正数则返回1,负数返回-1,零返回0      返回值:数值型

select sign(-100),sign(100),sign(0)
from dual

8.POWER(数1,数2)   次方和开方     返回值:数值型

数1的数2次方

select power(2,3),power(2,-3),power(2,1/3)
from dual

三、日期函数

1.sysdate   返回系统时间

select sysdate
from dual

2.日期计算的规则

日期加减数字=日期加减天数

日期-日期=日期相差的总天数

select sysdate+3
from dual

select date'2024-3-26' - date'2022-11-4'
from dual

3.add_months(日期,数字)    日期加减数字个月

select add_months(sysdate,-3)
from dual

4.months_between(日期1,日期2)  日期之间相差的总月数

select months_between(date'2024-3-26',date'2024-1-1')
from dual

5.next_day(日期,星期几|数字)      

求下一个星期几        一周之初是星期日

select next_day(sysdate,'星期一'),
       next_day(sysdate,'2')
from dual

练习:求下一周的星期三

先求到本周日,再求本周日的下一个星期几

select next_day(next_day(sysdate-1,1),4)
from dual

6.last_day(日期)            返回日期的月末

select last_day(sysdate)
from dual

trunc:截断日期  也可以用来取整或取加小数点后几位

按照日期格式,将日期截断到日期格式之初


yyyy                       年

mm                         月

dd                         日

hh|hh24                    小时

mi                         分钟

ss                         秒

q                          季度

语法:

trunc(日期,格式)

select trunc(sysdate,'yyyy'),
       trunc(sysdate,'mm'),
       trunc(sysdate+18,'q')
from dual

本章函数还是有点难度的,有一些经典的例题,有兴趣的同学可以尝试一下

1.求下周的星期几

2.求平闰年

3.求几岁几月零几天

这里二白就先不演示代码了

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值