Oracle常用函数及使用案例(珍藏版)
- 格式:doc
- 大小:35.00 KB
- 文档页数:3
Oracle常用函数及使用案例(珍藏版)
一:sql函数:
lower(char):将字符串转化为小写的格式。
upper(char):将字符串转化为大写的格式。
length(char):返回字符串的长度。
substr(char,m,n):取字符串的字串。
案例1.将所有员工的名字按小写的方式显示
select lower(ename),sal from emp;
案例2.将所有员工的名字按大写的方式显示。
select upper(ename),sal from emp;
案例3.显示正好为五个字符的的员工的姓名。
select * from emp where length(ename)=5;
案例4.显示所有员工姓名的前三个字符。
select substr(ename,1,3) from emp;//从名字的第一个字符开始取,向后取三个字符。
案例5.以首字母为大写的方式显示所有员工的姓名。
(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;
案例6.以首字母为小写的方式显示所有员工的姓名。(需要有较高的灵活度,细心分析和清晰思路)
(1)首字母小写:select upper(substr(ename,1,1)) from emp;
(2)完成后面字母大写。select lower(substr(ename,2,length(ename)-1)) from emp;
(3)合并select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp;
案例7.函数(替换):replace(char1,search_string,replace_string);
显示所有员工的姓名,用“我要替换A”替代所有“A”。
select replace(ename,'A','我是老鼠')from emp;
案例8.以首字母为小写的方式显示所有员工的姓名。
select replace(ename,substr(ename,1,1),lower(substr(ename,1,1)))from emp;
案例9.以首字母为大写的方式显示所有员工的姓名。
Select
replace(ename,substr(ename,2,length(ename)-1),lower(substr(ename,2,length(ename) -1)))from emp;
二:数学函数:(在财务中用的比较多)
ronud(sal)用于四舍五默认取整;
ronud(sal,1)用于四舍五留一位小数。
trunc(sal)取整,忽略小数。截去小数部分。
trunc(sal,1)截取;小数点留一位,之后的右边的省去。
trunc(sal,-1)截取;只留整数,个位数取零。
floor(sal)向下最接近取整;比如1.1值为1.
ceil(sal)向上最接近取整。比如1.1值为2.
做oracle测试时可以用dual表;
mod(m,n)取模即取余。// mod(10,2)=0;
select mod(10,2) from dual;
显示在一个月为30天的情况下所有员工的日薪金,忽略余数。
select trunc(sal/30)from emp;
select floor(sal/30)from emp;
返回绝对值:
select abs(-13) from dual;
power(m,n)m的n次幂。
三:日期函数:
日期函数用来处理date类型的数据。
默认情况下日期格式时dd-mon-yy,即12-7月-78
sysdate该函数返回系统时间。
select sysdate from dual;
add_months(d,n),再原有的时间上增加月份。
last_day(d),返回指定日期所在月份的最后一天。
案例1:查找已经入职八个月多的员工
select * from emp where sysdate>add_months(hiredate,8);
系统时间大于雇用时间再加上八个月的时间。那就是要八个月前入职
的才满足这样的条件。即八个月之前入职的
案例2:.显示满十年服务年限的员工的姓名和受雇日期。
select * from emp where sysdate>=add_months(hiredate,12*10);
案例3:对于每个员工,显示其加入公司的天数。
select sysdate - hiredate "入职天数" from emp;
select trunc(sysdate - hiredate) "入职天数" from emp;
案例4:.last_day(d):返回指定日期所在月份的最后一天。找出各月倒数第三天受雇的所有员工。
求思路:(1)select hiredate,last_day(hiredate)from emp ;
正解:(2)select hiredate,ename from emp where hiredate=last_day
(严谨。(hiredate)-2)
四:转换函数:
转换函数是用于将数据类型从一种转换为另一种。在某些情况下,oracle server 允许的数值类型和实际的不一样,这时oracle server会隐含的转化数据类型。例如:
1.create table t1(id int);
2.insert into t1 values(‘10’)//这样oracle会自动将‘10’转换为数字10/,如果是‘ab’会报错。
注:插入数据时,如果是整数,就不要带单引号。如果为字符串类型,就要带单引号。
3.create table t2(id varchar2(10));