Oralce常用系统函数
dual:Oracle系统内部提供的一个用于实现临时数据计算的特殊表,它只有一个列DUMMY (VARCHAR2(1))
字符类函数:
concat--连接字符串 initcap--每个单词首字母大写 instr(s1,s2[,i][,j]--s2在s1中第j次出现时的位置,从s1的i位置开始搜索
lengths--字符串的长度 lowers,uppers--大小写 ltrim,rtrim,trim--删除多余的字符
replace(s1,s2[,s3])--s3替换出现在s1中的所有s2字符串,s3默认是空字符串
substr(s,i[,j])--从s的i位置开始截取j长度的子字符串
数字类函数:
ceil--返回大于或等于n的最小整数 round(n1,n2)--舍入小数点右边n2为的n1值,n2的默认值为0
power(n1,n2)--返回n1的n2次方
日期和时间类函数:
日期型默认格式“01-10月-11”:2011-10-1
sysdate():返回系统当前的日期
add_months(d,i):返回日期d加上i月后的结果。
转换类函数:
to_char(x[,format]):表达式转换为字符串 比如:format:"YYYY-MM-DD"
to_number(s[,fromat[lan]]):将返回s代表的数字 如:to_number('18','xxx') 将十六进制18转换为十进制
子查询
规则:
1.子查询必须用括号()
2.子查询中不能包含ORDER BY子句
3.子查询允许嵌套多层,但不能超过255层
分为:
A-单行子查询
在WHERE子句中引用单行子查询,可以使用单行比较运算符(=、>、<、<=、<>)
select empno,ename,sal from emp where sal>(select min(sal) from emp) and sal<(select max(sal) from emp);
子查询返回的结果必须是一行数据
B-多行子查询
在WHERE子句中,使用IN ANY ALL
C-关联子查询
select empno,ename,sal from emp f where sal >(select avg(sal)from emp where job=f.job) order by job;