字符函数
lower(char):将字符串转化为小写的形式
把emp表的ename转化为小写形式
select lower(ename) from emp;
upper(char):将字符串转化为大写的形式
select upper(ename) from emp;
length(char):返回字符串的长度
select * from emp where length(ename)=5;
substr(char,m,n):取字符串的子串
截取emp表中的ename字段,从第一个开始,取3个
select substr(ename,1,5) from emp;
综合应用
让emp表的ename字段的首字母大写,后面小写
select upper(substr(ename,1,1)||lower(substr(ename,2,length(ename)-1)from emp;
replace(char,search-string,replace-string)
把ename中的A都换成B
select replace(ename,'A','B') 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的最小整数。
absn(n): 返回数字n绝对值
acos(n):反余弦
asin(n):反正弦
atan(n):反正切
exp(n):返回e的n次幂
log(m,n):返回对数值
power(m,n): 返回m的n次幂
日期函数(处理date类型数据)
默认情况下日期格式是dd-mon-yy 日-月-年
sysdate:系统时间
select sysdate from emp;
add_months(d,n):加月份
从emp表中查询入职时间大于5个月的员工信息
hiredate:雇佣时间
select * from emp where sysdate >add_months(hiredate,5);
last_day(d):指定日期所在月份的最后一天
雇佣日期所在月份的最后一天
select last_day(hiredate) from rmp;
转换函数
数据类型从一种类型转换成另一种类型。
有时候你输入的类型和原来的类型不相等,oracle会隐形的转换。
create table stu(sno int)
insert into stu values(‘2020’)
显然要插入的值2020因为加了单引号不是int类型,但是oracle会自动的把 ‘2020’ 转换成2020。
但是也不适用于所有情况,所以要用转换函数。
to_char
雇佣日期以年月日时分秒的形式显示
select to_char(hiredate,'yyyy-mm-dd hh24:mi:ss');
工资以本地的货币符号形式,五位整数,两位小数显示
select to_char(sal,'L99999.99');
L本地货币
$美元
C国际货币
to_date:将字符串转化为date类型
系统函数
sys_context
terminal:终端的标识符
language:语言
db_name:数据库名称
nls_date_format:日期格式
session_user:数据库用户名
current_schema::方案名
host:数据库所在主机名称
查询你在使用哪个数据库
select sys_context('userenv','db_name') from emp;