模糊查询与分组查询

一: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的那个组内的第一行值并把年龄升序排列

原文地址:https://www.cnblogs.com/W19990605/p/11567952.html

时间: 2024-11-13 09:52:43

模糊查询与分组查询的相关文章

S1/C#语言和数据库技术基础/11-连接查询和分组查询

分组查询 采用分组查询的T-SQL语句如下. SELECT   CourseID,AVG(Score)   AS   课程平均成绩 FROM   Score GROUP   BY   CourseID (1)查询男女学生的人数各是多少 SELECT   COUNT(*)    AS   人数,SSex    FROM   Students GROUP   BY   SSex (2)查询每个年级的总人数 SELECT   COUNT(*)   AS   年级人数,SGrade   FROM   S

【Hibernate】Hibernate的聚类查询、分组查询、排序与时间之差

在Hibernate中的HQL语句其实能够基本能够实现SQL语句所做的事情,正如jQuery至于javascript一样.虽然HQL语句是对类的查询,但是HQL在实行聚类查询.分组查询.排序与时间之差等查询,也无须把查询结果查询出来,再通过对List的处理才得到结果. 比如有一张如下的Testtable表: 要像<[Mysql]求出离最近相差X天的项,sql语句关于日期的比对>(点击打开链接)一样,查询date字段离现在具有30年的项有多少,SQL语句则这样写: select count(*)

连表查询和分组查询

表连接和分组链接 1.分组查询 01.分组查询是按某一列分组,相同的列合并,查询出结果 02.Group by 关键字 03.分组查询支持的条件: 001.年级 002.姓氏 003.地址 004.年龄 04.语法 select 列名 from 表明 where 条件 group by 列名 *group by中查询的列,必须出现在查询列中!!! *分组的顺序为由前到后 2.having 01.对分组后的数据进行筛选,将"组"看做"列"来限定条件 02.语法 sel

Django学习【第7篇】:Django之ORM跨表操作(聚合查询,分组查询,F和Q查询等)

django之跨表查询及添加记录 一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany(&qu

Django之ORM跨表操作(聚合查询,分组查询,F和Q查询等)

一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany("要绑定关系的表名"

Django Mysql数据库-聚合查询与分组查询

一.聚合查询与分组查询(很重要!!!) 聚合查询:aggregate(*args, **kwargs),只对一个组进行聚合 from django.db.models import Avg,Sum,Count,Max,Min # 1.查询所有图书的平均价格 print(models.Book.objects.all().aggregate(Avg("price"))) aggregate()是QuerySet 的一个终止子句(也就是返回的不再是一个QuerySet集合的时候),意思是说

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

http://www.jianshu.com/p/eeb6a898d4ec 前言 上一篇关系数据库常用SQL语句语法大全主要是关系型数据库大体结构,本文细说一下关系型数据库查询的SQL语法. SQL数据查询 语法回顾 SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>]- FROM <表名或视图名>[,<表名或视图名>]- [WHERE <条件表达式>] [GROUP BY <列名> [HAVING &l

[Mysql 查询语句]——分组查询group by

#group by(1) group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组(2) group by可用于单个字段分组,也可用于多个字段分组 select * from employee; +------+------+--------+------+------+-------------+ | num | d_id | name | age | sex | homeaddr | +------+------+--------+------+------+----

连接查询和分组查询

一.分组查询:用于统计时经常使用分组查询 1.group by分组 01.例如查询每个年级的总人数 --一旦通过group by分组,那么我们只能获取组相关的信息,而不能获取组中成员的信息 --在select后只能跟聚合函数和group by后面的列,其他列不允许 1 select gradeid as 年级编号,COUNT(studentno) as 总人数 2 from student 3 group by gradeid 聚合函数: sum()--count()--max() min()-