数据库简单查询
萌新小白Eric,分享每天学习笔记,欢迎点赞
- 条件查询
- 限制结果集
- 排序
- 分组
- 聚合函数
- 多表联合查询
mysql
两千条是个坎 2000条以下全表扫描 速度很快 不用加索引 但是超过2000条需要我们优化
条件 查询
符号 | 说明 |
---|---|
= | |
>= | |
<= | |
!= | |
> | |
< | |
or | 或者 |
and | 并且 |
select * from articles where id<3 or name=‘二十不惑’;
限制结果集 limit
mysql> select * from articles limit 2;
结果集区间
select * from articles limit 0,10; #从0开始取10条数据
分页 :
1.知道用户向看第几页的数据 通过浏览器知道结果 可以拿到
2.每页我们应该显示多少条 我们自己规定好的 可以拿到
用户想看的 页数 开始的索引 每页显示的条数
1 0 9
2 9 9
3 18 9
(用户想看的页数-1)*每页显示的条数
排序 order by
- desc 降序
- asc 正序
select * from post where id>10 and id <100 ORDER BY id asc limit 10,10;
聚合函数
- count 统计数目
- sum 求和
- avg 求平均数
- max 求最大值
- min 求最小值
select count(id) as 总数 from stars;
select sum(id) as 总和 from stars;
select avg(id) as 平均数 from stars;
select max(id) as 最大值 from stars;
select min(id) as 最小值 from stars;
分组 group by
SELECT province FROM stars group by province; # 对省份进行分组 每个省份显示1个
# 需求 每个省份有多少个明星
select COUNT(province) as 省份 FROM stars;
select count(province) as 人数,province from stars group by province;
人数 省份
2 山东
1 河北
1 河南
2 湖北
分组结果再过滤 having
select count(province) as result,province from stars group by province HAVING result>1;
模糊查询 like
select * from stars where username like '王宝鹏';
select * from stars where username like '%鹏%';
select * from stars where username like '%鹏';
查询区间 between and
SELECT * from stars where balance BETWEEN 4000 and 6000;
总结
select 你选择的列
from 表名
where 条件 like between and
group by 分组 having 过滤条件
order_by 排序
limit 限制结果集
SELECT username,balance from stars where id>1 and balance BETWEEN 4000 and 6000 ORDER BY balance asc limit 2;