Tips:之前查看网上的文章感觉太乱了,所以自己整理了一套sql语句来练习,主要也可以拿来应对面试,需要的可以自行下载练习
包含基本语句、聚合函数、模糊查询、范围查询、排序、聚合、分组、分页、子查询、索引和视图、左右连接、双表连接练习语句等
一、首先准备三张表
学生表、分数表、班级表还有练习sql语句: 百度网盘
链接: 提取码: 0000
下载之后选择数据库右键–运行SQL文件,3个文件依次运行
二、 部分语句
- 分组查询—查询15岁以上的男女生的平均年龄
select sex,avg(age) from students_01 where age>=15 group by sex;
- 子查询—查询英语成绩大于80分的所有学生
select * from students_01 where id in(select id from score_01 where score_01.`英语` > 80);
- 双表联查—查询英语成绩大于80分的所有学生(加了一个英语从小到大排序)
select * from students_01 inner join score_01 on students_01.id=score_01.id having score_01.`英语`>80 order by score_01.` 英语`;
- 双表联查–查询赵杰的所有分数
select * from students_01,score_01 where students_01.id=score_01.id and name="赵杰";
- 双表联查加条件 查询男生数学最高的1个和女生语文最高的1个(拆开查询)
select students_01.name,students_01.sex,score_01.`数学` from students_01 inner join score_01 on students_01.id=score_01.id where sex="男" ORDER BY `数学` desc limit 1
select students_01.name,students_01.sex,score_01.`语文` from students_01 inner join score_01 on students_01.id=score_01.id where sex="女" ORDER BY `语文` desc limit 1
- 三表查询–按照数学升序查询
select * from students_01 inner join score_01 on students_01.id=score_01.id inner join class_01 on score_01.class_num=class_01.id ORDER BY `数学`;
Tips(重点掌握,面试大部分考核语句):
- 基础语句、聚合函数、关键字、分组、升降序、子查询和双表联查(所有的子查询都可以使用双表联查去写),后续如果对子查询掌握不是很好可以直接使用双表联查的两种方法都可以
- 后续不定时更新文章或者内容有需要的可以关注下