ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL笔记二:个性化查询之模糊查询、分组、排序、限制等

2021-01-15 18:03:58  阅读:543  来源: 互联网

标签:10 SQL 查询 字段 分组 表名 LIMIT WHERE SELECT


1.掌握in的用法

使用场景:做条件查询的时候,条件字段的取值有多个情况,in(范围),not in(范围)

SELECT * FROM  student  WHERE  id IN(1501001,1501002,1502001);

拓展:除了in,对应的有not in的用法,指条件字段不在某个数据内的情况。

 

2.掌握模糊查询like的用法

2.1使用%来模糊匹配

使用场景:条件字段不完整时,且没有字符长度限制时,可以用%做模糊匹配。

实例:查询所有姓“李”的学生信息。

SELECT * FROM  student  WHERE  name LIKE '李%';

拓展:以李开头是 '李%',以胡结尾是 '%李',包含李是 '%李%'

2.2 使用_来模糊匹配

_和%区别是,_起到的是一个占位符的作用,一个_只能匹配一个任意的字符,而%可以匹配任意长度的字符。

使用场景:条件字段不完整时,且有字符长度限制时,可以用_做模糊匹配。

实例:查询所有姓“李”且名字为两个字的学生信息。

SELECT * FROM  student  WHERE  name LIKE '李_';

 

3.between和not between

between使用场景:条件字段的值处于(或不处于)两个值之间

语法:SELECT 字段 FROM 表名 WHERE column BETWEEN value1(mix) AND value2(max)

SELECT 字段 FROM 表名 WHERE column NOT BETWEEN value1 AND value2

实例:根据学生的成绩表,查出所有成绩在85-90分的学号,学号不能重复

SELECT  DISTINCT id   FROM  score  WHERE   score BETWEEN 85 AND 90;   (DISTINCT去重)

 

4、DISTINCT去重

distinct使用场景:去除查询结果中的重复数据

SELECT DISTINCT 字段1,字段2... FROM 表名;

 

5、GROUP BY分组语句
1、根据一列或多列对结果集进行分组

语法:GROUP BY 字段1,字段2

字段1、字段2相同的为一组,在分组的列上可以使用聚合函数COUNT、SUM、AVG、MAX、MIN

语法:SELECT AVG(字段) FROM S GROUP BY 字段;

 实例:

SELECT MemberID 用户id,
min(Amount) 最小投资额,
max(Amount) 最大投资额,
count(1) 投资次数,
avg(Amount) 平均投资额
FROM loan 
GROUP BY MemberID;

 

6、HAVING 分组条件

一般和GROUP BY 联合使用,筛选分组后的数据

与WHERE的区别:where字句在聚合前先筛选记录,作用在GROUP BY和having字句前,而having字句在聚合后对组记录进行筛选

如:SELECT sid,COUNT(1)  FROM  SC  GROUP BY  sid  HAVING  COUNT(1)>2;

select 主键,count(*) from 表名 where etl_date='20191212' group by 主键 having count(*)>1;

 

7、ORDER BY排序语句
ORDER BY对结果集排序

ORDER BY field [ASC | DESC]..
ASC表示升序,DESC表示降序
可以使用任意字段作为排序条件
可以指定多个字段进行排序
SELECT  *  FROM  表名  ORDER BY  字段  ASC;

SELECT  *  FROM  表名  ORDER BY  字段1(可以为聚合函数)  ASC(可省略),字段2(可以为聚合函数)  DESC(不可省略);

--先以字段1升序,字段1相同,再以字段2降序

 

8、LIMIT限制结果集语句
1、分页---LIMIT

LIMIT  M,N(M代表从M+1条记录开始取,N代表要查询多少记录)分页---索引从0开始的,偏移量

SELECT  *  FROM  表名  LIMIT 0,10; -- 表示从第一条数据开始,取前10条数据

SELECT  *  FROM  表名 LIMIT 10,10; -- 表示从第十一条数据开始,取前10条数据

2、OFFSET偏移量

SELECT  *  FROM  表名  LIMIT  10  OFFSET  0;

SELECT  *  FROM  表名  LIMIT  10  OFFSET   10;

3、TOP语法

SELECT  *  FROM  表名  LIMIT  5; 

SELECT  *  FROM  表名  ORDER   BY  id  DESC  LIMIT  1;

标签:10,SQL,查询,字段,分组,表名,LIMIT,WHERE,SELECT
来源: https://www.cnblogs.com/rabbit-cute/p/14283437.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有