查询语句 字句名称 使用目的 select 确定结果集中应该包含那些列 from 指明所要提取数据的表,以及这些表是如何连接的 where 过滤不需要的数据 group by 用于对具有想用列值的行进行分组 having 过滤掉不需要的组 order by 按一个或多个列,对最后结果集中的行进行排序 select语句由几个组建或者说子句构成.不过在MySQL中,只有一种子句是必不可少的,那就是select子句. select子句 SELECT * FROM department; 在此查询中,f
版权说明:作者:张颖希(PocketZ's Blog)出处:http://www.cnblogs.com/PocketZ本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 问题 前面已经使用了别名为查询提供更有意义的列名,而且也使用WHERE子句将一些数据排除掉,然而,我们还想在WHERE子句中引用别名. select sal as salary, comm as commission from emp w
如下查询,会抛出错误:mysql> select sal as salary, comm as commission from emp where salary < 5000;ERROR 1054 (42S22): Unknown column 'salary' in 'where clause'解决方案 将查询作为内联视图就可以就可以引用其中别名的列了:select *from ( select sal as salary, comm as commission from
如下查询,会抛出错误: mysql> select sal as salary, comm as commission from emp where salary < 5000;ERROR 1054 (42S22): Unknown column 'salary' in 'where clause' 解决方案 将查询作为内联视图就可以就可以引用其中别名的列了: select *from ( select sal as salary, comm as commission from
SELECT xxmc,sname as xsxm,sex,phone,address jzdz FROM student s LEFT JOIN xxjbxx x ON x.sid = s.sid 此处的s为student表的别名,x为xxjbxx表的别名,xsxm是sname学生姓名的别名,jzdz是学生地址的别名 ps: (1)表的别名要在from子句中指定,并且别名位于查询中其余列之前 (2)使用表的别名可以减少查询中输入的文本的数量,并且可能还会减少在输入过程中的错误. 2.给字段起别
使用的SQL大概是这样的: select * from A left join B on A.id=B.id and A.id>10; --错误的使用 我们期望的结果集应该是 A中的id>10,但是实际上A.id>10 这个限制条件并没有起作用. 应该改成如下的这种形式: select * from A left join B on A.id=B.id where A.id>10;--正确的使用 这是在oracle的官方文档中找到的相关说明: left outer joinThe
暂时还不清楚原因 1.按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩 SC表: 这里,当做总成绩处理 select sid, sum(score) as '总成绩', avg(score) as '平均成绩' from sc group by sid order by 平均成绩 desc; 运行结果: 这种是order by 子句中的 “平均成绩”没有加引号,能正确降序排列 select sid, sum(score) as '总成绩', avg(score) as '平均成绩'
1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句.下面分别说明其用法和异同点.注:本文使用字段为oracle数据库中默认用户scott下面的emp表,sal代表员工工资,deptno代表部门编号.一.聚合函数
1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句.下面分别说明其用法和异同点.注:本文使用字段为oracle数据库中默认用户scott下面的emp表,sal代表员工工资,deptno代表部门编号.一.聚合函数
示例一.查询出每个部门的编号,名称,位置,部门人数,平均工资 SELECT d.deptno,d.dname,d.loc, (SELECT COUNT(empno) FROM emp WHERE emp.deptno=d.deptno GROUP BY deptno) con, (SELECT AVG(sal) FROM emp WHERE emp.deptno=d.deptno GROUP BY deptno) avgsal FROM dept d WITH 子句 示例二.使用with子句将e