文章目录
这里做一个 sql 编写根据个人经验做的一个小总结
需要能力:小学语文能力+小学逻辑思维能力+小学学习能力即可编写好 sql
我们写好 sql 无非就是学好语法之后多练就可以很快能上手写好。我们创建好多张表之后,我们怎么分析编写 sql 呢?有如下这几步:
题目:要求查询语文成绩大于平均成绩的学生学号(假如成绩表有学生号和课程号为联合主键,其中还有成绩列字段,课程表有课程号和课程名,课程号为主键,课程名不可重复)
- 1.先分析要求查询语句的宾语和条件。我们先主到关键信息,最终是查学号,条件是语文成绩大于平均成绩
- 2.再拆分条件。我们要查学号,条件是语文成绩大于平均成绩,条件有三个,一个是成绩要大于平均成绩,第二个条件是语文的平均成绩,第三个条件是语文成绩大于
- 3.写基础 sql
SELECT STUDENT_NO FROM course;
- 4.依据一个个条件补全 sql,分组查询注意,有条件能提到分组之前的 where 中写的就提出来
-- 按照第一个条件写出来 SELECT STUDENT_NO FROM score WHERE SCORE>(SELECT AVG(SCORE) FROM SCORE) -- 按照第二个条件写出来 SELECT STUDENT_NO FROM score WHERE SCORE>(SELECT AVG(SCORE) FROM SCORE WHERE COURSE_NO=(SELECT COURSE_NO FROM course WHERE COURSE_NAME='语文')) -- 按照第三个条件写出来 SELECT STUDENT_NO FROM score WHERE SCORE>(SELECT AVG(SCORE) FROM SCORE WHERE COURSE_NO=(SELECT COURSE_NO FROM course WHERE COURSE_NAME='语文')) AND COURSE_NO=(SELECT COURSE_NO FROM course WHERE COURSE_NAME='语文')