007.Oracle函数

这篇具有很好参考价值的文章主要介绍了007.Oracle函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

007.Oracle函数,Oracle PL/SQL,oracle,数据库,oracle教程,数据库教程,plsql,sql

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集👈👈

007.Oracle函数,Oracle PL/SQL,oracle,数据库,oracle教程,数据库教程,plsql,sql

Oracle函数
分类 函数 说明 参数
分组函数 Max 最大值 Max(字段名)
Min 最小值 Min(字段名)
Sum 求和 Sum(字段名)
Count 计数 Count(字段名)
Avg 平均值 Avg(字段名)
字符函数 Lower 将字符串转换为小写 Lower(char)
Upper 将字符串转化为大写 Upper(char)
Length 返回字符串的长度 Length(char)
Substr 取字符串的子串 Substr(char,pos,[len])
Replace 用新字符串替换部分字符串 Replace(char,old_char,new_char)
Instr 获取子串在字符串的位置 Instr(char,findchar[,n[,m]])
Lpad 字符串左侧补齐到指定长度 Lpad(char,m,'str')
Rpad 字符串右侧补齐到指定长度 Rpad(char,m,'str')
数学函数 Round 四舍五入 Round(n, [m])
Trunc 截取数字 Trunc(n, [m])
Mod 取模 Mod(m, n)
Floor 返回小于或等于n的最大整数 Floor(n)
Ceil 返回大于或等于n的最小整数 Ceil(n)
Abs 返回绝对值 Abs(n)
其他 Cos、Cosh、exp、ln、log、sin、sinh、sqrt、tan、tanh、acos、asin、atan、power
日期函数 Sysdate 返回系统日期 Sysdate
Add_months 返回指定日期d增加指定月数n后的日期 Add_months(d,n)
Last_day 返回指定日期d所在月份的最后一天 Last_day(d)
转换函数 to_char 转换为字符串 to_char()
to_date 将字符串转换为日期 to_date(char,'yyyy-mm-dd')
系统函数 sys_context 获取系统信息 sys_context('userevn','db_name')
判断函数 decode 如果expression=value,则输出result1,否则输出result2 decode(expression,value,result1,result2)
如果expression=value1,则输出result1,expression=value2,输出reslut2,expression=value3,输出result3 decode(expression,value1,result1,value2,result2,value3,result3......,default)
sign() 参数与0的比较
大于0则返回1,等于0则返回0,小于0则返回-1
sign(1-2)
---
示例表数据

