连接查询两个表里面相同字段
SELECT(表1别名1.表1字段1)...(表2别名2.表2字段2)...FROM 表1 别名1 INNER JOIN 表2 别名2 ON 表2别名2=表1别名1
SELECT e.empno,e.ename,e.sal,e.deptno,d.dname,d.loc FROM emp e INNER JOIN dept d ON d.deptno=e.deptno
下面意思与上面相同但下面步骤更简便
SELECT e.*,d.* FROM emp e,dept d WHERE e.deptno=d.deptno
查询部门编号 总工资 COUNT为计数计算多少列
SELECT 列名 部门编号,SUM(列名) 总工资,COUNT(列名)部门人数 FROM 表名
SELECT deptno 部门编号,SUM(sal) 总工资,COUNT(empno)部门人数 FROM emp
GROUP BY排序,INNER JOIN 表连接 NO 条件
查询(表1每个部门的(工资总和),每个部门(出现了几次))GROUP BY分组,INNER JOIN 表连接 NO 条件
SELECT 表1的别名.*(代表 表1全部别名),表2别名.列1,表2别名.列2 FROM (SELECT 列名,SUM(列名),COUNT(列名)FROM 表名 GROUP BY 列名) e INNER JOIN 字段 别名 ON e.deptno=d.deptno
SELECT e.*,d.dname,d.loc FROM (SELECT deptno,SUM(sal),COUNT(empno)FROM emp GROUP BY deptno) e INNER JOIN dept d ON e.deptno=d.deptno
只显示单个部门编号及名称 和钱总计
SELECT 别名1.列名 部门编号,别名1.列名 部门名称,别名2.调用函数aa 总计 FROM
(SELECT 列名2,SUM(列名2) 函数定义aa,COUNT(列名2),AVG(列名2),MAX(列名2),MIN(列名2)FROM 表名2 GROUP BY 列名2)
别名2, 表名1 别名1 WHERE 别名2.列名2=别名1.列名1
/*SELECT d.deptno 部门编号,d.dname 部门名称,e.aa 总计 FROM
(SELECT deptno,SUM(sal) aa,COUNT(empno),AVG(sal),MAX(sal),MIN(sal)FROM emp GROUP BY deptno)
e,dept d WHERE e.deptno=d.deptno*/
取表里 部门编号出现次数 取其工资总和 平均值
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
SELECT 表1部门编号列,COUNT(表2部门编号列),SUM(表2工资列),AVG(表2工资列) 则为方法avg_sal FROM 表2 GROUP BY 表1编号列 HAVING 方法调用avg_sal BETWEEN 2000 AND 2500
SELECT deptno,COUNT(empno),SUM(sal),AVG(sal) avg_sal FROM emp GROUP BY deptno HAVING avg_sal BETWEEN 2000 AND 2500
表分页 LIMIT
SELECT * FROM 表名 LIMIT 开始的列数,开始后五条;
SELECT * FROM emp LIMIT 1,5;
SELECT(表1别名1.表1字段1)...(表2别名2.表2字段2)...FROM 表1 别名1 INNER JOIN 表2 别名2 ON 表2别名2=表1别名1
SELECT e.empno,e.ename,e.sal,e.deptno,d.dname,d.loc FROM emp e INNER JOIN dept d ON d.deptno=e.deptno
下面意思与上面相同但下面步骤更简便
SELECT e.*,d.* FROM emp e,dept d WHERE e.deptno=d.deptno
查询部门编号 总工资 COUNT为计数计算多少列
SELECT 列名 部门编号,SUM(列名) 总工资,COUNT(列名)部门人数 FROM 表名
SELECT deptno 部门编号,SUM(sal) 总工资,COUNT(empno)部门人数 FROM emp
GROUP BY排序,INNER JOIN 表连接 NO 条件
查询(表1每个部门的(工资总和),每个部门(出现了几次))GROUP BY分组,INNER JOIN 表连接 NO 条件
SELECT 表1的别名.*(代表 表1全部别名),表2别名.列1,表2别名.列2 FROM (SELECT 列名,SUM(列名),COUNT(列名)FROM 表名 GROUP BY 列名) e INNER JOIN 字段 别名 ON e.deptno=d.deptno
SELECT e.*,d.dname,d.loc FROM (SELECT deptno,SUM(sal),COUNT(empno)FROM emp GROUP BY deptno) e INNER JOIN dept d ON e.deptno=d.deptno
只显示单个部门编号及名称 和钱总计
SELECT 别名1.列名 部门编号,别名1.列名 部门名称,别名2.调用函数aa 总计 FROM
(SELECT 列名2,SUM(列名2) 函数定义aa,COUNT(列名2),AVG(列名2),MAX(列名2),MIN(列名2)FROM 表名2 GROUP BY 列名2)
别名2, 表名1 别名1 WHERE 别名2.列名2=别名1.列名1
/*SELECT d.deptno 部门编号,d.dname 部门名称,e.aa 总计 FROM
(SELECT deptno,SUM(sal) aa,COUNT(empno),AVG(sal),MAX(sal),MIN(sal)FROM emp GROUP BY deptno)
e,dept d WHERE e.deptno=d.deptno*/
取表里 部门编号出现次数 取其工资总和 平均值
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
SELECT 表1部门编号列,COUNT(表2部门编号列),SUM(表2工资列),AVG(表2工资列) 则为方法avg_sal FROM 表2 GROUP BY 表1编号列 HAVING 方法调用avg_sal BETWEEN 2000 AND 2500
SELECT deptno,COUNT(empno),SUM(sal),AVG(sal) avg_sal FROM emp GROUP BY deptno HAVING avg_sal BETWEEN 2000 AND 2500
表分页 LIMIT
SELECT * FROM 表名 LIMIT 开始的列数,开始后五条;
SELECT * FROM emp LIMIT 1,5;