【MySQL】多表查询


多表连接语法:

where链接:略
from链接:略


例子:

教职工表Teacher(Tno, TName, age, sal, mgr, DNo),TNo为教职工编号,TName为教职工姓名,age年龄,sal为月薪,mgr为教职工的上一级领导的职工号,DNo为部门号;
课程表Course(Cno, CName, CCredits, CTno),Cno为课程编号,CName为课程名字,CCredits为课程学分, CTno为该课程上课老师的编号,其中外键CTno来自表Teacher的Tno键;
学生表Student(Sno, CLno, SName, SSex, SBir, Email),其中Sno为学生学号,CLno为系别编号,SName为学生姓名,SSex为学生性别,SBir为学生出生日期;
学生选课表SC(Sno, Cno, Score)。


  1. 查询选修了数据库的学生的学号
    在这里插入图片描述
  2. 查询JAVA成绩不及格的学生学号姓名成绩
    在这里插入图片描述
  3. 使用内连接查询每个学生及其选修课程情况;
    在这里插入图片描述
  4. 使用左连接查询查询每个学生及其选修课程情况,并讨论和上一题结果的区别;
    在这里插入图片描述
    左连接:student表左连接sc表,意味着查询结果集中必须包含student表的全部记录,然后student表按学号与sc表连接,因为00005~00007号无sc表信息,所以插入NULL值代替。
  5. 使用连接查询选修了张三老师所授课程的学生学号姓名
SELECT student.SNo,SName
FROM student INNER JOIN sc ON student.SNo=sc.SNo 
INNER JOIN course ON sc.CNo=course.CNo 
INNER JOIN teacher ON course.CTno=teacher.Tno 
WHERE TName='张三'

在这里插入图片描述
6. 查询和马行空在同一个系的学生名字
在这里插入图片描述在这里插入图片描述
7. 查询001号课程的最高分学生学号姓名
在这里插入图片描述
8. 使用IN查询教师张七的下属教师名字
在这里插入图片描述
9. 使用NOT IN查询未选修”数据库”课程的学生学号
在这里插入图片描述
10. 使用EXISTS查询00014号选修的课程名
在这里插入图片描述
11. 使用NOT EXISTS查询00014号未选修的课程名
在这里插入图片描述
12. 查询选修了两名课程及以上的学生姓名学号
在这里插入图片描述
13. 查询选修了所有课程的学生学号姓名
在这里插入图片描述
14. 在选修课001中,使用ALL查询比学号00001和学号00004的成绩都低的学生学号

SELECT SNO
FROM SC 
WHERE CNo='001' AND score<ALL
(SELECT score 
FROM SC WHERE (SNO='00001' OR SNO='00004') AND CNo='001')

在这里插入图片描述

  1. 在选修课001中,使用ANY查询比学号00001或学号00004的成绩低的学生学号
SELECT SNO
FROM SC 
WHERE CNo='001' AND score<ANY
(SELECT score 
FROM SC WHERE (SNO='00001' OR SNO='00004') AND CNo='001')

在这里插入图片描述

  1. 在选修课001中,查询最高分的学生学号
    在这里插入图片描述
  2. 查询系号为01成绩都及格的学生的姓名平均成绩,按平均成绩降序排序;
    在这里插入图片描述
  3. 分别查询选修了001号课程的学生学号和选修了002号课程的学生学号,使用UNION和UNION ALL把两个查询结果合并起来,并讨论查询结果异同;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    因为union将多个查询结果合并起来时,系统自动去掉重复元组;union all将多个查询结果合并起来时,保留重复元组 ,所以上面结果集中的sno值出现重复。
  4. 查询课程名以英文字母开头的课程信息。
    在这里插入图片描述
  5. 查询课程名纯英文字母的课程信息
select * 
from course
where CName regexp '^[a-z]*[a-z]$';

在这里插入图片描述

相关推荐

  1. MySQL - 查询

    2023-12-15 10:52:02       41 阅读
  2. MySQL-查询

    2023-12-15 10:52:02       41 阅读
  3. MySQL查询

    2023-12-15 10:52:02       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 10:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 10:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 10:52:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 10:52:02       20 阅读

热门阅读

  1. filecmp --- 文件及目录的比较

    2023-12-15 10:52:02       37 阅读
  2. mysql binlog_ignore_db参数的效果详解

    2023-12-15 10:52:02       36 阅读
  3. 9月7日算法学习笔记(栈)

    2023-12-15 10:52:02       34 阅读
  4. 力扣面试150题 |有效的括号

    2023-12-15 10:52:02       49 阅读
  5. LintCode 123 · Word Search (DFS字符处理经典题!)

    2023-12-15 10:52:02       38 阅读
  6. c#面试基础语法——as和is的区别

    2023-12-15 10:52:02       40 阅读
  7. RT-1配置文件

    2023-12-15 10:52:02       31 阅读
  8. 【前端设计模式】之享元模式

    2023-12-15 10:52:02       39 阅读
  9. vue混入、路由、动态路由匹配

    2023-12-15 10:52:02       41 阅读
  10. HTML5结构规范

    2023-12-15 10:52:02       35 阅读
  11. 浏览器 css 默认的字体图表

    2023-12-15 10:52:02       37 阅读
  12. 【力扣100】189.轮转数组

    2023-12-15 10:52:02       43 阅读
  13. CSS

    CSS

    2023-12-15 10:52:02      28 阅读