sql语句-sql学习笔记4

1、表的复杂查询

(1)实际应用中经常需要查询复杂的数据统计,要显示多张表的数据,下面学习较为复杂的select语句。

数据分组——max,min,avg,sum,count

**例1:如何显示所有员工中最高工资和最低工资

select max(sal)form emp

**??如何显示最低工资和该雇员的名字

sql语句执行的顺序:从右向左执行

select语句优化,尽量把结果集写在右面

select ename, sal form emp where sal=(select min(sal) from emp)

**例2:显示所有员工的平均工资和工资总和

select avg(sal) 平均工资,sum(sal) 总工资 from emp

**例3:计算共有多少员工

select count(*) from emp

**例4:显示工资最高的员工的名字、工作岗位

**例5:显示工资高于平均工资的员工信息

(2)group by 和 having语句

group by 用于对查询的结果分组统计

having 字句用于限制分组显示结果(往往和group by结合使用,可以对分组查询结果进行筛选)

**例6:如何显示每个部门的平均工资和最高工资

select avg(sal),max(sal),deptno from emp group by deptno

**例7:如何显示每个部门的每种岗位的平均工资和最低工资

select avg(sal),min(sal) ,deptno,job form emp group by deptno,job order by deptno

**例8:显示平均工资低于2000的部门号和它的平均工资,并按照从低到高排

select avg(sal),deptno from emp group by deptno having avg(sal)<2000 order by avg(sal) asc

**********注:顺序:group by , having , order by

**********注:在选择列种如果有列、表达式、和分组函数,那么这些列和表达式必须有一个出现在group by字句中,否则出错,如例8中deptno在group by中出现


你可能感兴趣的:(sql语句,sql查询,sql表的复杂查询,sql学习)