今天给各位刚入门的oracle sql的朋友说一些系统自带的常用函数,通过函数来实现某些效果会非常的省事便捷,函数可以用在适当的dml语句和查询语句中。

我们今天所有的示例都为scott模式下的emp表,下面是该表的当前数据

一 substr()函数

说明

1.substr()函数为字符串截取函数

2.需要传输三个参数,分别是指定截取字符串,指定开始截取位置,和截取长度,来得出需要的结果

3.起始截取位置都是从左开始数,如果想从右边开始则需要在指定起始位置前面写负号

4.无论从左还是右开始截取,截取位数始终是从指定位置从左往右数

5.如果指定的截取个数大于原有的字符长度,则会从指定位置截取到最后一位为止

基本语法

select substr(string [-]int,int) from tab;

示例1

通过截取job字段

默认从左边开始第一个字符截取,截取3位

示例2

从右开始第二个字符,截取3位

示例3

指定截取长度大于字符串剩余长度

二、max()函数

说明

1.求出一列的最大值

2.

只需要传入要计算的列名

3. 计算时候会自动抛开为null的值

4.只能传入一列作为参数

基本语法

select max(col) from tab;

示例

求出最大的empno

三、min()函数

说明

1.求出一列的最小值

2.只需要传入要计算的列名

3. 计算时候会自动抛开为null的值

4.只能传入一列作为参数

基本语法

select  min(col) from tab;

示例

求出最小的mgr列值

四、sysdate

说明

1.sysdate可以得出当前的系统时间,会精确到时分秒(当然这个系统顾名思义是系统上的时间,如果系统时间是错的,那么得出的也就是错的)

2.sysdate 在where中使用的场景更多

3.如果查询当前时间建议使用基表dual(用其他表也可以,但是会跟根据表中的行数而显示多次)

基本语法

select sysdate from dual;

select  *  from tab where col=sysdate;

示例1

查询当前系统时间

示例2

在where条件中使用

(查询雇佣日期早与当前时间的员工信息)

五、trunc()函数

说明

可以对数字和日期字段进行截取

对于数字截取默认返回整数,对于时间截取会舍去时分秒

必要传入进行处理的时间或者数字格式的字段或者字符串,可选参数用来控制显示结果

对于返回数字来说必须,要控制返回的小数必须为非0,否则不会显示小数

对于数字来说,不会四舍五入

基本语法

select trunc(sysdate[,'yyyy'|,'mm'|,'dd']) from dual;

select  trunc(col[,int])  from tab;

截取时间示例

示例1

截取当前时间

示例2

截取当前时间返回该年第一天

示例3

截取当前时间返回,该月第一天

示例3

截取当前时间返回,该时间字段的年月日,等同于不加任何参数

数字截取示例

示例1

返回整数

示例2

保留一位小数

(由于小数一位小数正好是0,所以不会显示小数结果)

正常的显示结果

示例3

整数取舍

(将指定位数前加上符号,则会指定整数部分变成0)

六、to_date()

说明

将字符串转换成为时间格式

必须明确指定时间格式

字符串或字段值必须满足指定的时间格式

在where条件中使用情况较多

基本语法

select to_date('xxxxxxxxxxxxxx','YYYY-MM-DD H24:MI:SS') from dual;

select  to_date(col,'YYYY-MM-DD') from tab;

示例1

将字符串转换成为时间

七、to_char()

说明

将时间格式转换成字符串格式

可以指定转换格式,在指定的格式必须满足可以将日期转换过来

在where条件中使用情况较多

基本语法

select to_char('xxxx-xx-xx xx:xx:xx') from dual;

select  to_date(col,'YYYY-MM-DD') from tab;

示例

将emp的hiredate字段转换为字符

八、upper()

说明

将字符串或者字段值全部转换为大写

基本语法

select upper('xxxx') from dual;

select  upper(col) from tab;

示例

转换字符串大写

九、lower()

说明

将字符串或者字段值全部转换为小写

基本语法

select lower('xxxx') from dual;

select  lower(col) from tab;

示例

将emp表的job字段转换为小写

十、sum()

说明

求出数值字段类型一列的总和

只能传入一个字段进行求和

基本语法

select  sum(col) from tab;

示例

求出emp所有人的工资总和

十一 count()

说明

统计检索结果的返回条数

根据不同的条件返回结果数不同,如果没有条件则代表统计全表条数

基本语法

select  count(*) from tab;

select  count(*) from tab where col1>'xxxxx';

示例1

统计emp表总数

示例2

统计部门编号为20的所有员工数

十二、distinct

说明

消除一列中重复的值

可以有多个字段,确保组合值是唯一的

基本语法

select  distinct col [,col1,col2...] from tab;

示例1

消除emp表中mgr重复的

示例2

消除emp表中mgr和job重复的

十三、group by

说明

用来分组显示,每个组和确保是唯一的

分组在查询末尾用,查询的字段必须是分组的字段

如果用来分组统计可以用having 来过滤统计结果

基本语法

select   col1 [col2,col3...] from tab group by col1 [col2,col3...]  [having....];

示例1

用来查询分组emp表的mgr和job字段

示例2

统计分组

(统计每个部门中有多少员工)

示例3

统计过滤

(按照上述统计过滤结果大于4的)

