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

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

文章目录

  • 前言
  • 一、SQL中的函数
    • 两种SQL函数
      • 单行函数
        • 单行函数的分类
          • 1. 字符型函数
            • LOWER函数
            • UPPER函数
            • INITCAP函数
            • CONCAT函数
            • SUBSTR函数
            • INSTR函数
            • LPAD|RPAD函数
            • REPLACE函数
          • 2. 数字函数
            • ROUND函数
            • TRUNC函数
            • MOD函数
          • 3. 使用日期
            • 查看系统时间
            • 根据时间查询信息
            • 日期的运算
            • MONTHS_BETWEEN函数
            • ADD_MONTHS函数
            • NEXT_DAY函数
            • LAST_DAY函数
            • ROUND函数
          • 4. 转换函数
            • TO_CHAR函数操作日期
            • TO_NUMBER和TO_DATE函数


前言

此篇文章是我在B站学习时所做的笔记,主要对 函数的基本概念和分类和常见的单行函数,sql语句部分为亲自动手演示过的,方便复习用。此篇文章仅供学习参考。


提示:以下是本篇文章正文内容,下面案例可供参考

一、SQL中的函数

  1. 函数是用于执行数据处理和复杂运算的。通过对一组数据进行一系列的运算,得到一个最终的需要输出的结果。函数通常都会有一个或多个输入,被称作函数的参数在函数的内部对输入的参数进行逻辑计算,最终会得到一个或多个值,但是只有一个值作为函数的计算结果返回给客户
  2. 函数可以出现在sql语句的各个位置,最常见的是出现在查询列表中

在这里插入图片描述

两种SQL函数

  1. 根据函数对多行输入数据的处理方式,函数分为单行函数和多行函数。
  2. 单行函数:每行作为一个输入参数,经过函数的计算得到每行的计算结果单行函数执行的操作影响表中每一行的显示效果
  3. 多行函数多多行输入值进行计算,得到多行对应的一个结果
    在这里插入图片描述
--单行函数:每次取一条记录,作为函数的参数,得到这条记录对应的单个结果
SELECT NAME,LENGTH(NAME)
FROM A_CHENS;
--多行函数:一次性把多条记录当作参数输入给函数,得到多条记录对应的当个结果
SELECT  MAX(CHENGJI)
FROM A_CJJ_4;

单行函数

  • 单行函数对单行输入参数进行计算,在每行中取得的值作为函数的输入参数,在计算后将结果返回给用户。每行都会得到相应的计算结果
  • 单行函数可以对数据进行复杂的计算,也可以进行数据类型的转换,还可以对特殊的数据进行处理。
  • 另外,单行函数还可以嵌套。一个函数可以作为另一个函数的输入参数

单行函数的分类

在这里插入图片描述

1. 字符型函数

字符函数对文本串进行操作
在这里插入图片描述

字符型函数解释
LOWER()将整个字符串转换为小写
UPPER()将整个字符串转换为大写
INITCAP()把每个单词收个字母变成大写
CONCAT()连接两个字符串
SUBSTR()截取子字符串(全角算2字符)
LENGTH()返回字符串的长度(全角算1字符)
INSTR()字符串中搜索字符位置(全角算1字符)
LPAD()在左边添加字符
RPAD()在右边添加字符
TRIM()删除左边和右边字符串
REPLACE()替换子字符串

表A_CHENS 数据:

SELECT *
FROM A_CHENS;

在这里插入图片描述

LOWER函数
SELECT *
FROM A_CHENS
WHERE LOWER(XMPY)='chenyi';

在这里插入图片描述

UPPER函数
SELECT *
FROM A_CHENS
WHERE XMPY=UPPER('chener');

在这里插入图片描述

INITCAP函数
SELECT PASSWORD,XMPY
FROM A_CHENS
WHERE INITCAP(PASSWORD)='Chensi';

在这里插入图片描述

CONCAT函数
SELECT NAME||XMPY,CONCAT(NAME,XMPY)
FROM A_CHENS;

在这里插入图片描述

SUBSTR函数
SELECT XMPY,SUBSTR(XMPY,1,2)
FROM A_CHENS;

在这里插入图片描述

INSTR函数
SELECT XMPY,INSTR(XMPY,'U')
FROM A_CHENS;

在这里插入图片描述

LPAD|RPAD函数
SELECT PASSWORD,LPAD(PASSWORD,10,'$'),rPaD(PASSWORD,10,'*')
FROM A_CHENS;

在这里插入图片描述

REPLACE函数
SELECT PASSWORD,REPLACE(PASSWORD,'a','A')
FROM A_CHENS;

在这里插入图片描述


2. 数字函数

