use yingxio;-- 进入指定数据库
-- 模糊查询练习
-- 查询姓‘马’的学员信息
select * from stu where name like '马%';
-- 查询第二个字是‘花’的学员信息
select * from stu where name like '_花%';
-- 查询名字中包含'德'的学员信息
select * from stu where name like '%德%';
-- 排序查询
-- 排序方式 Asc:升序排序(默认使用) desc:降序排序
-- 语法 select 字段列表 from 表名 order by 排序字段名1[排序方式1],排序字段2[排序方式2],...;
-- 查询学生信息 按照年龄升序排列
select * from stu order by age;
-- 按照数学成绩降序排列
select * from stu order by math desc;
-- 按照数学成绩降序排列,数学成绩一样,按照英语成绩的升序排序
select * from stu order by math desc , english asc;
-- 聚合函数 将一列数据作为一个整体,进行纵向计算
-- 语法 select 聚合函数(列名)from 表名;null值不参与计算
select count(id) as 总数 from stu; -- 8
select count(english) as 英语人数 from stu;-- null值不参与计算 -- 7
select count(*) as 总数 from stu; -- 8【推荐使用】
-- 查询数学成绩的最高分
select max(math) as 数学成绩最高分 from stu;-- 99
-- 查询数学成绩最低分
select min(math) as 数学成绩最低分 from stu;-- 56
-- 查询数学成绩的总分
select sum(math) 数学总分 from stu;
-- 查询数学成绩平均分
select avg(math) 数学平均分 from stu;
-- 查询英语成绩最低分
select min(english) 英语成绩最低分 from stu;
-- 分组查询
-- 语法 select 字段列表 from 表名 where分组前条件限定 group by 分组字段名 having 分组后条件过滤
-- 分组之后,查询的字段为聚合函数或者分组字段 查询其他字段无任何意义
-- 查询男女同学的各自数学平均分
select sex,avg(math) avg_socre from stu group by sex;
-- 查询男女同学的各自数学平均分 及人数
select sex,avg(math) avg_socre,count(id) from stu group by sex;
-- 查询男女同学的各自数学平均分 及人数 要求:分数低于70分的不参与计算
select sex,avg(math) avg_socre,count(id) from stu where math >= 70 group by sex;
-- 查询男女同学的各自数学平均分 及人数 要求:分数低于70分的不参与计算 分组之后人数大于2
select sex,avg(math) avg_socre,count(id) from stu where math >= 70 group by sex having count(id)>2;
-- 分页查询
-- 语法 select 字段列表 from 表名 limit 起始索引,结束索引;
-- 从0开始查询,查询3条数据
select * from stu limit 0,3;
-- 每页显示3条数据,查询第一页数据
select * from stu limit 0,3;
-- 每页显示3条数据,查询第二页数据
select * from stu limit 3,3;
-- 每页显示3条数据,查询第三页数据
select * from stu limit 6,3;
【mysql基本查询语句】
最新推荐文章于 2024-08-18 10:54:05 发布