关键字 distinct
查询数据时去掉那些重复的记录
例子:select distinct job from emp;
% 和 _ 的使用 % :代表任意个字符 _ : 代表 单个字符
查询第三个字符为大写O的名字和工资
select ename,sal from emp where ename like '_ _ O%';
关键字 in的使用
查询empno 为 123 234 345
select ename empno from emp where empno in(123,234,345);
使用order by
select empno from emp order by empno desc ; 查询 empno 字段进行降序排列
两个字段的排序 deptno sal
select * from emp order by deptno asc, sal desc;
按年薪排序 学会nvl函数 是对null值 假如某个字段是null值
select (sal*12+12*nvl(COMM,0)) "年薪" from emp order by "年薪" desc;
----------------------------------------------------------------------------------------
数据分组函数 (max , min , avg, count)
表的复杂查询
select ename sal from emp where sal = (select max(sal) from emp);
注意 : 如果 在select 后面的字段出现了 分组函数 就不能使用单独的字段 只能使用分组函数
group by 的使用
对查询的结果进行分组统计
意思就是说 : 把查询到的结果 相同的数据放到一组;
查询emp 表的 job(工作岗位)
执行语句:select job,count(job)from emp group by job;
结果 :
JOB COUNT(JOB)
------------------------------------------------------
CLERK 4
SALESMAN 4
PRESIDENT 1
MANAGER 3
ANALYST 2
查询每个部门的最高工资和 最低工资
select avg(sal), max(sal) ,count(sal) ,deptno from emp group by deptno;
select deptno, job from emp group by deptno ,job
having 用于限制分组结果的显示
select avg(sal), max(sal) eptno from emp group by deptno having max(sal)>= 3000 ;
group by + having + order by 出现的顺序 只能是这样
select avg(sal), max(sal) eptno from emp group by deptno having max(sal)>= 3000 order by EPTNO desc ;
查询数据时去掉那些重复的记录
例子:select distinct job from emp;
% 和 _ 的使用 % :代表任意个字符 _ : 代表 单个字符
查询第三个字符为大写O的名字和工资
select ename,sal from emp where ename like '_ _ O%';
关键字 in的使用
查询empno 为 123 234 345
select ename empno from emp where empno in(123,234,345);
使用order by
select empno from emp order by empno desc ; 查询 empno 字段进行降序排列
两个字段的排序 deptno sal
select * from emp order by deptno asc, sal desc;
按年薪排序 学会nvl函数 是对null值 假如某个字段是null值
select (sal*12+12*nvl(COMM,0)) "年薪" from emp order by "年薪" desc;
----------------------------------------------------------------------------------------
数据分组函数 (max , min , avg, count)
表的复杂查询
select ename sal from emp where sal = (select max(sal) from emp);
注意 : 如果 在select 后面的字段出现了 分组函数 就不能使用单独的字段 只能使用分组函数
group by 的使用
对查询的结果进行分组统计
意思就是说 : 把查询到的结果 相同的数据放到一组;
查询emp 表的 job(工作岗位)
执行语句:select job,count(job)from emp group by job;
结果 :
JOB COUNT(JOB)
------------------------------------------------------
CLERK 4
SALESMAN 4
PRESIDENT 1
MANAGER 3
ANALYST 2
查询每个部门的最高工资和 最低工资
select avg(sal), max(sal) ,count(sal) ,deptno from emp group by deptno;
select deptno, job from emp group by deptno ,job
having 用于限制分组结果的显示
select avg(sal), max(sal) eptno from emp group by deptno having max(sal)>= 3000 ;
group by + having + order by 出现的顺序 只能是这样
select avg(sal), max(sal) eptno from emp group by deptno having max(sal)>= 3000 order by EPTNO desc ;