Python | MySQL | 查询汇总

前言:

承接上篇数据库基础增删改查操作。文章以students表为例

1,查询练习:
select * from students  ;

select 表别名.字段 .... from 表名 as 表别名;
#例:可以给表起别名,查询表的name字段
select s.name from students as s; 

distinct 字段 去重 
#例:性别去重  
select distinct gender from students ;
2,条件查询:
select .... from 表名 where …..
> < = >= <= !=
#例:查询学生年龄大于18岁的所有学生信息
select * from students where age>18;
3,逻辑运算符:
and / between …and / or  /not 

#例:查询年龄在18-28之间的学生信息
select * from students where age between 18 and 28;
4,模糊查询:
select * from students where 字段 like “ % __ _ ___"

#例:查询姓名为 刘xx 的学生信息
select * from students where name like "刘__";
5,范围查询:
in(x, x, x) 查询不连续的范围

not in (x, x, x) 不在。。。范围内

between .. and .. 在一个连续的范围内

not between and  不在一个连续的范围内
#例:查找年龄为18,28的学生信息,in 里面写什么值就是什么值,不连续
select * from students where age in (18,28);
6,空判断:
判空is null   not is null 不为空

#例:查询身高为空的学生信息
select * from students where height is null;
7,排序:
order by  /  asc 从小到大 默认  /   desc 降序

#例:查询年龄在18到33之间,且性别为男生的学生 以升序排序
select *  from students where age between 18 and 33 and gender = 1 order by age asc;

order by 后面可以加多个字段  身高从高到矮排序, 如果身高相同的情况下按照年龄从小到大排序   后面用逗号 隔开
8,分页:
limit (显示页面-1*(显示个数),(显示个数)

#例: 查询第五页,一页显示 2个
limit 82   (如果,limit跟排序,或者其他一些条件时,limit放在最后面)
9,聚合函数:
count /  max  /min / (avg=sum/count)  /sum  
四舍五入 round(123.23 , 1) 保留1位小数

#例:计算男性平均身高,保留两位小数
select round(avg(height),2) from students where gender= 1; 
10,分组:
select 分组字段 from students 字段;

#例:以性别分组
select gender from students group by gender;

#分组一般会和聚合函数合用***(重要)
select gender, count(*) from students group by gender;

group_concat(...)
#-- 查询同种性别中的姓名group_concat(name)
select gender, group_concat(name) from students group by gender;
11,with rollup 汇总的作用(了解)
#例:查询班级每组性别的总数
select gender,count(*) from students group by gender with rollup;
12,连接查询
12.1内连接:
select 字段 from1 inner join 表2 on 表1.字段1 =2.字段2

#例:查询学生表与班级表
select * from students as s inner join classes as c on s.cls_id = c.id;
12.2左链接:
select 字段 from1 left join 表2 on 表1.字段1 =2.字段2 

#例:学生表与班级表
select * from students as s left join classes as c on s.cls_id = c.id;
12.3右连接:
select 字段 from1 right join 表2 on 表1.字段1 =2.字段2

#例:学生表与班级表
select * from students as s right join classes as c on s.cls_id = c.id;
13,子查询:
在一个select 语句中,嵌入了另外一个select 语句, 那么被嵌入的select 语句称之为子查询语句,外部那个select语句则称为主查询.

#例:查询大于平均年龄的学生
select * from students where age > (select avg(age) from students);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值