多表查询环境:已有5个表,student为学生表,teacher为教师表,teaching为授课表,course为课程表,sc为成绩表。

(1) 查询计算机工程系女学生的学生学号、姓名及考试成绩。

SELECT s.sno, sname, degree
FROM student s
LEFT OUTER JOIN sc c on s.sno = c.sno
WHERE ssex = '女'
AND sdept = '计算机工程系';

(2) 查询“李勇”同学所选课程的成绩。(不考虑重名)

SELECT sname, c.cname, sc.degree
FROM scLEFT JOIN student s on sc.sno = s.snoLEFT OUTER JOIN course c on c.cno = sc.cno
WHERE sname = '李勇';

(3) 查询“李新”老师所授课程的课程名称。

SELECT cname
FROM courseLEFT JOIN teaching t on course.cno = t.cnoLEFT JOIN teacher t2 on t2.tno = t.tno
WHERE tname = '李新';

(4) 查询女教师所授课程的课程号及课程名称。

SELECT t.cno , cname
FROM courseLEFT JOIN teaching t on course.cno = t.cnoLEFT JOIN teacher t2 on t2.tno = t.tno
WHERE tsex = '女';

(5) 查询至少选修一门课程的女学生姓名。

SELECT sname
FROM student
LEFT JOIN sc s on student.sno = s.sno
WHERE ssex = '女'
GROUP BY s.sno
HAVING COUNT(cno) > 1;

(6) 查询姓“王”的学生所学的课程名称。

SELECT cname
FROM courseLEFT JOIN sc s on course.cno = s.cnoLEFT JOIN student s2 on s2.sno = s.sno
WHERE s2.sname LIKE '王%';

(7) 查询选修“数据库”课程且成绩在80~90分之间的学生学号及成绩。

SELECT d.sno, degree
FROM student dLEFT JOIN sc s on d.sno = s.snoLEFT JOIN course c on s.cno = c.cno
WHERE cname = '数据库'
HAVING s.degree BETWEEN 80 AND 90;

(8) 查询选修“数据库”课程且成绩在80~90分之间的学生姓名及成绩。

SELECT d.sname, degree
FROM student dLEFT JOIN sc s on d.sno = s.snoLEFT JOIN course c on s.cno = c.cno
WHERE cname = '数据库'
HAVING s.degree BETWEEN 80 AND 90;

(9) 查询课程成绩及格的男同学的学生信息及课程号与成绩。

SELECT d.*, cno, degree
FROM student dLEFT JOIN sc s on d.sno = s.sno
WHERE degree >= 60;

(10) 查询选修“c04”课程的学生的平均年龄。

SELECT AVG(age)
FROM (SELECT(YEAR(NOW()) - YEAR(sbirthday)) ageFROM studentLEFT JOIN sc s on student.sno = s.snoWHERE cno = 'C02')  avs;

(11) 查询学习课程名为“数学”的学生学号和姓名。

SELECT d.sno, sname, c.cname
FROM student dLEFT JOIN sc s on d.sno = s.snoLEFT JOIN course c on c.cno = s.cno
WHERE c.cname = '数学';

(12) 查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩。

SELECT d.cno, sno, degree
FROM course dLEFT JOIN sc s on d.cno = s.cnoLEFT OUTER JOIN teaching t on d.cno = t.cnoLEFT JOIN teacher t2 on t2.tno = t.tno
WHERE t2.tname = '钱军';

(13)查询“钱军”教师任课的课程号,选修其课程的学生的姓名。

SELECT d.cno, s2.sname
FROM course dLEFT JOIN sc s on d.cno = s.cnoLEFT JOIN teaching t on d.cno = t.cnoLEFT JOIN teacher t2 on t2.tno = t.tnoLEFT JOIN student s2 on s2.sno = s.sno
WHERE t2.tname = '钱军';

(14)查询在第3学期所开课程的课程名称及成绩。

SELECT cname, degree
FROM courseLEFT JOIN sc ON course.cno = sc.cnoLEFT JOIN teaching t on course.cno = t.cno
WHERE cterm = 3
GROUP BY sno;;

(15)查询“C02”号课程不及格的学生信息。

SELECT s2.*
FROM course dLEFT JOIN sc s on d.cno = s.cnoLEFT JOIN student s2 on s2.sno = s.sno
WHERE d.cno = 'C02' AND degree < 60;

(16)查询软件工程系成绩在90分以上的学生姓名、性别和课程名称。

SELECT sname , ssex , cname FROMstudent d LEFT JOIN sc s on d.sno = s.snoLEFT JOIN course c on s.cno = c.cno
WHERE degree > 90 AND d.sdept = '软件工程系';

