字符函数
lower(char):将字符串转换为小写
upper(char):将字符串转换成大写格式
length(char):返回字符串的长度
substr(char,m,n):取字符串的子串(截取字符串中的某一段)
m表示起始位置,n表是从m位置开始,取几个字符
replace(char,m,n):替换字符串中的内容,m为原内容,n为替换内容
将emp表中的ename字段以小写的方式输出
select lower(ename) from emp;
将emp表中的ename字段以大写的方式输出
select upper(ename) from emp;
找出emp表中名字长度为的5的员工信息
select * from emp where length(ename) = 5;
显示所有员工姓名的前三个字符
select substr(ename,1,3) from emp;
将员工首字母变成大写,后面的部分小写显示
select upper(substr(ename,1,1))||lower(substr(ename,2)) ename from emp;
将员工姓名中有A的员工的‘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)
向下取整
ceil(n)
向上取整
日期函数
日期函数用于处理date类型的数据
默认情况下 日期格式是dd-mon-yy 即 15-7月-86
sysdate 该函数返回系统时间
查询当前系统时间
select sysdate from dual;
add_months(n,m)
获取某一时间节点,括号里往后N个月份的时间,如果是负数,就是该日期节点往前N个月份的时间。
获取emp表中 入职满10年的员工信息
当前系统时间大于等于入职时间往后加120个月的时间的就是入职满10年的。
select ename,hiredate from emp where sysdate >= add_months(hiredate,120);
获取所有员工入职到目前为止的天数
当前系统时间减去员工入职时间,就是到目前为止的天数,这里有毫秒值,所以可以使用trunc()函数,去除小数点之后的位数获得一个整数
select trunc(sysdate - hiredate) day from emp;
last_day()
得到指定日期所在月份的最后一天的日期
获取入职日期是当月倒数第三天的员工
当月最后一天的日期减2就是该月倒数第三天的日期
select ename,hiredate,last_day(hiredate) from emp where hiredate >= last_day(hiredate)-2;
转换函数
to_date
to_char
系统函数
sys_context
用于查询返回相应的系统信息
terminal:当前会话客户端所对应的终端标识符
lanuage:语言
db_name:数据库名称
nls_date_format:当前会话客户所对应的日期格式
session_user:当前会话所对应的数据库用户名
current_schema:当前会话客户对应的方案名
host:返回数据库所在的主机名称
通过dual伪表来显示信息
userenv是固定格式后边的内容可以变,userenv,固定不变
查询数据库名称
select sys_context(‘userenv’,‘db_name’) from dual;