模糊查询与分组查询

Posted w19990605

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模糊查询与分组查询相关的知识,希望对你有一定的参考价值。

一:LIKE运算符

  1.用%通配多个字符

    1)查询以“王”开头的学生信息

    select  字段名1,字段名2...... from 表名 where 字段名 like “王%”;

    2)查询含有“王”的学生信息

    select 字段名1,字段名2...... from 表名 where 字段名 like “%王%”;

    3)查询以“王”结尾的学生信息

    seelct 字段名1,字段名2...... from 表名 where 字段名 like“%王”;

  2.用_通配单个字符(英文条件下的下划线)

    1)查询姓王的“王_”(2个字符)

    select 字段名1,字段名2...... from 表名 where 字段名 like“王_”;

    2)查询姓王的“王__”(三个字符)

    select 字段名1,字段名2...... from 表名 where 字段名 like“王__”;

    3)查询以“_王”结尾的学生信息

    select 字段名1,字段名2...... from 表名 where 字段名 like“_王”;

  3.%与_混合使用

    查询第二个字为“王”的学生信息

    select 字段名1,字段名2...... from 表名 where 字段名 like“_王%”;

二:聚合函数

  1.SUM

    select  SUM(字段名)from  表名 where 条件

    select  SUM(score)from  EXAM where id=" ";

  2.MAX/MIN

    select  MAX/MIN(字段名)from  表名 where 条件

    select  MAX/MIN(score)from  EXAM where id=" ";

  3.AVG

    select  AVG(字段名)from  表名 where 条件

    select  AVG(score)from  EXAM where id=" ";

  4.count(*)计算数据表或查询结果集的总行数,不管某一列或多列是否为空值

    select count(*)from 表名;

三:分组查询

  1.GROUP BY+ORDER BY+MIN/MAX

  select 字段名1,字段名2......from  表名 GROUP BY 字段名1;//根据字段名1分组查询字段2

  select ClassID,count(*) from student GROUP BY ClassID;

  select ClassID,count(*) from student GROUP BY ClassID ORDER BY MIN/MAX(字段名)ASC/DESC;//ASC/DESC升序/降序

  2.多列分组查询

  select 字段名1,字段名2,字段名3...... from 表名 GROUP BY 字段名1,字段名2;

  select ClassID,Gender,Count(*) from student GROUP BY ClassID,Gender;

  3.Having子句—分组查询的条件筛选

  select 字段名1,字段名2 from 表名 GROUP BY 字段名1 Having 字段名2条件 ORDER BY 字段2条件

  select ClassID,MIN(score) from EXAM GROUP BY ClassID Having  MIN(score)>60  ORDER BY  MIN(score) ASC;

  select name,length(name),now() from 表名//查询姓名,姓名长度,系统当前时间

  select * from 表名 GROUP BY address Having AVG(avg)>20 like 1;//按地址分组后,找出平均年龄大于20的那个组内第一行值。

  select * from 表名 where id>5  GROUP BY address Having AVG(avg)>20 like 1;//按地址分组后,找出平均年龄大于20的那个组内id>5的第一行值

  select * from 表名 GROUP BY address Having AVG(avg)>20 ORDER BY ASC/DESC  like 1;//按地址分组后,找出平均年龄大于20的那个组内的第一行值并把年龄升序排列

 

以上是关于模糊查询与分组查询的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库,模糊查询去重查询

sql server 分组查询结合日期模糊查询

sqlserver_query3_去重查询|模糊查询|排序|分组|使用函数

数据库查询: 列出表的所有字段,“*”符号,查询指定字段数据,DISTINCT查询,IN查询,BETWEEN AND查询,LIKE模糊查询,对查询结果排序,分组查询,统计分组查询

sqlserver 模糊查询,连表,聚合函数,分组

关系数据库SQL之基本数据查询:子查询分组查询模糊查询