一些Mysql

来源:互联网 发布:mac设置用户名 编辑:程序博客网 时间:2024/06/16 02:16


分组函数不能直接出现在where后面,它需要查询一道才能有效即要紧跟在select后面

【对查询结果分组计算】
group by后的字段为一组,将一个字段相同的值分为一组
如统计表中各个工资段的总人数 select count(工资) from 表名 group by 工资

——————————————————————————————————————————————————————————————————————————————————————————————————————————
【【连表】】
连表
    第一种方法inner join: 取别名 select * from emp as e inner join dept as d on e.deptno=d.deptno   //*两个表都有的显示   left join     right join左边有,右边没有
   select e.emno,e.enma,e.sal,d.dname,d.loc from emp as e inner join dept as d on e.deptno=d.deptno
    第二种方法:        select e.*,d.* from emp e,dept d where e.deptno=d.deptno
外键 一对多
  多对多
 
group by 与连表:例子 SELECT * FROM (SELECT deptno,sum(sal),count(empno) from emp GROUP BY deptno) as aa INNER JOIN  dept as bb on aa.deptno=bb.deptno
     select * from (group by形成的新表) as aa inner join 另一个表 as bb on aa.相同字段=bb.相同字段
    核心思想:任何表都可以和其他表看成两个子表 连接组合形成新的表
    
    
Having  : 对分组查询结果的过滤 and可以放在条件里面 有点儿像where
select deptno,avg(sal) avg_sal,count(empno),sum(sal) from emp group by deptno HAVING avg_sal>2000 and avg_sal<2500
                                                                                     between
                     
limit 分页
例如取表中的第5条到第7条的三条数据
select * from 表名 limit 4,3
4表示从第四条开始取,不包含第四条,3表示取条数据
如果要取第一条数据到第5条就是
select * from 表名 limit 0,5

原创粉丝点击