MYSQL(2) 高级查询

概述

接上篇,上篇写到增删改查。这篇继续。

高级查询

基础查询

-- 全部查询
select * from student;
-- 只查询部分字段
select 'sname', 'class_id' from student;
-- 别名,列名  不用关键字
select 'sname' as '姓名', 'class_id' as '班级ID' from student;
-- 把查询出来的重复记录去掉
select distinct 'class_id' from student;

条件查询

-- 查询姓名为 aaa 的学生信息
SELECT * FROM `student` WHERE `name` = 'aaa';
-- 查询性别为 男,并且班级为 2 的学生信息
SELECT * FROM `student` WHERE `gender`="男" AND `class_id`=2;

范围查询

-- 查询班级id 1 到 5 的学生的信息
select * from student where 'class_id' between 1 and 5;

判空查询

SELECT * FROM `student` WHERE `class_id` IS NULL; #判断不为空
SELECT * FROM `student` WHERE `class_id` IS NOT NULL; #判断不为空

SELECT * FROM `student` WHERE `gender` <> ''; #判断不为空字符串
SELECT * FROM `student` WHERE `gender` = ''; #判断为空字符串

模糊查询

-- 使用 like关键字,"%"代表任意数量的字符,”_”代表占位符
-- 查询名字为 m 开头的学生的信息
SELECT * FROM `teacher` WHERE `tname` LIKE '谢%';
-- 查询姓名里第二个字为 小 的学生的信息
SELECT * FROM `teacher` WHERE `tname` LIKE '_小%';

分页查询

SELECT * FROM `student` LIMIT 1,2;

查询后排序

-- 关键字:order by field, asc:升序, desc:降序
SELECT * FROM `score` ORDER BY `num` ASC;
-- 按照多个字段排序
SELECT * FROM `score` ORDER BY `course_id` DESC, `num` DESC;

分组查询

-- 分组加group_concat
SELECT `gender`, group_concat(`age`) as ages FROM `student` GROUP BY
`gender`;
-- 可以把查询出来的结果根据某个条件来分组显示
SELECT `gender` FROM `student` GROUP BY `gender`;
-- 分组加聚合
SELECT `gender`, count(*) as num FROM `student` GROUP BY `gender`;
-- 分组加条件
SELECT `gender`, count(*) as num FROM `student` GROUP BY `gender` HAVING num
> 6;

小结

本篇主要写了MYSQL的高级查询,比如条件查询,范围查询,判空查询,模糊查询,分页查询,查询后排序等等。这些都是很常用的,有兴趣,一起来学习学习。OK,结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值