查询基本使用(条件,排序,聚合函数,分组,分页)
1插入表数据
insert into 表名 values();
2查询所有列
select *from 表名 查询表
一定条件查询(where)
select *from 表名 where id=5;(where 后面跟查询的条件)
查询制定列
select id,name from 表名;
使用as给字段起别名
select id ,name as '姓名',age,high,gender from 表名;
通过表名字段查询
select 表名.name from 表名;
给表起别名查询
select s.id,s.name,s.age from 表名 as a;
消除重复行
select distinct age from 表名;
3 条件查询
比较运算符
查询年级大于18岁的信息
select *from 表名 where age >18;
18岁到28岁的信息
select *from 表名 where age >=18 and age =< 28;
select *from 表名 whree age between 18 and 28;
查询18岁以上或者身高180以上的人(or)
select *from 表名 where age >18 or high >180;
4 模糊查询
in (1,3,8)表示在一个非连续的范围内
查询 年级为18和34的人
select * from 表名 where age in(18,34);
查询年龄在17岁到34岁之间的信息
select *from 表名 where age between 17 and 34;
查询年级不在18到34岁的信息
select *from 表名 where age not between 17 and 34;
5 空判断
判断 is null
查询身高为空的信息
select *from 表名 where high is null;
判断非空 is no null
select *from 表名 where high is no null;
6 排序
order by 字段
asc 从小到大排列,升序
desc 从大到小排序,降序
查询年级在18到34岁之间的男性,按照年级从小到大
select *from 表名 where gender=1 and age between 18 and 34 order by age;
查询年纪在18到34岁之间的女性,身高从高到矮
select * from 表名 where gender=2 and age between 18 and 34 order by high desc;
查询年纪在18到34岁的女性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序
select * from 表名 where age between 18 and 34 and gender=2 order by high desc;
7 聚合函数
总数
count
查询男性有多少人
select count(*) from students where gender=1;
最大值
max
查询最大的年纪
select max(age) from students;
查询女性的最高 身高
select max(high) from students where gender=2;
最小值
min
select min(high) from students;
求和
sum
计算所有人的年龄总和
select sum(age) from students;
平均值
avg
计算平均年纪
计算平均年纪 sum(age)/count(*)
select sum(age)/count(*) from students;
select avg(age),2 from students;
保留2位小数
select round(avg(age),2) from students;
分组
group by
按照性别分组,查询所有的性别
select gender from students group by gender;
计算每组性别的人数
select gender, count(*) from students group by gender;
查询男性组中的姓名 group_concat
select gender,group_concat(name) from students where gender=1 group by gender;
having
查询每个性别平均年纪超过30岁的性别,以及姓名 having avg(age) > 30
select gender, group_concat(name) from students group by gender having avg(age) > 30;
查询每种性别中的人数多于4个的组的信息
select gender,group_concat(name) from students group by gender having count(*)>4;
分页
显示5页
select * from students limit 5;
分页显示,每页显示2条数据
select * from students limit 0, 2;
按照身高从高到矮排序,查找出所有女性,并且分页显示,每页显示2条数据
select * from students where gender=2 order by high desc limit 0,2;