================================字符函数==================================
字符函数是 oracle 中最常用的函数
lower(char):将字符串转化为小写的格式
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):取字符串的子串
select substr(ename,1,3) from emp
replace(char1 , search_string , replace_string)
select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp
instr(char1, char2,[,n[,m]]) 取子串在字符串的位置
====================================数学函数==================================
round(n,[m]) 四舍五入
select round(sal,1) from emp_test where ename='ALLEN' (保留一位小数)
trunc(n,[m]) 截取数字
select trunc(sal,1),sal from emp_test where ename='ALLEN'
mod(m,n)
floor(n)
ceil(n)
================================日期函数===================================
日期函数用于处理 date 类型的数据
1) sysdate: 该函数返回系统时间
select sysdate from dual
2) add_months(d,n)
? 查找已经入职 8 个月多的员工
select * from emp where sysdate > add_Months(hiredate,8)
3)last_day(d) 返回指定日期所在月份的最后一天
? 找出各月倒数第3天受雇的所有员工
select hiredate , last_day(hiredate) from emp
select ename,hiredate from emp where last_day(hiredate)-2 = hiredate
================================转换函数=====================================
to_char()
? 日期是否可以显示 时/分/秒
select to_char(hiredate,'YYYY-MM-DD hh24:mi:ss') from emp_test
yy; 两位数字的年份 04
yyyy: 四位数字的 2008
mm: 月份
dd: 天
hh24 ; hh12
mi , ss --> 显示分钟/秒
? 薪水是否可以显示指定的货币符号(L表示当地语言 99999.99 与表结构有关[number(7.2)]
select to_char(sal,'L99,999.99') from emp_test
9:显示数字,并忽略前面0
0:显示数字,如倍数不足,则用0补
.: 在指定位置显示小数点
,: 在指定位置显示逗号(每百位加逗号 如上)
$: 在数字前面加美元
L: 在数字前加本地货币符号
C: 在数字前加国际货币符号
G: 在指定位置显示组分隔符
D: 在指定位置显示小数点符号(.)
? 显示1980年入职的所有员工
select * from emp_test where to_char(hiredate,'YYYY') = 1980
? 显示所有12月份入职的员工
select ename,sal,to_char(hiredate,'YYYY-MM-DD hh24:mi:ss') from emp_test where to_char(hiredate,'MM') = 12
===============================系统函数=========================
-- 查看当前数据库的名字
select sys_context('USERENV','db_name') from dual
-- 查看使用的语言(简体中文)
select sys_context('USERENV','language') from dual
-- 查看谁使用数据库(show user)
select sys_context('USERENV','SESSION_USER') from dual
-- 查看方案(方案跟用户是一致的)
-- 用户和方案的关系
select sys_context('USERENV','current_schema') from dual