Oracle(四)Oracle 函数

article/2025/11/10 2:25:27

目录

      • 函数介绍
      • Oracle字符型函数
      • Oracle日期型函数
        • 系统日期、时间函数:
        • 数据库时区函数:
        • 给日期加上指定的月份函数:
        • 月份最后一天函数:
        • 指定日期后一周的日期函数:
        • 返回指定日期中特定部分的函数:
        • 返回两个日期间的月份数:
        • 日期截取函数:
      • Oracle 数值型函数
      • Oracle 转换函数
      • Oracle聚合函数
        • AVG函数
        • MAX/MIN函数
        • SUM函数

函数介绍

Oracle函数:可以对数据进行加工处理,返回我们想要的结果。

作用:丰富了SQL的语言功能,为Oracle SQL 提供了更多的操作性。

主要使用两种类型的函数:

1、单行函数:对每一个函数应用在表的记录中时,只能输入一行中的列值作为输入参数(或常数),并且返回一个结果。

例如1:MOD(X,Y) 是求余函数,返回的X除以Y的余数,其中X和Y可以是列值,也可以是常数。

例如2:TO_CHAR(X,‘YYYYMMDD’)是时间类型转字符串的函数,其中X可以是行中某一时间类型(date)的列,也可以是一个时间类型的常数。

常用单行函数:

  1. 字符串函数:对字符串进行操作,例如:TO_CHAR()、SUBSTR()、DECODE()等等。
  2. 数值函数:对数值进行计算或操作,返回一个数字。例如:ABS()、MOD()、ROUND()等等。
  3. 转换函数:将一种数据类型转换成另外一种类型:例如:TO_CHAR()、TO_NUMBER()、TO_DATE()等等。
  4. 日期函数:对时间和日期进行操作的函数。例如:TRUNC()、SYSDATE()、ADD_MONTHS()等等。

2、聚合函数: 同时可以对多行数据进行操作,并返回一个结果。如 SUM(x)返回结果集中 x 列的总和。

Oracle字符型函数

用来处理字符串类型的函数,通过接收字符串参数,然后经过操作返回字符串结果的函数。
在这里插入图片描述在这里插入图片描述

Oracle日期型函数

Oracle日期类型函数是操作日期、时间类型的相关数据,返回日期时间类型或数字类型结果,常用的函数有:SYSDATE()、ADD_MONTHS()、LAST_DAY()、TRUNC()、ROUND()等等。

系统日期、时间函数:

SYSDATE函数:该函数没有参数,可以得到系统的当前时间。

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') now_date from dual;


SYSTIMESTAMP函数:该函数没有参数,可以得到系统的当前时间,该时间包含时区信息,精确到微秒。

案例代码:

select systimestamp from dual;

数据库时区函数:

DBTIMEZONE函数:该函数没有输入参数,返回数据库时区。

**select** **dbtimezone** **from** dual;

给日期加上指定的月份函数:

ADD_MONTHS(r, n)函数:该函数返回在指定日期r上加上一个月份数n后的日期。其中
r:指定的日期。
n:要增加的月份数,如果N为负数,则表示减去的月份数。

select to_char(add_months(to_date('2018-11-12','yyyy-mm-dd'),1),'yyyy-mm-dd'),to_char(add_months(to_date('2018-10-31','yyyy-mm-dd'),1),'yyyy-mm-dd'),to_char(add_months(to_date('2018-12-30','yyyy-mm-dd'),1),'yyyy-mm-dd')        from dual;

