MySQL 高级 SQL语句

一、常用查询

增、删、改、查

对 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 之后的第一个参数只有在出现相同值时,第二个字段才有意义。

  1. 查看信息先按 hobbid 降序排列的,拥有相同分数的 id 也会按照降序排列。

    select id,name,hobbid from very order by hobbid desc,id desc;
    

在这里插入图片描述

  1. 查看信息按 hobbid 为降序排列,相同分数的 id 按照升序排列

    select id,name,hobbid from very order by hobbid desc,id;
    

在这里插入图片描述

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

  1. 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;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值