韩顺平.玩转oracle - 函数

字符函数

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

--将所有员工的名字按小写的方式显示
select lower(ename) from emp;

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

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

--显示正好为5个字符的员工的姓名
select * from emp
where length(ename)=5;

substr(char,m,n)
取字符串的子串

--显示所有员工姓名的前三个字符
select substr(ename,1,3) from emp;
--从第1个字符开始取3个
--以首字母大写的方式显示所有员工的姓名
--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(char1,search_string,replace_string)
instr(char1,char2,[,n[,m]])
取子串在字符串的位置

--显示所有员工姓名,用a替换所有A
select replace (ename,'A','a') from emp;

数字函数

输入参数和返回值的数据类型都是数字类型

round(n,[m])
四舍五入,如省掉m(小数的位数),则四舍五入到整数

trunc(n,[m])
截取数字,m不考虑四舍五入

mod(m,n)
取余数

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

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

--显示在一个月为30天的情况下所有员工的日薪金,忽略余数
select ename,trunt(sal/30) from emp;

日期函数

  • 用于处理date类型的数据(默认日期格式dd-mon-yy)

sysdate
该函数返回系统时间(当前时间)

add_months(d,n)
加月份

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

--查找已经入职8个月多的员工
select * from emp
where sysdate > add_months(hiredate,8);

--显示满10年服务年限的员工的姓名和受雇日期
select * from emp
where sysdate >= add_months(hiredate,12*10);

--对于每个员工,显示其加入公司的天数
select ename,trunc(sysdate - hiredate) "入职天数" from emp;

--找出各月倒数第3天受雇的所有员工
select ename,hiredate from emp
where last_day(hiredate)-2 = hiredate;

to_date函数
使用特定格式插入日期值

--按照年-月-日的格式插入一列带有日期的表
insert into emp values
(9998,'小红2','manager',7782,to_date('1988-12-12','yyyy-mm-dd'),78.9,55.33,10);

转换函数

to_char
将数据类型做转换

--日期是否可以显示 时分秒
select ename,to_char(hiredate,'YYYY-MM-DD hh24:mi:ss') from emp;

--薪水是否可以显示指定的货币符号
select ename,to_char(sal,'L9999.99') from emp;

--显示1980年入职的所有员工
select ename,hiredate from emp
where to_char(hiredate,'YYYY')=1980;

--显示所有12月份入职的员工
select * from emp
where to_char(hiredate,'MM')=12;

系统函数

terminal
当前会话客户所对应的终端的标识符

language

db_name
当前数据库名称

nls_date_format
当前会话客户所对应的日期格式

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

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

host
返回数据库所在主机的名称

--你在使用哪个数据库
select sys_context('userenv','db_name')from dual;
--userenv为固定格式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值