字符函数
  • Replace函数

  • 语法:Replace(char,old_char,new_char)

  • 用新字符串(new_char)串替换指定字符串(old_char)

    select ename, replace(ename,'A','新') as "new_name" from emp
    
  • Instr函数

  • 语法:Instr(char,findchar[,n[,m]]

  • 从字符串(char)中指定位置(n)开始查找指定字符串(findchar)第m次出现的位置

    select ename, instr(ename,'A',1, 2) as "new_name" from emp
    
数学函数
  • Round函数

  • 语法:Round(n, [m])

  • 用于执行四舍五入

    • 如果省略m,则四舍五入到整数
    • 如果m是正数,则四舍五入掉小数点m位后的数字
    • 如果m是负数,则四舍五入掉小数点前m位数字
      select sal,round(sal),round(sal,2),round(sal,-2) from emp where empno in ('8002','8003');
      
  • Trunc函数

  • 语法:Trunc(n, [m])

  • 截取数字

    • 如果省略m,则截取整数部分,去掉小数
    • 如果m是正数,则截取掉小数点m位后的数字
    • 如果m是负数,则截取掉小数点前m位的数字
      select sal,trunc(sal),trunc(sal,2),trunc(sal,-2) from emp where empno in ('8002','8003');
      
  • 其他数学函数文章来源地址https://www.toymoban.com/news/detail-810122.html

    • acos(n):返回数字的反余旋值
    • asin(n):返回数字的反正旋值
    • atan(n):返回数字的反正切
    • con(n)
    • exp(n):返回e的n次幂
    • log(m,n):返回对数值
    • power(m,n):返回m的n次幂
转换函数
  • 转换函数用于将一种数据类型从一种转为另一种。在某些情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型
    create table t1(id int);
    insert into t1 values('10') ——> oracle会自动将'10'转换成10
    
    create table t2(id varchar2(10));
    insert into t2 values(10) ——> oracle会自动将10转换为'10'
    
  • 但是隐含转换并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函数进行转换
  • to_char
  • dual:oracle自带的临时表,用于数据测试
    • yy:两位数的年份
    • yyyy:四位数的年份
    • mm:两位数的月份
    • dd:两位数的天
      select to_char(sysdate,'yyyy-mm-dd') as "日期" from dual;
      返回结果:20-12-11
      
      select to_char(sysdate,'yyyy-mm-dd') from dual
      返回结果:2020-12-11
      
    • hh24:24小时制显示小时
    • hh12:12小时制显示小时
    • mi:显示分钟
    • ss:显示秒
      select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as "日期" from dual;
      返回结果:2020-12-11 22:29:42
      
      select to_char(sysdate,'yyyy-mm-dd hh12:mi:ss') as "日期" from dual;
      返回结果:2020-12-11 10:30:17
      
    • 9:显示数字,并忽略前面0
    • 0:显示数字,如果位数不足,则用0补齐
    • .:在指定位置显示小数点
    • ,:在指定位置显示逗号
    • $:在数字前加美元符
    • L:在数字前加本地货币符号(根据oracle安装语言)
    • C:在数字前加国际货币符号
    • G:在指定位置显示组分隔符
    • D:在指定位置显示小数点符号
      select to_char('800','L99999.99'),to_char('800','$99999.99'),to_char('800','C99999.99') from dual;
      返回结果:¥800.00 | $800.00 | CNY800.00
      
      select to_char('800','L00000.00')  from dual;
      返回结果:¥00800.00
      
      select to_char('80000','L99,999.99')  from dual;
      返回结果:¥80,000.00
      
    • 例:查询1980年入职的员工信息
      select * from emp where to_char(HIREDATE,'yyyy')=1980
      
    • 例:查询所有12月份入职的员工信息
      select * from emp where to_char(hiredate,'mm')=12
      
  • TO_DATE函数
    • 用于将字符串转换成date类型的数据,按特定格式插入日期值
      insert into emp values('9999','小红','MANAGER',7782,'11-11月-2020',1000,100,10);
      
      insert into emp values('9998','小明','MANAGER',7782,to_date('2020-12-12','YYYY-MM-DD'),2000,200,20);
      
系统函数
  • sys_context
  • 系统函数,通过该函数可以查询一些重要信息
    • terminal:当前会话客户所对应的终端的标识符
    • lanuage:语言
    • db_name:当前数据库名称
    • nls_date_format:当前会话客户所对应的日期格式
    • session_user:当前会话客户锁对应的数据库用户名
    • current_schema:当前会话客户所对应的默认方案名
    • host:返回数据库所在的主机的名称
  • 例:查询当前在使用的数据库名称
    select sys_context('userenv','db_name') from dual;
    
  • 例:查询当前用户名
    select sys_context('userenv','session_user') from dual;
    
  • 例:查询当前数据库所在主机名称
    select sys_context('userenv','host') from dual;
    
日期函数
  • sysdate函数
    • 获取系统日期函数
      select sysdate from dual;
      
      返回结果:2020/12/21
      
  • add_months
    • 返回指定日期增加指定个月份之后的日期
      select sysdate,add_months(sysdate,3) from dual;
      
      返回结果:
      SYSDATE     ADD_MONTHS(SYSDATE,3)
      ----------- ---------------------
      2020/12/21  2021/3/21 22:17:48
      
    • 例:查询入职日期小于8个月的员工信息
      select * from emp where sysdate < add_months(HIREDATE,8)
      
    • 例:查询入职满10年的员工信息
      select * from emp where sysdate >= add_months(hiredate,120)
      
    • 例:统计所有员工的入职天数
      select ename "姓名", trunc(sysdate-hiredate) as "入职天数" from emp
      
  • last_day
    • 获取指定日期所在当月最后一天日期
    • 例:找出各月份倒数第三天入职的所有员工
      select * from emp where hiredate=(last_day(hiredate)-2)
      
  • decode
    • 判断是否为真,返回指定值
      decode(expression,value,result1,result2)
      // 如果expression=value,则输出result1,否则输出result2
      decode(expression,value1,result1,value2,result2,value3,result3......,default)
      // 如果expression=value1,则输出result1,expression=value2,输出reslut2,expression=value3,输出result3,若expression不等于所列出的所有value,则输出为default
      
  • sign()
    • 判断参数的值大于0则返回1,等于0则返回0,小于0则返回-1
    • 将成绩表中分数大于90分的分为优秀,80-90分为良好,70-80分为中等,60-70分为及格,60分以下为不及格
      decode(sign(成绩-90),1,"优秀",0,"良好",-1,"及格")
      

小课堂
  • oracle在创建用户的同时会自动创建一个方案,方案名与用户名相同。方案里有很多数据对象(表、视图、触发器、存储过程等)
  • oracle是方案的方式来组织数据对象

到了这里,关于007.Oracle函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 教你如何通过内网穿透轻松实现PL/SQL远程连接Oracle数据库【内网穿透】

    转发自CSDN远程穿透的文章:公网远程连接Oracle数据库【内网穿透】 Oracle,是甲骨文公司的一款关系数据库管理系统,它在数据库领域一直处于领先地位。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、

    2024年02月03日
    浏览(56)
  • 异地访问Oracle数据库的解决方案:利用内网穿透实现PL/SQL远程连接的建议与步骤

    ​ 小月糖糖主页 在强者的眼中,没有最好,只有更好。 移动开发领域优质创作者,阿里云专家博主 Oracle,是甲骨文公司的一款关系数据库管理系统,它在数据库领域一直处于领先地位。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便

    2024年02月11日
    浏览(48)
  • 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)

    问题 根据身份证号统计年龄(18位) Oracle 思路 (1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容。 (2)To_date()函数可以转换不同格式的日期,通过使用to_date函数可以将字符串类型的日期转换成date格式。 (3)Months_between()函数反悔两个日期之间的

    2024年02月11日
    浏览(47)
  • 【Oracle】使用 SQL Developer 连接 Oracle 数据库

    SQL Developer 是 Oracle 官方推出的一款免费的数据库开发工具,它提供了丰富的数据库开发功能,其中包括连接 Oracle 数据库的功能。 在本文中,我们将从多个方面详细阐述如何使用 SQL Developer 连接 Oracle 数据库。 在连接 Oracle 数据库前,需要需要做一些准备工作,包括安装 SQ

    2024年02月06日
    浏览(67)
  • ORACLE数据库 开窗函数

    开窗函数 2.1开窗函数的定义及语法 开窗函数(又名:分析函数,窗口函数,OLAP函数) 聚合函数:将数据按照一定的规则分组,统一分析各组的某项情况,每个分组返回一行结果 开窗函数:将数据按照一定的规则分组,统一分析各组的某项情况,每行数据返回一行结果 (

    2024年02月11日
    浏览(46)
  • 【Oracle 数据库 SQL 语句 】积累1

    : grouping sets ((分组字段1,分组字段2),()) : coalesce合并多个字段,显示第一个不为null的值

    2024年02月13日
    浏览(58)
  • Sql server 连接 Oracle数据库

    前提预警:本机必须装有Oracle客户端 检查是否安装Oracle客户端,并检查TNS信息是否配置完成 1.1、 在cmd中执行 sqlplus ,没有报错并出现Oracle版本号,则表示Oracle已安装 1.2、配置TNS信息(最上面的10.0.0.130可随意定义,eg:test、orcl、qerghasd…) 配置ODBC数据信息 2.1、打开ODBC数据

    2024年02月03日
    浏览(56)
  • 用SQL语句操作Oracle数据库——数据更新

    数据库中的数据更新操作有3种:1)向表中添加若干行数据(增);2)删除表中的若干行数据(删);3)修改表中的数据(改)。对于这3种操作,SQL语言中有3种相应的语句与之对应。接下来让我们逐一详细地了解一下。 本文我们依然使用以下三个表来进行数据更新操作:

    2024年01月19日
    浏览(64)
  • oracle如何定期备份数据库sql文件

    Oracle数据库可以使用以下方法定期备份数据库的SQL文件: 使用Oracle的备份和恢复工具RMAN(Recovery Manager)进行备份。RMAN提供了全面而高效的数据库备份和恢复功能。您可以使用RMAN备份数据库的SQL文件,并将其存储在指定的位置。可以使用RMAN备份的命令来备份数据库,例如:

    2024年01月25日
    浏览(75)
  • Sql server和Oracle默认数据库

            SQL Server 和 Oracle 都有自带的一些默认数据库,保存了不同的系统信息和配置数据。         SQL Server 上的默认数据库:          master :SQL Server 引擎的系统级目录,存储了 所有系统层级的信息和元数据 ,例如登录账号信息。         tempdb:存储各种系

    2024年02月09日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包