sql函数的使用---字符函数
字符函数是oracle中最常见的函数,我们来看看有哪些字符函数:
lower(char):将字符串转化为小写的格式
upper(char):将字符串转化为大写的格式
length(char):返回字符串的长度
substr(char,m,n):取字符串的子串
replace(char1,search_string,replace_string)
instr(char1,char2,[,n[,m]])取子串在字符串的位置
例子:以首字母大写的方式显示所有员工的姓名
分析
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;
sql函数的使用----数学函数
数学函数的输入参数和返回值的数据类型都是数字类型的,数学函数包括cos,cosh,exp,ln,log,sin,sinh,sqrt,tan,tanh,acos
,asin,atan,round,下面介绍最常用的:
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的绝对值
acos(n):返回数字的反余弦值
asin(n):返回数字的反正弦值
atan(n):返回数字的反正切
cos(n):
exp(n):返回e的n次幂
log(m,n):返回对数值
power(m,n):返回m的n次幂
对数字的处理,在财务系统或者银行系统中用的最多,不同的处理方法,对财务报表有不同的结果。
sql函数的使用--日期函数
日期函数用于处理date类型的数据
默认情况下日期格式是dd-mon-yy 即 12-7月-1990
1)sysdate:该函数返回系统时间
2)add_months(d,n):加上月份
3) last_day(d):返回指定日期所在月份的最后一天
例如:显示每个员工的入职天数
select trunc(sysdate-hiredate) "入职天数",ename from emp
找出各月倒数第3天受雇的所用员工
select hiredate,ename from emp where last_day(hiredate)-2=hiredate;
sql函数的使用--转换函数
转换函数用于将数据类型从一种转为另外一种,在某些情况下,oracle server允许值的数据类型和实际的不一样,这时 oracle server会
隐含的转化数据类型
比如:create table t1(id int);
insert into t1 values('10') -->这样oracle会自动的将‘10’-->10
create table t2(id varchar2(10));
insert into t2 values(1); -->这样oracle就会自动的将1-->'1'
我们要说的是尽管oracle可以进行隐含的数据类型的转换,但是它并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函
数进行转换。
to_char
设置日期可以显示时分秒,薪水可以显示指定的货币符号
yy:两位数字的年份 2004-》04
yyyy:四位数字的年份 2004年
mm:两位数字的月份 8月--》08
dd:两位数字的天 30号--》30
hh24:24小时制 8点-》20
hh12:8点--》08
mi、ss --》显示分钟\秒
9:显示数字,并忽略前面0
0:显示数字,如位数不足,则用0补齐
.:在指定位置显示小数点
,在指定位置显示逗号
$:在数字前加美元
L:在数字前加本地货币符号
C:在数字前加国际货币符号
G:在指定位置显示组分隔符
D:在指定位置显示小数点符号(.)
例如:
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss'),to_char(sal,'L99999.99'));
例如:显示1980年入职的员
select * from emp where to_char(hiredate,'yyyy')=1980;
显示12月入职的员工
select * from emp where to_char(hiredate,'mm')=12
to_date :该函数用于将字符串转换成date类型的数据
sql函数的使用--系统函数
sys_context
1)、terminal ;当前会话客户所对应的终端的标示符
2)、lanuage:语言
3)、db_name:当前数据库名称
4)、nls_date_format:当前会话客户所对应的日期格式
5)、session_user:当前会话客户所对应的数据库用户名
6)、current_schema:当前会话客户所对应的默认的方案名
7)、host:返回数据库所在主机的名称
通过该函数,可以查询一些重要信息,比如你正在使用哪个数据库?
select sys_context('userenv','db_name') from dual