MySQL (四)基础查询(distinct/limit/order by/where、分组、过滤、正则查询)

本文介绍了SQL的基础查询语句,包括全表和部分数据查询、AS别名、LIMIT和OFFSET限制、ORDERBY排序、WHERE条件、GROUPBY分组、HAVING过滤以及正则表达式查询。还讨论了编写和执行顺序,特别提到了聚合函数的使用规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#查询所有数据
select * from test.total; #from A.B A库名 B表名


#查询部分数据
select
	id, #要查询的列名
    age,
    university
from test.total
-- where university = 'CUMT' #只有一个=
-- where age >= 20
where university = 'CUMT' and age > 20
limit 3 #限制前3个

1. distinct去重查询

建议仅放一个列名

select
    distinct age #相当于python中的.unique()
from test.total

2. AS别名

select
    tt.id as '编号', #同python
    tt.dept as "学号"
from test.total as tt

3. limit偏移限制

limit 4,3 偏移数+限制数
use test;
select * from total

运行结果:

use test;
select * from total limit 2,3

运行结果:

4. oder_by排序

select * from test.total #无;
order by age desc; #按age列从大到小
order by age; #从小到大
order by gpa desc,age desc; #先按gpa排序,再按age排序,有;

5. where查询

where university = 'CUMT' #只有一个=
where age >= 20 #比大小
where age between 20 and 40 #区间
where university = 'CUMT' and age > 20 #多个条件
where day > "2001-01-01" #日期数据
where university in ("北京大学","复旦大学","山东大学") #多个查询
where university not in ("北京大学") 


#模糊查询
where university like "%C" #%代表任意数量的字符,主要表示位置

 6.分组查询

总感觉这里有点问题,发现问题请戳我督促我修改

#统计总表中每个学校所含的学生数量
select 
	university,
	count(dept) #计数
from test.total
group by #分组
	university #可以依据两个列分组

运行结果:

7.过滤查询

wherehaving
过滤行过滤分组
不可包含聚合函数(见文末)可包含聚合函数
分组前(group by 之前)分组后(group by 之后)
select 
	university,
	count(dept)
from test.total
#where count(dept) >=2 #代码报错,where语句中不能包括聚合函数count
group by
	university
having count(dept) >=2; #对分组结果进行查询

运行结果:与9.分组查询的结果相对比,只保留了大于等于2 的部分

8.正则查询

select * from test.total 
-- where university regexp '^C' #以C开头
-- where university regexp 'C$' #以C结尾

9.编写顺序与执行顺序

编写顺序(左)\执行顺序(右,红圈)

聚合函数:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值