数字函数是对数字进行操作的函数,这类函数比较少,也比较简单。
只有三种:

  • 对数字四舍五入的ROUND函数;
  • 对数字进行截取的TRUNC函数;
  • 求模或求余的MOD函数
ROUND函数
SELECT ROUND(45.943,2) "小数点后两位",ROUND(45.943,0) "个位",ROUND(45.942,-1) "十位"FROM SYS.dual;

在这里插入图片描述

TRUNC函数
SELECT TRUNC(45.943,2"小教点后两位",
TRUNC(45.343, 0)"个位",
TRUNC(45.942,-1)"十位"
FROM sys.DUAL;

在这里插入图片描述
查看A_CJJ_4表数据:

SELECT* FROM A_CJJ_4;

在这里插入图片描述

MOD函数
SELECT CHENGJI,PINGSHIFEN,MOD(CHENGJI+PINGSHIFEN,2)
FROM A_CJJ_4
WHERE PINGSHIFEN=80;

在这里插入图片描述


3. 使用日期
  • 日期函数对日期数据进行处理,得到新的日期或者数字
  • Oracle以内部数字格式存储日期:世纪,年,月,日,小时,分钟,秒
  • 缺省的日期格式是 DD-MON-YY
  • Oracle内置的SYSDATE函函数,是返回日期和时间的函数
查看系统时间
--查看系统时间
SELECT SYSDATE FROM SYS.DUAL

在这里插入图片描述

根据时间查询信息
SELECT *
FROM A_CHENS
WHERE BIRTHDAY='20-7月-2001';

在这里插入图片描述

日期的运算
  • 日期类型的数据可以使用算术运算符进行计算
  • 从日期中加或减一个数值,以得当一个新的日期结果值
  • 两个日期相减以便得到他们相差多少天
  • 注意:日期不能加另一个日期,目期也不支持乘除运算
SELECT NAME,SYSDATE,BIRTHDAY,ROUND((SYSDATE-BIRTHDAY)/365,0) 生活年数
FROM A_CHENS;

在这里插入图片描述
日期函数

函数描述
MONTHS_BETWEEN两日期相差多少月,返回两个日期间隔月数
ADD_MONTHS在一个日期上加或减若干月到新的日期,返回指定月数后的日期
NEXT_DAY取得从当前日期开始遇到的第一指定星期几的日期,返回下周某一天的日期
LAST_DAY计算指定日期所在月份的最后一天的日期,返回本月最后一天的日期
ROUND取得按年或月四舍五入得到的新日期,四舍五入后的期间第一天
TRUNC取得按年或月截取得到的新日期,返回日期所在期间的第一天
MONTHS_BETWEEN函数
SELECT NAME,SYSDATE,BIRTHDAY,(SYSDATE-BIRTHDAY)/30 普通计算,months_between(SYSDATE,BIRTHDAY)精确计算
FROM A_CHENS;

在这里插入图片描述

ADD_MONTHS函数
SELECT NAME,SYSDATE,BIRTHDAY,BIRTHDAY+90 粗略的三个月,add_months(BIRTHDAY,3)精确日期
FROM A_CHENS;

在这里插入图片描述

NEXT_DAY函数
select sysdate 当时日期,next_day(sysdate,'星期一')下周星期一,next_day(sysdate,'星期二')下周星期二,next_day(sysdate,'星期三')下周星期三,next_day(sysdate,'星期四')下周星期四,next_day(sysdate,'星期五')下周星期五,next_day(sysdate,'星期六')下周星期六,next_day(sysdate,'星期日')下周星期日from dual;

在这里插入图片描述

LAST_DAY函数
SELECT NAME,BIRTHDAY,LAST_DAY(BIRTHDAY)
FROM A_CHENS;

在这里插入图片描述

ROUND函数
select sysdate 当时日期,ROUND(sysdate)最近0点日期,ROUND(sysdate,'day')最近星期日,ROUND(sysdate,'month')最近月初,ROUND(sysdate,'q')最近季出日期,ROUND(sysdate,'year')最近年初日期from dual;

在这里插入图片描述


4. 转换函数

在执行数据操作的时候,如果两个类型不同的数据进行计算,很可能会出错,所以要使用数据类型转换函数
在这里插入图片描述
注:尽管可以使用隐式数据类型转换,但是还是建议执行显式的数据类型转换,以确保SQL语句的可靠性。

数据类型转换
在这里插入图片描述
日期格式基础

1、在转换日期为字符串的时候,日期中的年,月,日,时,分,秒都需要相应的格式控制符来控制转换的显示格式

格式解释
YYYY,YYY,YY分别代表4位,3位,2位的数字年份
YEAR年的拼写
MM数字月
MONTH月份的全拼名称
MON月份的缩写
DD数字日
DAY星期的全拼
DY星期的缩写

2、与日期控制符相对应,时间也需要相应的格式控制符来描述。
否则默认是不显示时间的。即使包含了时间,日期格式控制符也比较简单

格式控制符描述
AM表示上午或下午
HH24,HH1224小时制或12小时制
Ml分钟
SS秒钟
SP数字的拼写
TH数字的序数词
“特殊字符”在日期时间中加入特殊的字符

3、
时间格式作为日期的一部分

HH24:MI:SS AM15:45:32 PM

用双引号括起来以加字符串

DD “of” MONTH12 of OCTOBER

数值拼写

ddspthfourteenth
--隐式转换
SELECT *
FROM A_CHENS
WHERE SAL='22';

在这里插入图片描述


TO_CHAR函数操作日期

格式

  • 必须用单引号括起来,并且是大小写敏感
  • 可包含任何有效的日期格式

案例一:TO_CHAR把日期转换为字符

SELECT NAME,BIRTHDAY ,TO_CHAR(BIRTHDAY,'YYYY-MM-DD')
FROM A_CHENS
WHERE TO_CHAR(BIRTHDAY, 'YYYY-MM-DD' )= '2004-01-01';

在这里插入图片描述

SELECT SYSDATE,TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS AM DAY')
FROM SYS.DUAL;

在这里插入图片描述
案例二:TO_CHAR把数值转换为字符

使用TO_CHAR函数将数字作为字符显示
在这里插入图片描述

--TO_CHAR,把数值转换为字符
--$有就显示格式,没有就不显示
--L有就显示该格式,没有强制显示该格式
SELECT SAL , To_CHAR (SAL, '$999,999.00' ) , To_CHAR(SAL,'L000,000.00')
FROM A_CHENS
WHERE NAME='陈一';

在这里插入图片描述

TO_NUMBER和TO_DATE函数

案例一:使用TO_NUMBER函数将字符转换为数字,字符的格式和模板的模式必须要一致

--TO_NUMBER把字符型的数据转换为数值,字符的格式和模板的模式必须要一致
SELECT TO_NUMBER('$800.00','$999,999.00')
FROM SYS.DUAL

在这里插入图片描述
案例二:使用TO_DATE函数将字符转换为日期

--TO_DATE把字符型的数据转为日期型的数据
SELECT *
FROM A_CHENS
WHERE BIRTHDAY=TO_DATE('2004-1-1','YYYY-MM-DD');

在这里插入图片描述


如若侵权,请及时与我联系。
此篇文章仅供学习参考,禁止转载!


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

相关文章

OpenDaylight通过netconf对接netopeer2

目的 利用OpenDaylight(client)的南向接口netconf对接netopeer2(server) 搭建netopeer2 启动Ubuntu20的docker,将内部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

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

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

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、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接收机,和FC-DNN类似。但是最大的不同之处,对接收机进行细化,将接收机分为了为信道估计子网和信号检测子网。每个子网由一个DNN构造,使用现有的简单、传统的解决…

「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 历史路由器配置方法:2 问题来了3 解决4 Netconf 是什么参考 1 历史路由器配置方法: 传统路由器配置方法中,以路由器来看,那就要去官网上查看文档,学习产品文档,然后在交换机上输入命令&…

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

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

SDN之NETCONF Call Home

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

NETCONF原理

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

NETCONF YANG原理

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

NetConf Brower使用

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

Netconf协议学习笔记

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

NETCONF、RESTCONF和YANG

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

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

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

Netconf

Netconf属于软件定义网络的管理和控制协议。 ETCONF协议,由RFC 6241定义,用以替代命令行界面(command line interface, CLI)、简单网络管理协议(Simple Network Management Protocol, SNMP)以及其它专有配置机制。管理软件可以使用NETCONF协议将配置数据…

NetConf简介之一篇文章读懂NetConf

一、背景 有的人早上不起床刷手机,有的人起床之后再卫生间刷手机,有的人在上班的地铁上刷手机,有的人在下班之后的班车上刷手机,有的人在晚上不睡觉刷手机。这其中有许多离不开技术,其中有一个技术就是网络。 网络互…

NETCONF协议详解

目录 目录概述NETCONF11协议详解 1 安全传输层2 消息层 21 hello 211 几种常用的能力 22 rpc和rpc-reply23 notification 3 操作层 31 get32 get-config33 edit-config34 copy-config35 delete-config36 lock37 unlock38 close-session39 kill-session 4 内容层 标准地图相关网…

netconf简介

简介 根据rfc6241 Network Configuration Protocol (NETCONF)介绍,netconf协议提供一种简单的机制,通过该机制网络设备进行管理。协议可以是设备对外提供一套完整并且规范的配置接口,管理者可以通过这些标准接口对设备进行配置操作。 netconf…