Oracle的函数

简介: 函数对字段进行处理:一、字符函数lower(char):将字符串转换为小写的格式upper(char):将字符串转换为大写的格式length(char):返回字符串的长度substr(char,m,n):取字符...

函数对字段进行处理:

一、字符函数

lower(char):将字符串转换为小写的格式

upper(char):将字符串转换为大写的格式

length(char):返回字符串的长度

substr(char,m,n):取字符串的子串【m是从某位开始;n是表示 去多少个】

?将所有的和员工名字按小写的方式显示

select  lower(ename)  from   emp;

?显示正好5个字符的员工的姓名

select  ename from  emp  where  length(ename)=5;

?显示所有员工姓名的前三个字母

SQL> select  substr(ename,1,3) "员工简称" from emp  ;

?以首字母大写的方式显示所有员工的姓名

· select  sbstr(ename,1,1)+substr(lower(ename),2,10)  from emp ;【错误】

1、完成首字母大小写

select   upper(substr(ename,1,1)from emp;

2、完成后面字母小写

select   lower(substr(ename,2,length(ename)-1)from emp;

3、合并

select   upper(substr(ename,1,1) || lower(substr(ename,2,length(ename)-1)from emp;


replace(char,search_string,replace_string)

instr(char1,char2,[,n[,m]])    取子串在字符串的位置


?显示所有员工的姓名,用a替换A;

select   replace(ename,'a','A')  from  emp ;

select  instr(ename,'a',1,2)  from emp;


数学函数的输入参数和返回值的数据类型都是数字类型的,数学函数包括cos,cosh,exp,log,sin,sinh,sqrt,tan,tanh,axos,asin,atan,round;

  round(n,[m]):四舍五入的,如果省掉m,则是四舍五入到整数, 如果m是整数则四舍五入到小数点的m位后。如果m是负数,则四舍五入到小数点的m位前。round(sal,2)→保留两位小数,

trunc(n,[m]):该函数用于截取数字。如果省掉m就截取小数部分,如果m是整数就截取到小数点m位前,如果是负数,则截取到小数点的前m位


mod(m,n):取模运算

floor(n):返回小于或者等于n的最大整数

ceil(n):返回大于或者等于n的最小整数


对数字的处理,在财务系统或者银行系统中用的比较多;

?显示在一个月为30天的情况所有员工的日薪金,忽略余数

select  (sal-mod(sal,30))/30  from emp ;


其他的数学函数

图1

图1


日期函数用于处理date类型的数据,默认情况下日期格式是dd-mon-yy即12-7月-78

(1)sysdate:该函数返回系统时间    SQL> select  sysdate  from  dual;

(2)add_months(d,n)【d表示date类型的字段,n表示要增加的n个月】

(3)last_day(d):返回指定日期所在的月份的最后一天


?查找已经入职8个月多的员工

select * from emp  where  sysdate>add_months(hiredate,8);

?显示已经man10年服务年限的员工的姓名和受雇日期

select * from emp  where  sysdate>add_months(hiredate,12*10);

?对于每个员工,显示其加入公司的天数

select  trunc(sysdate -hiredate) "入职天数",ename   from emp   ;


?找出各月倒数第三天受雇的所有员工

select  hiredate ,ename  from  emp   where last_day(hiredate)-2 =hiredate;


转换函数

用于将数据类型从一种转为另一种类型,在某些情况下oracle server 允许值的数据类型和实际不一样,这是oracle会隐含转化数据类型;

例如: crate table  t1(id  int);

insert  into t1    values ('10') 这样oracle会自动将‘10’→10

to_char()

?日期是否可以显示时/分/秒

?薪水是否可以显示指定的货币符号

yy:两位数字的年份   2004——04

yyyy:四位数字的年份     2004年 

mm:两位数字的月份   8月 ----------08

dd:2位数字的天  30号-=---------30

hh24:8点---------08

mi、ss ----------显示分钟/秒

select   ename,to_char(hiredate,'yyy-mm-dd:hh24:mi:ss')   from  emp  ;


9:显示数字,并忽略前面0、、

0:显示数字,如果位数不足,则用 0补齐

.:在指定位置显示小数点

,:在指定为位置显示逗号

  S:在数字前加美元

L:在数字前加本地货币符号

C:在数字面前加国际货币符号

G:在指定位置显示组分隔符

D:在指定位置显示小数点符号(.)

SQL> select  ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss'),to_char(sal,'L9999.99')  from  emp;


?显示1980年入职的所有员工

select  *  from  emp  where   to_char(hiredate,'yyyy') = 1988;

?显示所有12月份入职的员工

select  *  from  emp  where   to_char(hiredate,'mm') = 12;



系统函数

sys_context

(1)terminal:当前回话客户所对应的的终端的表示符

(2)lanuage:语言

(3)db_name:当前数据库名称

(4)nls_date_format:当前会话客户所对应的的时期格式

(5)session_user:当前会话客户所对应的数据库用户名

(6)current_schema:当前会话客户所对应的默认方案名

(7)host:返回数据库所在主机的名称


select   sys_context('usernv','db_name')   from  dual;//加粗部分是固定的

相关文章
|
4月前
|
SQL Oracle 关系型数据库
Oracle之日期计算相关函数
Oracle之日期计算相关函数
45 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle之regexp系列函数详解
Oracle之regexp系列函数详解
135 1
|
7月前
|
存储 SQL Oracle
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
68 0
|
3月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
38 0
|
3月前
|
SQL Oracle 关系型数据库
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
66 0
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
|
4天前
|
Oracle 算法 关系型数据库
Oracle常用系统函数之数字类函数:数字的魔术师
【4月更文挑战第19天】Oracle数据库中的数字类函数是数字处理的魔术师,包括`ROUND`(四舍五入),`CEIL`和`FLOOR`(向上/下取整),以及`ABS`(计算绝对值)。还有`MOD`、`TRUNC`和`POWER`等函数,提供求余数、截断和计算幂的功能。熟练运用这些函数能提升数据管理效率,让处理数字变得更简单、有趣。
|
2月前
|
SQL Oracle 关系型数据库
Oracle查询优化-聚集函数
【2月更文挑战第5天】【2月更文挑战第13篇】聚集函数
19 4
|
3月前
|
存储 SQL Java
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(一)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
35 0
|
3月前
|
SQL Oracle 算法
Oracle函数
Oracle函数
98 1
|
4月前
|
SQL Oracle 关系型数据库
Oracle之有哪些日期计算函数?
Oracle之有哪些日期计算函数?
114 0

推荐镜像

更多