oracle 系统自带几个常用函数

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

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

《oracle 系统自带几个常用函数》

一 substr()函数

说明

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

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

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

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

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

基本语法

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

示例1

通过截取job字段

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

《oracle 系统自带几个常用函数》

示例2

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

《oracle 系统自带几个常用函数》

示例3

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

《oracle 系统自带几个常用函数》

二、max()函数

说明

1.求出一列的最大值

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

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

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

基本语法

select max(col) from tab;

示例

求出最大的empno

《oracle 系统自带几个常用函数》

三、min()函数

说明

1.求出一列的最小值

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

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

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

基本语法

select  min(col) from tab;

示例

求出最小的mgr列值

《oracle 系统自带几个常用函数》

四、sysdate

说明

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

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

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

基本语法

select sysdate from dual;
或
select  *  from tab where col=sysdate;

示例1

查询当前系统时间

《oracle 系统自带几个常用函数》

示例2

在where条件中使用

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

《oracle 系统自带几个常用函数》

五、trunc()函数

说明

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

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

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

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

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

基本语法

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

截取时间示例

示例1

截取当前时间

《oracle 系统自带几个常用函数》

示例2

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

《oracle 系统自带几个常用函数》

示例3

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

《oracle 系统自带几个常用函数》

示例3

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

《oracle 系统自带几个常用函数》

数字截取示例

示例1

返回整数

《oracle 系统自带几个常用函数》

示例2

保留一位小数

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

《oracle 系统自带几个常用函数》

正常的显示结果

《oracle 系统自带几个常用函数》

示例3

整数取舍

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

《oracle 系统自带几个常用函数》

六、to_date()

说明

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

  2. 必须明确指定时间格式

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

  4. 在where条件中使用情况较多

基本语法

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

示例1

将字符串转换成为时间

《oracle 系统自带几个常用函数》

七、to_char()

说明

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

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

  3. 在where条件中使用情况较多

基本语法

select to_char('xxxx-xx-xx xx:xx:xx') from dual;
或
select  to_date(col,'YYYY-MM-DD') from tab;

示例

将emp的hiredate字段转换为字符

《oracle 系统自带几个常用函数》

八、upper()

说明

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

基本语法

select upper('xxxx') from dual;
或
select  upper(col) from tab;

示例

转换字符串大写

《oracle 系统自带几个常用函数》

九、lower()

说明

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

基本语法

select lower('xxxx') from dual;
或
select  lower(col) from tab;

示例

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

《oracle 系统自带几个常用函数》

十、sum()

说明

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

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

基本语法

select  sum(col) from tab;

示例

求出emp所有人的工资总和

《oracle 系统自带几个常用函数》

十一 count()

说明

  1. 统计检索结果的返回条数

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

基本语法

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

示例1

统计emp表总数

《oracle 系统自带几个常用函数》

示例2

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

《oracle 系统自带几个常用函数》

十二、distinct

说明

  1. 消除一列中重复的值

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

基本语法

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

示例1

消除emp表中mgr重复的

《oracle 系统自带几个常用函数》

示例2

消除emp表中mgr和job重复的

《oracle 系统自带几个常用函数》

十三、group by 

说明

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

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

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

基本语法

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

示例1

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

《oracle 系统自带几个常用函数》

示例2

统计分组

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

《oracle 系统自带几个常用函数》

示例3

统计过滤

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

《oracle 系统自带几个常用函数》

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

    原文作者:who520
    原文地址: http://blog.itpub.net/20893138/viewspace-2660804/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