数据库(六)查询高级用法

一、对查询结果进行排序–order by

语法:asc(升序)、desc(降序)
select … from … order by 字段A asc (desc);
select … from … order by 字段A asc(desc), 字段B asc(desc ) …;

示例:查询用户表里所有普通用户信息,按可用余额升序、降序排列

select * from t_user where type=1 order by reg_time;
select * from t_user where type=1 order by reg_time desc;

二、查询–in的用法

使用场景:查询的时候,条件字段的值存在于某个数据集
语法:数据集可以是具体的某个值:值a,值b,…,值n; 也可以是通过一个子查询得到的数据集
select … from 表名 where 条件字段 in (数据集);

示例:查询用户id为1,2,3的用户信息

select * from t_user where id in (1,2,3);

拓展:
not in 的用法:条件字段的值不存在于某个数据集

三、模糊查询–like

使用场景:查询的时候,条件字段的值不完整的情况

语法
%用来匹配任意长度的字符串,而且%出现的位置不同所代表的意义不同
条件字段的值以任意字符串开头,以xx结尾的值select <字段1,字段2, …> from < 表名 > where < 条件字段 > like ‘%XX’;
条件字段的值以XX开头,以任意字符串结尾select < 字段1,字段2,… > from < 表名 > where <条件字段> like ‘XX%’;
条件字段的值包含了XXselect < 字段1,字段2,… > from < 表名 > where < 条件字段 > like ‘%XX%’;

四、分组–group by

使用场景:按照某一个,或者多个字段来分组,一般通过“聚合函数”来配合使用,使用时至少需要一个分组字段。某某信息来进行分组
语法 : select 查询字段, 聚合函数 from 查询涉及到的表 group by 分组字段 having 过滤条件;
语法解释:
1、聚合函数:对一组值执行计算并返回单一的值的函数。聚合函数经常与SELECT 语句的 GROUP BY 子句一同使用,常见的聚合函数有:sum()、count()、avg()、min()、max()等
2、having:在分完组以后如果想在这个分组结果的基础上继续过滤的话,就必须把过滤条件写在having后面

示例:请按小区分组,统计楼栋表中各个小区的楼栋数

select community_id, count(building_id) from t_building GROUP BY community_id;

五、范围查询–between

使用场景:条件字段的取值处于两个数据范围内的情况
语法:
select … from 表名 where 条件字段 between 数值A and 数值B;

示例:找出用户表里注册时间为2021年4月10日至20日注册的用户信息(包含边界值)

select * from t_user where reg_time between2021-04-01 00:00:00and2021-04-20 23:59:59;

六、去重查询–distinct

使用场景:去除查询结果中的重复数据
语法:
select distinct 字段名1 from 表名;

示例:查询所有注册的账号角色

select distinct type from t_user;

七、分页查询–limit

使用场景:取查询结果的前n条

语法
select … from 表名 limit m,n;
m指的索引值是从m开始,n标识每页要取多少条
m =(第几页页数-1)* 每页条数 ;n = 每页条数

示例1:每页取10条展示
第一页为:limit0,10 表示取索引从0开始取10条记录
第二页为:limit10,10 表示取索引从10开始取10条记录
第三页为:limit20,10 表示取索引从20开始取10条记录

示例2:将t_user表数据按照 id 降序排列后取前三条数据

select * from t_uesr order by id desc limit 0,3;

八、select语句查询结构

select
...
from
...
where
...
group by
...
having
...
order by
...
limit
...

九、常用函数

数值相关函数
求字段A的最小值:min(字段A)
求字段A的最大值:max(字段A)
求字段A的平均值:avg(字段A)
求字段A的和:sum(字段A)
日期函数
获取系统当前日期时间: sysdate()
获取系统当前日期::curdate()
获取系统当前时间:curdime()
获取给定日期的年份:year(date)
获取给定日期的月份:month(date)
为指定日期增加一个时间间隔的函数:DATE_ADD(date, INTERVAL expr unit)
字符串函数
字符串拼接:concat(字段A,字段B)
字符串截取函数SUBSTR(字段A, 截取开始的位置position, 截取字符个数)
获取字符串长度的函数:length(字段A)
大小写字母转换的函数:lower()、upper()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值