编辑: 会说话的鱼 | 2015-07-19 |
initial captor 语法:initcap(字符串) SQL:>
select initcap(ename) from emp;
⑥函数:length 语法:length(字符串) SQL:>
select * from emp where length(ename)=5;
⑦函数:lower / upper 语法:lower(字符串) SQL:>
select lower(ename) from emp;
|-日期函数 sysdate add_months ①函数:sysdate SQL:>
select sysdate from dual;
dual-无实际意 义,函数测试或其他测试使用 ②月份差:months_between 语法:months_between(日期1,日期2) SQL: >
select * from emp where months_between(sysdate,hiredate)>
=144 ③函数:last_day 语法:last_day(日期数据) SQL:>
select * from emp where last_day(hiredate)-2=hiredate;
④函数:add_months 语法:add_months(时间,添加月份) SQL:>
select add_months(sysdate,3) from dual;
|-转换函数 to_char to_date ①转换函数 to_char 语法:to_char(时间数据,制定格式) SQL:>
select to_char(sysdate,'
yyyy-mm-dd hh24:mi:ss d ddd day'
) from dual;
yyyy-mm-dd 年月日 hh24:mi:ss 时分秒(24) d 一周第几天 ddd 一年的第几天 day 星期几 ②to_date: 将文本类型数据按照制定格式转换成时间类型数据 语法:to_date('
具体的时间字符数据'
,'
时间字符串格式'
) to_date('
2010-01-19'
,'
yyyy-mm-dd'
) 注意:Oracle中的date字段类型及其特殊 |-数学函数 abs ceil floor abs(n) 绝对值 ceil(n) 向上取值 ceilling天花板 ceil(1.1) ->
2 floor(n) 向下取值 floor地板 floor(2.9) ->
2 mod(m,n) 求模取余 mod(5,2) ->
1 power(m,n) m的n次方 power(2,8) ->
256 round(m,n) 四舍五入 m待处理数据 n精度 round(3.1415,2) ->
3.14 trunc(m) 整数截取 trunc(3.1415) =
3 sign(m) 符号 sqrt(m) 平方根 |-混合函数 user nvl ①user : 返回当前登录账号 SQL>
select user from dual;
②nvl : 替空函数 语法:nvl(字符串,替换后的数据) 注意:替换后的数据必须与该字段类型保持一致 SQL>
select ename,nvl(comm,0) from emp;
⑶分析函数:数据分析和挖掘功能 Data Mining rank dense_rank 作用:主要用于排名使用 函数:rank ①语法:rank() over (order by 字段名称) SQL:>
select rank() over(order by sal desc),ename,sal from emp;
若排名相同下一个将跳转 SQL:>
select dense_rank() over(order by sal desc),ename,sal from emp;
连续 ②语法:rank(参数1,参数2) within group(order by 字段1,字段2) SQL:>
select ename,rank(2850,'
BLAKE'
) within group(order by sal,ename) from emp;
⑷分组函数:类似于SQLServer中的聚合函数 sum avg count group by 分组关键字 having 条件 Oracle数据库的查询 ⑴制定区间查询 Oracle中伪列:Oracle为每张数据表(包括用户自定义创建的数据表)都自动创建两个位列分别是:rowid、rownum 通过命令:SQL>
desc 表名;
--查看表结构 rowid: 由18个字符组成唯一标识每一行 rownum: 行号 ⑵介绍 问题:使用Oracle分层查询以数据结构显示emp表中的人员关系 语法:select lpad(ename,level*5,'
'
) from emp connect by prior empno=mgr start with mgr is null;
⑶并集:查询部门10的办事员和部门20的经理 关键字:union all select * from emp where deptno=10 and job='
CLERK'
union all select * from emp where deptno=20 and job='
MANAGER'
;
注意:union all不会消除查询结果中的重复数据, union会消除查询结果中的重复记录 ⑷交集:查询部门10和部门20都有的工作类型 关键字:intersect select job from emp where deptno=10 intersect select job from emp where deptno=20;