admin 管理员组

文章数量: 887007

MySQL select查询语句

##Select 查询语句
查询所有: select * form 表名;
条件查询:select * form 表名 where 条件;
模糊查询:下划线_代表一个占位任意字符,百分号%代表0或多个占位字符。
     select * form 表名 where name like ‘%菜%’; --查找带有菜的名字,无论菜的位置在名字第几个字。
     select * form 表名 where name like ‘___’; --查找姓名是三个字的人。
排序查询:ASC为升序,DESC为降序,默认为升序;
     select * form 表名 order by math; --升序
     --如果数学成绩一样,则按照英语成绩排序*:
     select * form 表名 order by math ASC,english ASC ;
     --如果有多个排序条件时,当前面的条件值相等时,才会判断第二个条件。
聚合函数:将一列数据作为一个整体,进行纵向的计算。注意:聚合函数的计算不包括null值,有null值则会忽略不计,造成结果偏小。解决方法:ifnull(a,b) a为列名,b为null值要被修改成数值b。
     1.count:计算个数。select count(ifnull(math,0)) form student;
     2.max:计算最大值,min同理;select max(math) form student;
     3.sum:求和。select sum(math) form student;
     4.avg:求平均值。select avg(math) form student;
分组查询:如通过性别分男女组。语法:group by 分组字段;
     注意:1. 分组之后查询的字段:分组字段、聚合函数。
     2.where和having的区别?
      1.where在分组之前限定,如果不满足条件,则不参与分组。having在分组之后限定,
      如果不满足结果,则不会被查询出来。
      2.where后不可以跟聚合函数,having可以进行聚合函数的判断。
     --按照性别分组,分别查询男、女同学的平均分,人数
     select sex, avg(math),count(id) from student group by sex;
     --按照性别分组,分别查询男、女同学的平均分,人数 要求:分数低于70分的不参与分组,
     分组之后,每组人数需要大于2人
     select sex, avg(math),count(id) from student where math>70 group by sex having count(id) >2;#
分页查询:分几页显示结果。1.语法:limit开始的索引,每页查询的条数;
     2.公式:开始的索引 = (当前的页码 - 1) x 每页显示的条数。
     select * form student limit 0,3;

本文标签: MySQL select查询语句