7.oracle函数

字符函数:

Oracle中字符函数是最常用的函数,专门用来处理字符。常用字符函数如下:

initcap(char):首字母改成大写

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

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

lengthchar):返回字符串长度

substrchar,m[,n]):取得字符串的子串 从第M个字符开始 截取N个字符

replace(char,s1,s2):将字符串char中用s2替换s1

concat(c1,c2):连接c1,c2两个字符串

eg:查询emp表中所有员工姓名,要求姓名以小写形式显示。

Select  lower(ename)  from  emp;

 

eg:查询emp表中所有员工姓名,要求姓名以大写形式显示。

Select  upper(ename)  from  emp;

 

eg:查询emp表中姓名长度刚好为5个字符的员工信息

select  ename  from  emp  where  length(ename)=5

 

eg:查询emp表中姓名的前三个字符  

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

 

eg:查询emp中姓名,要求首字母大写后面的都小写

//方法一:initcap(char)

Select  initcap(ename)  from  emp;

//方法二:lower() upper() substr() length()

  Select  concat(upper(substr(ename,1,1)) ,lower(substr(ename,2)))  from  emp;

 

eg:查询emp中姓名,要求首字母小写后面的都大写

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

 

eg:查询emp中姓名,将姓名中所有字母A替换成a

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

数学函数

数学函数是用来处理数字的。常用数学函数如下

round(n [,m])四舍五入 没有m表示四舍五入到整数位

 m为正整数,四舍五入到小数点后面m

 m为负整数,四舍五入到小数点前面m

 

trunc(n [,m]) 截取数字 没有m表示截取到整数位

 m为正整数,截取到小数点后面m

 m为负整数,截取到小数点前面m

 

mod(m,n) 取模(取余)

floor(n) 返回小于或等于n的最大整数 (向下取整)

ceil(n)  返回大于或等于n的最小整数 (向上取整)

abs(n)    返回n的绝对值

sin(n)  返回n的正弦值

powerm,n) 返回mn次幂

eg:假设每个月30天,求出emp表中每个员工的姓名,日薪(四舍五入保留两位小数)

select  round(sal/30,2),ename  from  emp;

eg:假设每个月30天,求出emp表中每个员工的姓名,日薪(四舍五入到整数位)

select  round(sal/30),ename  from  emp;

eg:假设每个月30天,求出emp表中每个员工的姓名,日薪(四舍五入到十位)

select  round(sal/30,-1),ename  from  emp;

eg:假设每个月30天,求出emp表中每个员工的姓名,日薪(截取到两位小数)

select  trunc(sal/30,2),ename  from  emp;

eg:假设每个月30天,求出emp表中每个员工的姓名,日薪(截取到整数位)

select  trunc(sal/30),ename  from  emp;

eg:假设每个月30天,求出emp表中每个员工的姓名,日薪(截取到十位)

select  trunc(sal/30,-1),ename  from  emp;

 

日期函数

日期函数用来处理日期。常用函数函数如下:

sysdate:系统时间

add_months(d,n):在指定的日期上加上n个月

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

eg:查找出入职超过6个月的员工信息。

Select  *  from  emp  where  add_months(hiredate,6)<sysdate

 

eg:查找出emp表中工龄满30年的员工信息。

Select  *  from  emp  where  add_months(hiredate,30*12)<sysdate;

 

eg:查询emp表中每个员工姓名,入职日期,入职天数(取整数)

select  ename,hiredate,trunc(sysdate-hiredate)  from  emp

 

eg:查询emp表中每个月倒数第3天入职的员工信息

select  *  from  emp  where  last_day(hiredate)-hiredate=2

转换函数  

转换函数是将数据从一种类型转换成另外一种类型,在某些情况下面oracle服务器允许的数据类型和实际不一样,此时oracle服务器会自动将数据转成需要的类型。

例如:

create table test(id int);

insert into test values('10');----此时oracle服务器自动将'10'换成int

create table test1(id varchar210);

insert into test1 values(10);----此时oracle服务器自动将10换成字符型

注意:oracle虽然可以进行隐含的数据类型转换,但是不是在所有情况都有效。为了提高数据库的可靠性,我们必须使用转换函数来完成。

 

常用转换函数如下:

to_char()

eg:查询出emp表中员工姓名,入职日期,但是日期后面加上时//

select  ename,to_char(hiredate,yyyy-mm-dd hh24/mi/ss)  from  emp;

 

eg:查询出emp表中员工信息,但是日期按照yyyy-mm-dd格式显示

select  ename,to_char(hiredate,’yyyy-mm-dd’)  from  emp ;

 

eg:查询出1981年入职的员工信息

select  *  from  emp  where  to_char(hiredate,’yyyy’)=1981;

 

eg:查询出12月份入职的员工信息

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

 

eg:查询出员工姓名和工资,在工资前面加上美元符号$

select  ename,’$’||sal  from  emp;

select  ename,to_char(sal,’$9999999.99’)  from  emp;

select ename,to_char(sal,'L9999999.99') from emp;//本地货币符号,以电脑电脑操作系统为准。

to_date()

Insert  into  emp(empno,hiredate)  values(8000,sysdate);

Insert  into  emp(empno,hiredate)  values(8001,to_date(‘2000/3/6’,’yyyy/mm/dd’));

 

聚合函数(集函数)

max()

min()

avg()

sum()

count()

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值