写在最后,这些函数都是oracle自带的一些常用的基本函数,通过函数得到我们想要的结果是非常便捷的。希望能跟各位朋友多交流oracle知识。

oracle数据库中的系统自带表情_oracle 系统自带几个常用函数相关推荐

  1. win7 oracle数据库删除用户名,图文帮你win7系统删除Oracle数据库中的用户的具体方法...

    许多win7系统用户在工作中经常会遇到对win7系统删除Oracle数据库中的用户进行操作的情况,比如近日有用户到本站反映说win7系统删除Oracle数据库中的用户的情况,但是却不知道要怎么操作wi ...

  2. oracle导出数据带where,CSS_指定一个where条件来有条件地导出记录,在Oracle数据库中,exp中的query - phpStudy...

    指定一个where条件来有条件地导出记录 在Oracle数据库中,exp中的query参数可以指定一个where条件来有条件地导出记录, 对于许多不常使用此选项的朋友来说, 经常会遇到下面这样的错误: ...

  3. Oracle数据库中序列(SEQUENCE)的用法详解

    http://database.51cto.com/art/201108/280742.htm 在Oracle数据库中,什么是序列呢?它的用途是什么?序列(SEQUENCE)其实是序列号生成器,可以为 ...

  4. oracle数据库中最常用的sql语句

    对SQL语句进行调整,往往有一项前期工作,就是定位最常用的SQL 语句.Oracle数据库可以从多个方面取得SQL语句.如从数据库自身的存储过程或者函数中取得,也可以从前台的应用程序中取得.所以,数据 ...

  5. 一起ORACLE数据库中数据查询结果不一致问题的排查过程

    一.问题描述 在某软件开发项目中,需要在ORACLE数据库中建立十张类型相同的员工信息表tb_employeeinfo0~tb_employeeinfo9,并建立向这十张表中插入数据的存储过程.ORA ...

  6. 导出Windows服务器下的Oracle数据库并导入到Linux服务器下的Oracle数据库中

    2019独角兽企业重金招聘Python工程师标准>>> 说明: 1.Windows Oracle数据库 操作系统:Windows Server 2008 R2 IP地址:192.16 ...

  7. oracle 数据库中(创建、解锁、授权、删除)用户

    上文我们已经建立了名为orcl66的数据库. 想要在数据库中创建.修改用户需要我们以管理员权限登录到数据库中. 首先我们通过sqlplus命令登录连接数据库. 输入sqlplus命令--用户名: sy ...

  8. 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...

    1 背景 ITM系统目前支持MysqL.Oracle数据库,由于现在需要和CA产品进行结合,用CA产品的采集功能进行数据采集,因此需要使用CA产品的sqlServer数据库,为了使得系统支持sqlse ...

  9. linux删除sde服务,在Oracle数据库中部署多个SDE服务

    在Oracle数据库中部署多个SDE服务 一.一个Oracle部署多个SDE服务(采用问题的方式提供答案) 问题: 目的: 在机器上安装了oracle实例,默认会产生一个数据库实例(SID为 Orcl ...

最新文章

  1. 一棵树的生成树有几颗_次小生成树(树剖,生成树)
  2. 毫秒级的时间处理上G的图片(生成缩略图)
  3. 未能加载程序集或它的一个依赖项_英伟达发布kaolin:一个用于加速3D深度学习研究的PyTorch库...
  4. html的表格使用函数,从另一个HTML表格创建HTML表格的jQuery函数
  5. java分隔符算法_《Java数据结构和算法》栈 分隔符分配
  6. 如何用r语言搜集报表_基迪奥免费小课堂——如何用R语言绘制GSEA plot
  7. HLSL编译工具—FXC
  8. 华为 MateBook 14 Linux 版真机:搭载深度 Linux 系统
  9. K-th Closest Distance
  10. MEMCACHE分布式算法(PHP)
  11. python 技能清单_Python清单
  12. python 线程 的类库_python类库32[多线程同步Lock+RLock+Semaphore+Event]
  13. excel图表交互联动_Excel图表联动的三种方法
  14. 旅游网毕业设计java代码教程_基于JavaWeb技术的旅游网站的设计与实现--毕业论文.doc...
  15. 智能消防栓监控系统解决方案
  16. 思维导向树6级节点_8种常见的思维导图
  17. PR(Premiere) 鼓点节拍插件Beat Edit,打不开的原因
  18. BZOJ5336 DP套DP
  19. Domino版本、维护版本和补丁程序概念
  20. PaddleClas-SSLD知识蒸馏方法梳理(82.4%ResNet50系列模型养成之路)

热门文章

  1. faker生成测试数据,一些数据生成方法摘取
  2. 【C语言】输入一个三位数,逆序输出
  3. vim 文本编辑器_Vim Windows安装指南–如何在PC上的PowerShell中运行Vim文本编辑器
  4. 最小的linux服务器_学习以最小的努力构建GraphQL服务器
  5. 金融时间序列计算分析题1
  6. 服务器采用虚拟化应用漂移,虚拟化技术在数字化医院建设中的应用
  7. python 硬件自动化测试_村长告诉你:Python实现性能自动化测试竟然如此简单
  8. 苹果x和xsmax有什么区别_苹果手机不卡的真相是什么,安卓和iOS有本质区别
  9. virtualbox中windows虚拟机安装增强功能
  10. 面向对象三大特性总结