文章目录
- 一、常用查询
- 二、按照关键字排序
- 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));
describe 表名;
或
desc 表名;
select * from very;
Order by 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,Order by 后面跟多个字段时,字段之间使用英文的逗号隔开,优先级是按先后顺序而定;但 order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义。
- 查看信息先按 hobbid 降序排列的,拥有相同分数的 id 也会按照降序排列。
select id,name,hobbid from very order by hobbid desc,id desc;
- 查看信息按 hobbid 为降序排列,相同分数的 id 按照升序排列
select id,name,hobbid from very order by hobbid desc,id;
2.2 区间判断及查询不重复记录
- AND / OR (且 / 或)
select * from very where score >70 and score <=90;
select * from very where score >70 or (score >75 and score <90);
去重
select distinct hobbid from very;
三、对结果进行分组
- 通过 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;