数据库小技能:Oracle基础之【常用函数】

简介: 虚表dual ,它是一行一列,没有任何数据,常常用于测试。

引言

虚表dual ,它是一行一列,没有任何数据,常常用于测试。

它是oracle特有的用于做函数测试的。

I Oracle常用函数

1.1 字符函数

   upper(str) --,转为大写
   lower(str)--,转为小写
   substr(str,n,m)-- ,从n位开始,截取m个字符
   substr(str,n)--,从n位开始,截取后面字符
   length(str),--得到字符串的长度
   ltrim(str),--去掉左边空格
   rtrim(str),--去掉右边空格
   instr(str,c),--得到字符c在str的位置
   lpad(str,n,c),--将str补足为n位长度,不足左边用字符c代替
   rpad(str,n,c),--将str补足为n位长度,不足右边以字符c代替 
   concat --连接字符串
   initcap(参数) --使当前的字符串的单词的首字母大写
select  initcap('hello zhangkunnan') from dual;

select substr('hello',1,2) from dual ;--小标从1开始

select * from emp where ename=upper(‘&name’);

1.2 数值函数

  • ceil : 向上取整
  • floor: 向下取整
  • round(col,n) 四舍五入
round(457.628,2),小数点后2位四舍五入
      结果 457.63
round(457.628,-1),小数点前1位四舍五入
      结果460

trunc(col,l) 截断数值

当l为正数时,表示截取小数点右边的位数;l为负数时,表示过滤小数点左边的位数。当l不写的时候,效果与l=0一样。
trunc(457.628,2)  结果457.62
trunc(457.628,-1) 结果450 

1.3 日期函数

months_between(date1,date2),两个日期间的月数,结果为实数。
add_months(date,m),增加m个月,m可以为负数,结果为减少m个月。
round,日期四舍五入
trunc,截断日期
last_day ,当月最后一天

日期函数例子

--当前日期增加1个月
select add_months(sysdate,1) from dual;
--去年同月
select add_months(sysdate,-12) from dual;
--年
select trunc(sysdate,'YYYY') from dual;
--月
select  trunc(sysdate,'MM') from dual;
--精确到天,截断小时分秒
select  trunc(sysdate) from dual;
-- 当月最后一天
select last_day(sysdate) from dual;

1.4 转换函数

  1. 日期转为字符:
to_char(date1,’format_model’)
--format_model:转换后的显示格式
--YYYY  年,MM 月,DD 日,HH24 小时,MI 分,SS 秒

例子:

select  to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') rq
from dual;
  1. 字符转为日期
to_date('2007-11-11','YYYY-MM-DD')
  1. 数值转为字符
select  to_char(55676,'fm99,999.00')  from dual
--fm表示去掉前面的空格和0
--结果: 55,676.00

1.5 通用函数

  1. nvl(字段,默认值): 用于判断字段是否为空,如果为空就返回指定的值,否则返回字段本身的值。
select enamel,sal+nvl(comm,0) from emp;
  1. Decode: 分支判断
    Decode(表达式, 条件1,结果1,
                                   条件2,结果2,
                                    …
                                      ,默认结果)
   select decode(&no,1,'值1',2,'值2') from dual

II 聚合函数(组函数)

多行函数,输入一组记录,输出一行记录。

maxminavgsumcount函数。
  • 聚合函数,不能出现在where子句中, 比如where avg(salary) >4000
  • 除了count(*)之外,其它的不统计null值
  count(*)  --,所有行数量
  count(swjg_mc)--,swjg_mc非null值的记录的数量
  count(distinct swjg_dm)--,去掉重复的记录
  count(1),--第一列非null值的记录的数量

III 伪列:给返回结果加上序号

rownum伪列,可以给返回结果加上序号。

如果有order by,序号是乱的,因为序号是order by之前分配的。

加一个子查询可以解决序号是乱的问题

select t.*, rownum
  from (select swjg_dm, swjg_mc 
             from dm_swjg 
       order by swjg_dm ) t

IV 常用的分析函数

row_number() over(partition by ... order by ...) 
rank() over(partition by ... order by ...) 
dense_rank() over(partition by ... order by ...) 
count() over(partition by ... order by ...) 
max() over(partition by ... order by ...) 
min() over(partition by ... order by ...) 
sum() over(partition by ... order by ...) 
avg() over(partition by ... order by ...) 
first_value() over(partition by ... order by ...) 
last_value() over(partition by ... order by ...) 
lag() over(partition by ... order by ...) 
lead() over(partition by ... order by ...)
目录
相关文章
|
17天前
|
存储 SQL 关系型数据库
MySQL数据库中的函数怎样使用?
处理网https://www.91chuli.com/
|
7天前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。
|
2月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
479 28
|
2月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回数据库
Oracle闪回数据库功能类似于“倒带按钮”,可快速将数据库恢复至 earlier 状态,无需还原备份。本文介绍了闪回数据库的使用方法及实战案例:包括设置归档模式、开启闪回功能、记录SCN号、执行误操作后的恢复步骤等。通过具体 SQL 操作演示了如何利用闪回数据库恢复被误删的用户数据。注意,使用此功能前需确保数据库为归档模式。
|
1月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
3月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
1月前
|
存储 关系型数据库 MySQL
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
本文详细介绍了在 MySQL 中创建数据库和表的方法。包括安装 MySQL、用命令行和图形化工具创建数据库、选择数据库、创建表(含数据类型介绍与选择建议、案例分析、最佳实践与注意事项)以及查看数据库和表的内容。文章专业、严谨且具可操作性,对数据管理有实际帮助。
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
|
1月前
|
SQL 关系型数据库 MySQL
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
这是一份详细的MySQL安装与配置教程,适合初学者快速上手。内容涵盖从下载到安装的每一步操作,包括选择版本、设置路径、配置端口及密码等。同时提供基础操作指南,如数据库管理、数据表增删改查、用户权限设置等。还介绍了备份恢复、图形化工具使用和性能优化技巧,帮助用户全面掌握MySQL的使用方法。附带常见问题解决方法,保姆级教学让你无忧入门!
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
|
3月前
|
关系型数据库 MySQL 数据库连接
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
544 82

推荐镜像

更多