(17) 查询同时选修了“C04”和“C02”课程的学生姓名和成绩。

SELECT sname,b.degree ,c.degree
FROM student a,sc b,sc c
WHERE a.sno=b.sno AND b.sno=c.snoAND b.cno='C01' AND c.cno='C02'
GROUP BY sname;

[MySQL]学生表、教师表、课程表、授课表、成绩表的多表查询案例(1)相关推荐

  1. Java Swing Mysql学生选课系统

    此篇是基于Java Swing Mysql学生选课系统的第二阶段 主要功能: 课程添加.编辑.查询.删除.选课.退课.修改已选课程.以及老师.管理员.学生三种角色的权限分配 开发环境: 开发工具:Ec ...

  2. MySQL全方位练习(学生表 教师表 课程表 分数表)

    一.创建表并初始化数据 1.表说明 student(学生表).teacher(教师表).course(课程表).sc(分数表) 2.创建表 [sql]  view plain copy create  ...

  3. mysql学生表选课表课程表_mysql查询(学生表、课程表、选课表)

    ************************************************************ 为sc表中的sno和cno创建外键 alter table sc add fo ...

  4. mysql学生表_课程表_选课表,连表查询

    表设计 效果1: 效果2: 代码如下: /* 查询所有学生选课情况 */ select S.id,S.username,C.cname from students S,course C,select_ ...

  5. mysql学生班级老师_MySQL全方位练习(学生表 教师表 课程表 分数表)

    1.查询"c001"课程比"c002"课程成绩高的所有学生的学号: select a.*from (select* from sc a where a.cno= ...

  6. 创建学院表 学生表 教师表 课程表 选课记录表

    为什么要使用数据库 解决数据持久化问题 高效的管理数据(增删改查) 数据库的分类: 关系型数据库 理论基础:关系代数 具体表象:二维表 行:记录 列:字段 编程语言:SQL(结构化查询语言) DDL ...

  7. MySQL8.0 小白入门 46条sql语句练习(学生表 教师表 课程表 分数表)

    4 Tab for MySQL8.0 1.表说明 2.创建表 3.插入数据 4.查询语句(46条) 1.表说明 – 数据库版本:mysql8 – 数据表说明:student(学生表).teacher( ...

  8. 学生表课程表成绩表教师表

    . Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 ...

  9. MySQL学生表、老师表、课程表和成绩表查询语句,全部亲测

    建表可自行百度,重点为查询: 一.数据准备: 1.student学生表数据: 2.teacher老师表数据: 3.course课程表数据: 4.score成绩表数据: 二.数据查询 1.查询平均成绩大 ...

最新文章

  1. Linux内核中关于定时器Timer的应用
  2. base64格式的图片上传阿里云
  3. Vue 中 slot插槽 的使用
  4. 【Vegas2010】cnblogs(博客园)排名原来是这样算的~
  5. 为EasyUI 的Tab 标签添加右键菜单
  6. 50年后的地球什么样?大数据、AI、量子计算的书单给你答案
  7. 10g数据库入门与实践 oracle_修改oracle数据文件大小 报错:ORA-03297
  8. 人脸关键点:MTCNN-Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
  9. NYOJ100 - 1的个数
  10. 【5】Java内存访问重排序vs volatile
  11. # 独立开发变现周刊(第57期):开发一个免费照片编辑器,一个人每月收入10万美元...
  12. wxpython中表格顶角怎么设置_wxpython编程之 grid(数据表格) | 学步园
  13. javascript运动框架(三)
  14. VTK-三维坐标系计算两点之间距离
  15. 十进制转换为二进制和十六进制
  16. konva系列教程4:图形属性
  17. mac 查看本机 ip
  18. 联奕“云计算”数字校园整体解决方案,让高校云计算不再是“浮云”
  19. 华工文科小本,这样走进腾讯
  20. leetcode 刷题指南 刷题顺序

热门文章

  1. 基于matlab的复杂背景下不规则目标边缘提取算法的仿真
  2. root认证失败 tera term_解决Ubuntu 18.04使用root账户登录显示“认证失败”
  3. 修改网站地址栏小图标
  4. mysql 中日韩 乱码,mysql字符集乱码问题解决方法介绍
  5. 匹配滤波增益matlab仿真附报告
  6. matlab 怎么控制ccd,CCD camera的一般控制流程及些许困惑
  7. 唐僧团队的师徒定位(转载)
  8. linux文件系统xilinx,EETOP 赛灵思(Xilinx) 社区
  9. AbdomenCT-1K(2)
  10. B站APP测试框架解析