天天看点

怎么查询同名同姓人数_SQL—多表查询

怎么查询同名同姓人数_SQL—多表查询
怎么查询同名同姓人数_SQL—多表查询

知识总览

一.表的加法
怎么查询同名同姓人数_SQL—多表查询

union连接会删除重复的部分

怎么查询同名同姓人数_SQL—多表查询

union all连接所有列

二 . 表的联结
怎么查询同名同姓人数_SQL—多表查询

表的联结的知识架构

怎么查询同名同姓人数_SQL—多表查询

使用inner jion进行内联结

怎么查询同名同姓人数_SQL—多表查询

left jion 会存在空值(Null)

怎么查询同名同姓人数_SQL—多表查询

right jion与left jion类似

怎么查询同名同姓人数_SQL—多表查询

一张图记住几种联结

三.解决SQL实际问题的案例及三步走分析方法 问题1:查询所有学生的学号,姓名,选课数及总成绩:

第一步,翻译成大白话:

1)学号,姓名(student)

2)选课数(每个学生的选课数目:成绩表score,按学号分类,对课程号计数count)

3)总成绩(每个学生的总成绩):

成绩表score,

按学号分组,对成绩求sum

第二步:写出分析思路:

select 查询结果[学号,姓名,选课数,总成绩]

from 哪张表(学生表student,成绩表score)

两个表怎么联结?通过学号,用哪种联结?左联接

where 查询条件(没有)

group by 分组(

每个学生的选课数目:按学号分组,对课程号求count

每个学生的总成绩:按学号分组,对成绩求sum)

having 对分组结果指定条件(没有)

order by 对查询结果排序(没有)

limit 从查询结果中取出指定行(没有);

第三步:写出sql语句:

怎么查询同名同姓人数_SQL—多表查询
问题2:查询平均成绩大于85的所有学生的学号,姓名和平均成绩

第一步:

1)查询出所有学生的学号,姓名,平均成绩

学号,姓名再student表中

平均成绩(每个学生的平均成绩在成绩表score中,按学号分组,平均成绩:avg(成绩))

2)平均成绩>85

第二步:

select 查询结果[学号,姓名,平均成绩]

from 哪张表(学生表student,成绩表score)

两个表怎么联结?通过学号,用哪种联结?左联接

where 查询条件(没有)

group by 分组(

平均成绩:按学号分组,对成绩求avg)

having 对分组结果指定条件(b.成绩)>85

order by 对查询结果排序(没有)

limit 从查询结果中取出指定行(没有);

第三步:

怎么查询同名同姓人数_SQL—多表查询
问题3:查询学生的选课情况:学号,姓名,课程号,课程名称

第一步:

1)查询出所有学生的学号,姓名(student)课程号以及课程名称(课程表course)

第二步

select 查询结果[学号,姓名,课程号,课程名称]

from 哪张表(学生表student,课程表course)

两个表怎么联结?通过成绩表产生联系 用哪种联结?两两使用内联结

where 查询条件(没有)

group by 分组(没有)

order by 对查询结果排序(没有)

limit 从查询结果中取出指定行(没有);

第三步:

怎么查询同名同姓人数_SQL—多表查询

inner jion联结三张表

四. case表达式的使用

case表达式:

case when 判断表达式 then 表达式

when 判断表达式 then 表达式

else 表达式

end

怎么查询同名同姓人数_SQL—多表查询

查询出每门课程的及格人数和不及格人数

怎么查询同名同姓人数_SQL—多表查询

统计各科成绩各分段的人数

五.SQLZOO练习

怎么查询同名同姓人数_SQL—多表查询
怎么查询同名同姓人数_SQL—多表查询
怎么查询同名同姓人数_SQL—多表查询
怎么查询同名同姓人数_SQL—多表查询
怎么查询同名同姓人数_SQL—多表查询
怎么查询同名同姓人数_SQL—多表查询
怎么查询同名同姓人数_SQL—多表查询