结果:(如果指定的日期是月份的最后一天,返回的也是新的月份的最后一天,如果新的月份比指定的月份日期少,将会自动调回有效日期

根据结果可发现,日期2018-10-31加上一个月后,本应为2018-11-31,但11月只有30天,所以结果自动显示为2018-11-30;
日期2018-12-30,加上一个月后,自动变为2019年。
在这里插入图片描述

月份最后一天函数:

LAST_DAY®函数:返回指定r日期的当前月份的最后一天日期。

 select last_day(sysdate) from dual;

当前日期实际为:2022-01-16 16:02:40,返回当前月份最后一天则为如下:2022-01-31 16:02:40
在这里插入图片描述

指定日期后一周的日期函数:

**NEXT_DAY(r,c)函数:**返回指定R日期的后一周的与r日期字符(c:表示星期几)对应的日期。
即返回指定日期后一周 星期几 所对应的日期。
c:为 1 ~ 7 或 Monday/Mon~Sunday。1表示星期日,2代表星期一…

select next_day(to_date('2022-01-16','yyyy-mm-dd'), 4) from dual;

当前日期为1月16号,4 代表星期三,即下周的星期三,则为1月19号。
在这里插入图片描述

返回指定日期中特定部分的函数:

**EXTRACT(time)函数:**返回指定time时间当中的年、月、日、分等日期部分。

select  extract( year from timestamp '2022-11-12 15:36:01') as year,extract( month from timestamp '2022-11-12 15:36:01') as month,        extract( day from timestamp '2022-11-12 15:36:01') as day,  extract( minute from timestamp '2022-11-12 15:36:01') as minute,extract( second from timestamp '2022-11-12 15:36:01') as secondfrom dual;

在这里插入图片描述

返回两个日期间的月份数:

MONTHS_BETWEEN(r1,r2)函数: 该函数返回r1日期和r2日期之间的月份。当r1>r2时,返回的是正数,假如r1和r2是不同月的同一天,则返回的是整数,否则返回的小数。当r1<r2时,返回的是负数。

select months_between(to_date('2018-11-12', 'yyyy-mm-dd'),to_date('2017-11-12', 'yyyy-mm-dd')) as zs, --整数months_between(to_date('2018-11-12', 'yyyy-mm-dd'),to_date('2017-10-11', 'yyyy-mm-dd')) as xs, --小数months_between(to_date('2017-11-12', 'yyyy-mm-dd'),to_date('2018-10-12', 'yyyy-mm-dd')) as fs --负数from dual;

在这里插入图片描述

日期截取函数:

ROUND(r, f)函数: 将日期 r 按 f 的格式进行四舍五入。如果 f 不填,则四舍五入到最近的一天。

select sysdate, --当前时间round(sysdate, 'yyyy') as year, --按年round(sysdate, 'mm') as month, --按月round(sysdate, 'dd') as day, --按天round(sysdate) as mr_day, --默认不填按天round(sysdate, 'hh24') as hour --按小时from dual;

在这里插入图片描述
TRUNC(r, f)函数: 将日期 r 按 f 的格式进行截取。如果 f 不填,则截取到当前的日期。

select sysdate, --当前时间trunc(sysdate, 'yyyy') as year, --按年trunc(sysdate, 'mm') as month, --按月trunc(sysdate, 'dd') as day, --按天trunc(sysdate) as mr_day, --默认不填按天trunc(sysdate, 'hh24') as hour --按小时from dual;

在这里插入图片描述

Oracle 数值型函数

Oracle数值型函数可以是输入一个数值,并返回一个数值的函数,我们经常用到函数如下表:
在这里插入图片描述

Oracle 转换函数

Oracle转换函数是进行不同数据类型转换的函数,是我们平常数据库开发过程当中用的最多的内置函数。常用的函数有to_char()、to_number()、to_date()等等。详细分析如下表:
在这里插入图片描述
提醒:其中数值 f 的格式可以参考下表:
在这里插入图片描述

Oracle聚合函数

Oracle聚合函数同时可以对多行数据进行操作,并返回一个结果。比如经常用来计算一些分组数据的总和和平均值之类,常用函数有AVG()、SUM()、MIN()、MAX()等等。

AVG函数

AVG([distinct ] expr):该函数可以求列或列组成的表达式expr的平均值,返回的是数值类型。其中 distinct是可选参数,表示是否去掉重复行。

案例1、求学生信息表(stuinfo)中学生的平均年龄,代码如下:

select * from stuinfo;
select avg(t.age) from stuinfo t;

使用该函数和其他聚合函数时,都可以和where条件语句和分组GROUP BY 查询组合使用,得到特定的结果。

案例2,、按照班级求各班学生的平均年龄(其中年龄大于等于30岁的不计入在内)。代码:

select classno, avg(t.age)from stuinfo twhere t.age < 30group by t.classno;

#### COUNT函数 count(*|[distinct]expr)函数可以用来计算查询结果的**条数或行数**。函数中必须指定列名或者表达式expr,不然就要全选使用*号。

案例3、查询学生信息表中所有的学生的个数。代码如下:

select count(*) from stuinfo;

MAX/MIN函数

MAX([distinct] expr)、MIN([distinct] expr)函数可以返回指定列或列组成的表达式expr中的最大值或最小值。该函数也通常和where条件、group by分组结合在一起使用。

案例4、求学生信息表中年龄最大的学生的年龄:

select max(age) from stuinfo;

SUM函数

SUM([distinct] expr)函数可以对指定列或列组成的表达式expr进行求和,假如不使用分组group by ,那就是按照整表作为一个分组。
案例5、正好利用sum函数求和乘以人数进行求学生的平均年龄

select classno, sum(age), count(*), sum(age) / count(*), avg(age)from stuinfo twhere t.age < 30group by t.classno;

上一篇:Oracle(三)Oracle运算符                                             下一篇:Oracle(五)Oracle 序列、视图、索引


http://chatgpt.dhexx.cn/article/JlXWsVPL.shtml

相关文章

oracle函数instr函数

1 instr函数的概念 在Oracle中可以使用instr函数对某个字符串进行判断&#xff0c;判断其是否含有指定的字符。在一个字符串中查找指定的字符,返回被查找到的指定 的字符的位置。 2 语法 instr(sourceString,destString,start,appearPosition) instr&#xff08;‘源字符串’,‘…

Oracle常用函数【建议收藏】

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;目前从事DBA及程序编程 &#xff08;Web\java\Python&#xff09;工作&#xff0c;主要服务于生产制造 现拥有 Oracle 11g OCP/OCM、 Mysql、Oceanbase&#xff08;OBCA&#xff09;认证 分布式TBase\TDSQL数据库、国…

Oracle常用函数大全

说明&#xff1a;新文章地址转为 Oracle数据库函数大全_長安社-王于铭.YuMing的博客-CSDN博客https://hevnchin.blog.csdn.net/article/details/132054755 MySQL数据库系统函数大全_長安社-王于铭.YuMing的博客-CSDN博客year&#xff1a;年份、month&#xff1a;月份、day&am…

Oracle中的函数(详细!!!)

文章目录 前言一、SQL中的函数两种SQL函数单行函数单行函数的分类1. 字符型函数LOWER函数UPPER函数INITCAP函数CONCAT函数SUBSTR函数INSTR函数LPAD|RPAD函数REPLACE函数 2. 数字函数ROUND函数TRUNC函数MOD函数 3. 使用日期查看系统时间根据时间查询信息日期的运算MONTHS_BETWEE…

OpenDaylight通过netconf对接netopeer2

目的 利用OpenDaylight(client)的南向接口netconf对接netopeer2(server) 搭建netopeer2 启动Ubuntu20的docker&#xff0c;将内部830端口映射为主机的22830端口 adminubuntu20:~$ docker run -d --name netopeer2_server --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro…

ORAN专题系列-16:5G O-RAN FrontHaul前传接口的网络配置管理协议netconf

前言 前传接口&#xff08;FrontHual&#xff09;是传统的BBU与RU之间的接口&#xff0c;在O-RAN之前&#xff0c;前传接口虽然定义了物理连接的CPRI接口规范标准&#xff0c;但CPRI之上承载的M plane的配置管理数据格式&#xff0c;却是设备厂家私有的。 有基于TCP的、有基于…

实验三:Netconf 接口配置实验(基于Schema API)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Netconf简介1.基本网络架构2.协议框架3.报文格式4.会话建立过程 二、实验步骤1.设备预配2.运维代码编写3.实验结果 前言 云时代对网络的关键诉求之一是网络…

Java NetConf 使用

1. 参考资料 工具包GIT地址 : https://github.com/Juniper/netconf-java 使用教程 : https://www.juniper.net/documentation/cn/zh/software/junos/netconf-java-toolkit/topics/task/netconf-java-toolkit-program-creating-and-executing.html 2. 下载&编译工具包 # 1. …

ComNet

1 ComNet 简介 ComNet设计的核心思想就是用深度神经网络来代替OFDM接收机&#xff0c;和FC-DNN类似。但是最大的不同之处&#xff0c;对接收机进行细化&#xff0c;将接收机分为了为信道估计子网和信号检测子网。每个子网由一个DNN构造&#xff0c;使用现有的简单、传统的解决…

「Python 网络自动化」NETCONF —— Python 使用 NETCONF 管理配置 H3C 网络设备

「Python 网络自动化」系列文章总目录 Nornir 中文手册——基于 Nornir3.0 官方文档的不完全翻译 文章目录 NETCONF 简单介绍NETCONF 协议结构NETCONF 报文结构请求报文格式报文回复格式 NETCONF 配置数据库NETCONF 支持的操作 实验操作基础环境配置网络环境设备配置代码环境 …

OF-CONFIG和NETCONF协议

一、OF-CONFIG协议 1.1 OF-CONFIG设计需求 1.1.1 实现对OF v1.3.1协议设备进行配置的设计需求 1.1.2 实现操作运维的设计需求 1.1.3交换机管理协议需求 1.2 OF-CONFIG协议的数据模型 1.3 OF-CONFIG的传输协议 二、NETCONF协议 2.1 NETCONF协议相对SNMP协议的优点 2.2 …

netconf是啥

netconf是啥 1 历史路由器配置方法&#xff1a;2 问题来了3 解决4 Netconf 是什么参考 1 历史路由器配置方法&#xff1a; 传统路由器配置方法中&#xff0c;以路由器来看&#xff0c;那就要去官网上查看文档&#xff0c;学习产品文档&#xff0c;然后在交换机上输入命令&…

从NETCONF/YANG看网络配置自动化

阅读冗长的NETCONF/YANG的RFC文档是相当乏味枯燥的&#xff0c;结合开发实践&#xff0c;本文试图删其繁&#xff0c;撮其要&#xff0c;给出NETCONF/YANG的轮廓和要点。 引子 NETCONF和YANG的目的是以可编程的方式实现网络配置的自动化&#xff0c;从而简化和加快网络设备和服…

SDN之NETCONF Call Home

本文主要内容都来自于今年二月发布的RFC8071 - NETCONF Call Home and RESTCONF Call Home&#xff0c;该RFC从2015年4月提出到最终发布一共修改了17个版本&#xff0c;其间修改内容可以点击查看详细内容。 介绍 NETCONF Call Home支持两种安全传输网络配置协议分别是Secure …

NETCONF原理

NETCONF简介 网络配置协议NETCONF&#xff08;Network Configuration Protocol&#xff09;提供一套管理网络设备的机制&#xff0c;用户可以使用这套机制增加、修改、删除网络设备的配置&#xff0c;获取网络设备的配置和状态信息。通过NETCONF协议&#xff0c;网络设备可以提…

NETCONF YANG原理

NETCONF YANG原理 网络管理技术背景NETCONF协议介绍YAGN建模语言介绍RESTCONF协议 网络管理技术背景 前言 对于设备的配置管理&#xff0c;工程师更习惯使用CLI命令行的方式与设备交互。该方式简单直接&#xff0c;便于理解。但是在网络自动化领域&#xff0c;CLI方式与设备交…

NetConf Brower使用

1.下载MG-SOFT NETCONF Browser Professional Edition 官方地址 2. 安装MG-SOFT NETCONF Browser 下一步下一步操作即可。 3.连接设备 打开的时候选择Continue即可&#xff0c;无须license。 点击File->Connect ,如下&#xff1a; 输入设备用户名称&#xff1a; 这…

Netconf协议学习笔记

Netconf简介 网络配置协议NETCONF&#xff08;Network Configuration Protocol&#xff09;提供一套管理网络设备的机制&#xff0c;用户可以使用这套机制增加、修改、删除网络设备的配置&#xff0c;获取网络设备的配置和状态信息。通过NETCONF协议&#xff0c;网络设备可以提…

NETCONF、RESTCONF和YANG

目录 一、NETCONF、RESTCONF和YANG是之间什么关系&#xff1f; 二、Netconf简介 2.1、一般使用工具&#xff1a;MG-Soft 简介 三、Netconf YANG 原理与实践 3.1、NETCONF协议 3.2、YANG建模语言 3.3、RESTCONF协议 网管协议&#xff1a; SNMP&#xff08;基于UDP&#…

NETCONF--从NETCONF/YANG看网络配置自动化

阅读冗长的NETCONF/YANG的RFC文档是相当乏味枯燥的&#xff0c;结合开发实践&#xff0c;本文试图删其繁&#xff0c;撮其要&#xff0c;给出NETCONF/YANG的轮廓和要点。 引子 NETCONF和YANG的目的是以可编程的方式实现网络配置的自动化&#xff0c;从而简化和加快网络设备和服…