文章目录

  • 一、常用查询
  • 二、按照关键字排序
  • 2.1 语法
  • 2.1.1 ASC / DESC:
  • 2.2 区间判断及查询不重复记录
  • 三、对结果进行分组
  • 3.1 按hobbid相同的分组,计算相同分数的个数(基于name个数进行计数)


一、常用查询

增、删、改、查

对 MySQL 数据库的查询除了基本的查询外,有时候需要对查询的结果集进行处理。如只取 5 条数据、15条数据的、对查询结果进行排序或分组等等。

二、按照关键字排序

使用 Select 语句可以将需要的数据从 MySQL 数据库中查询出来,如果对查询的结果进行排序,可以使用 Order by 语句来对语句实现排序,并最终将排序后的结果返回给用户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段。

2.1 语法

select column1,column2, … from table_name order by column1,column2, …

2.1.1 ASC / DESC:

ASC 是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略。select 语句中如果没有指定具体的排序方式,则默认按 ASC 方式进行排序。

DESC 是按照降序进行排列的,当然 Order by 前面也可以使用 where 子句对查询结果进一步过滤。

例:
数据库中有张 very 的表,记录着id,name,score,address和hobbid

create table very (id int not null,name char(10) primary key not null,score decimal(5,2),),address varchar(50),hobbid int (5));

mysql排序后取第一天group by mysql排序语句 升序 取前五条_mysql

describe 表名;
或
desc 表名;

mysql排序后取第一天group by mysql排序语句 升序 取前五条_聚合函数_02

select * from very;

mysql排序后取第一天group by mysql排序语句 升序 取前五条_sql_03

Order by 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,Order by 后面跟多个字段时,字段之间使用英文的逗号隔开,优先级是按先后顺序而定;但 order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义。

  1. 查看信息先按 hobbid 降序排列的,拥有相同分数的 id 也会按照降序排列。
select id,name,hobbid from very order by hobbid desc,id desc;

mysql排序后取第一天group by mysql排序语句 升序 取前五条_数据库_04

  1. 查看信息按 hobbid 为降序排列,相同分数的 id 按照升序排列
select id,name,hobbid from very order by hobbid desc,id;

mysql排序后取第一天group by mysql排序语句 升序 取前五条_mysql_05

2.2 区间判断及查询不重复记录

  1. AND / OR (且 / 或)
select * from very where score >70 and score <=90;

mysql排序后取第一天group by mysql排序语句 升序 取前五条_聚合函数_06

select * from very where score >70 or (score >75 and score <90);

mysql排序后取第一天group by mysql排序语句 升序 取前五条_聚合函数_07

去重
select distinct hobbid from very;

mysql排序后取第一天group by mysql排序语句 升序 取前五条_sql_08

三、对结果进行分组

  • 通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 ,GROUP BY通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)求和(SUM)求平均数(AVG)最大值(MAX)最小值(MIN)GROUP BY 分组 的时候可以按一个或多个字段对结果进行分组处理。

select 字段,聚合函数 from 表名 (where 字段名(匹配) 数值) group by 字段名;

3.1 按hobbid相同的分组,计算相同分数的个数(基于name个数进行计数)

select count(name),hobbid from very group by hobbid;

mysql排序后取第一天group by mysql排序语句 升序 取前五条_字段_09