/*
1. 取消重复行 --> select distinct column1 , column2 from table
2. nvl(column1,0) --> 如果column1存在数值,则返回原有值; 如果为null, 则返回 0。
3. select deptno , avg(sal) , max(sal) from emp group by deptno having avg(sal) < 2500
4. 分组函数不能出现在where子句中; order by 子句需要放在sql语句的最后。
5. rollup操作符(生成横向小计和总计): select deptno, job, avg(sal) from emp group by rollup(deptno, job)
6. cube操作符(生成横纵向小计和总计): select deptno, job, avg(sal) from emp group by cube(deptno, job)
7. grouping(column): 如果返回0,则说明统计结果使用了改列;如果返回1,则未使用改列。
select deptno, job , avg(sal), grouping(deptno), grouping(job) from emp group by cude(deptno, job)
8. grouping sets(column1,column2,...): 显示多个分组的统计结果. 以下语句既显示部门的平均工资又显示岗位的平均工资
select deptno, job, avg(sal) from emo group by grouping sets(deptno, job)
9. 多行子查询 in all any . all和any必须结合单行操作符使用。 如 > all(selct ...) ; > any(select ...)
10. case 表达式 select ename , sal, case when sal>300 then 3, when sal > 200, then 2 esle 1 grade from emo where deptno = 10
11. 数字函数--》 abs cell exp floor ln(n) log(m,n) mod(m,n) nanvl(n2,n1) power(m,n) remainder(m,n) round(n,[m]) sign(n)(检查正负数) sqrt trunc(n,[m])
12. 字符函数--》 ascii(char) chr(num) concat(a,b) initcap(char) instr(char1,char2,[n,[m]]) length(char) lower(c) lpad(c1,n,c2) ltrim(c1[,set])
replace rpad rtrim soundex(c)-->字符语音表示 substr() translate trim upper
select concat(concat(ename,':'),sal) from emp where deptno = 10
13 时间函数--》 add_months(date,n) current_date current_timestamp dbtimezone extract(data from datetime) last_day(d) localtimestamp round(d[,fmt])
sysdate trunc(d[,fmt])
select ename, add_months(hiredate, 20*12) '20周年'from emp
select extract(month from sysdate) current_month from dual
select next_day(sysdate,'星期五') Friday from dual
14 其他函数--》 to_char to_number to_date coalesce(expr1[,expr2][,expr3]...) lnncvl nullif(e1,e2) nvl(e1,e2) nvl(e1
Oracle 学习笔记--入门篇
最新推荐文章于 2025-05-19 14:30:03 发布