现有四张表格,分别是教师表、学生表、课程表和成绩表:
教师表:(t_id, t_name)-教室编号,教师姓名
表一 教师表
学生表:(s_id,s_name,s_birth,s_sex)-学生编号,学生姓名,出生日期,学生性别
表二 学生表
课程表:(c_id,c_name,ct_id)-课程编号,课程名称,教师编号
表三 课程表
成绩表:(s_id,c_id,s_score)-学生编号,课程编号,分数
表四 成绩表
根据以上信息按照要求写出对应的SQL语句。
一、建表
[建表并导入数据]
1.1、建立教师表语句,并进行相应的赋值
建立教师表语句
1.2、建立学生表语句,并进行相应的赋值
建立学生表语句
1.3、建立课程表语句,并进行相应的赋值
建立课程表语句
1.4、建立成绩表语句,并进行相应的赋值
建立成绩表语句
对应建表后的结果:
2.1、教师表运行结果
2.2、学生表运行结果
2.3、课程表运行结果
2.4、成绩表运行结果
二、根据以上建立的表格进行相关的数据分析
1、查询”0001″课程比”0002″课程成绩高的学生的信息及课程分数
解决思路:先查询出c_id分别为0001和0002的所有s_id和s_score作为内嵌视图A和B,通过筛选条件同时满足A分数大于B分数且A和B的s_id相同,MySQL语句如下:
运行结果:
2、查询平均成绩大于60分的同学的学生编号和学生姓名和平均成绩
解决思路:通过Score表格的s_id分组后即可求出所有学生的平均成绩,然后通过having子句过滤出平均分数大于60的s_id,MySQL语句如下:
运行结果:
3、查询所有学生的学号、姓名、选课数、总成绩
解决思路: 通过join on函数通s_id将学生表和成绩表联结,并用count和sum函数将学生的选课数和总成绩统计后通过group by函数整理出来,MySQL语句如下:
运行结果:
4、查询姓“张”的老师的个数
解决思路: 通过教师表进行模糊查询,MySQL语句如下:
运行结果: