当前位置: 代码迷 >> SQL >> oracle的学习笔记(6)-sql函数的使用
  详细解决方案

oracle的学习笔记(6)-sql函数的使用

热度:64   发布时间:2016-05-05 11:07:03.0
oracle的学习笔记(六)--sql函数的使用

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

?

?

?

  相关解决方案