查询deptno部门的工资sal总和 图1
SELECT * FROM emp e INNER JOIN dept d on e.deptno=d.deptno
链接 emp 与 dept 表 显示所有东西 以deptno为链接 图2
SELECT e.empno,e.ename,e.sal,e.deptno,d.loc FROM emp e
INNER JOIN dept d on e.deptno=d.deptno
链接emp与dept 表 显示e表empno,e表ename,e表sal,e表deptno,d表loc 图3
e左d右 e前 前为左 d后 后为右
inner join 全部都有才查出
left join right join 左右
SELECT e.*,d.* FROM emp e,dept d WHERE e.deptno=d.deptno
第二种链接 不分 left和right 图4
SELECT deptno 部门编号,sum(sal) 部门总工资,count(empno) 部门人数 ,
ename FROM emp GROUP BY deptno 图5
SELECT dept.dname,emp.deptno,sum(emp.sal)FROM emp,
dept where emp.deptno=dept.deptno GROUP BY emp.deptno
链表查询 图6
SELECT dept.dname,emp.deptno,sum(emp.sal)FROM emp
INNER JOIN dept on emp.deptno=dept.deptno GROUP BY emp.deptno
链表查询2 图7
SELECT deptno 部门编号,sum(sal) 部门总工资,count(empno) 部门人数 ,
ename FROM emp GROUP BY deptno
查询
SELECT xin.*,d.dname,d.loc FROM(SELECT deptno ,sum(sal),count(empno),ename
FROM emp GROUP BY deptno) xin INNER JOIN dept d on xin.deptno=d.deptno
链表查询3 图8
GROUP BY :分组
INNER JOIN :链接
select 出来都是临时表格
xin.别名
SELECT xin.sum_sal 总计,xin.count_empno 人数,d.dname 名称,d.loc 地
点,xin.max_sal 最大工资,xin.min_sal 最低工资,xin.deptno 部门编号
FROM(SELECT deptno ,sum(sal) sum_sal,count(empno) count_empno,MAX(sal)
max_sal,MIN(sal) min_sal FROM
emp GROUP BY deptno) xin INNER JOIN dept d on xin.deptno=d.deptno
链接完整版本 INNER JOIN 图9
SELECT xin.sum_sal 总计,xin.count_empno 人数,d.dname 名称,d.loc 地
点,xin.max_sal 最大工资,xin.min_sal 最低工资,xin.deptno 部门编号
FROM(SELECT deptno ,sum(sal) sum_sal,count(empno) count_empno,MAX(sal)
max_sal,MIN(sal) min_sal FROM
emp GROUP BY deptno) xin ,dept d WHERE xin.deptno=d.deptno
链接完整版本2 WHERE 图10
SELECT deptno,count(empno),sum(sal),AVG(sal) avg_sal FROM emp GROUP BY
deptno HAVING
avg_sal>2000 and avg_sal<2500
SELECT deptno,count(empno),sum(sal),AVG(sal) avg_sal FROM emp GROUP BY
deptno HAVING
avg_sal BETWEEN 2000 and 2500
HAVING 分组后判断 有数字判断尽量使用 BETWEEN 图11
SELECT * FROM emp ORDER BY empno LIMIT 1,2
提取从 (1)为 2行开始2行的数据 图12