博客
关于我
数据库SQL查询作业
阅读量:130 次
发布时间:2019-02-27

本文共 1585 字,大约阅读时间需要 5 分钟。

SQL 查询优化与解决方案

一、基本数据关系

  • 学生信息表 S(S#, SNAME, AGE, SEX)
  • 课程信息表 C(C#, CNAME, TEACHER)
  • 课程学生关系表 SC(S#, C#, GRADE)
  • 教师信息表 T(T#, TNAME, AGE, SEX)

二、具体查询优化与解决方案

1. 检索 LIU 老师所授课程的课程号与课程名
SELECT c.c#,c.cnameFROM cWHERE teacher = 'LIU';
2. 检索年龄大于23岁的男同学的学号与姓名
SELECT s.s#,s.snameFROM sWHERE age > 23  AND sex = '男';
3. 检索学号为 S3 学生所学课程的课程名与任课教师名
SELECT c.cname,t.tnameFROM c,scWHERE c.c# = sc.c#  AND s# = 'S3';
4. 检索至少选修 LIU 老师所授课程中一门课程的女学生的姓名
-- 方法一:嵌套查询SELECT s.snameFROM sWHERE sex = '女'  AND s# IN     (SELECT s#      FROM sc     WHERE c# IN        (SELECT c#         FROM c        WHERE teacher = 'LIU'));-- 方法二:多表联合查询SELECT s.snameFROM s,sc,cWHERE s.s# = sc.s#   AND sc.c# = c.c#   AND teacher = 'LIU'  AND s.sex = '女';
5. 检索王同学不学的课程号
-- 方法一:使用子查询SELECT c.c#FROM cWHERE c# NOT IN   (SELECT c#    FROM sc   WHERE s# IN      (SELECT s#       FROM s      WHERE sname = '王'));-- 方法二:联合查询SELECT c.c#FROM scWHERE c# NOT IN   (SELECT c.c#    FROM s,sc   WHERE s.s# = sc.s#    AND sname = '王');
6. 检索至少选修两门课程的学生学号
SELECT DISTINCT s.s#FROM sc x,sc yWHERE x.s# = y.s#   AND x.c# != y.c#;
7. 检索全部学生都选修的课程的课程号与课程名
-- 方法一:使用计数和子查询SELECT c.c#,c.cnameFROM cWHERE c.c# = (SELECT c.c#                FROM sc               GROUP BY c.c#,c.cname               HAVING COUNT(*) = (SELECT COUNT(*)                                 FROM s));-- 方法二:使用存在性子查询SELECT c.c#,c.cnameFROM cWHERE NOT EXISTS   (SELECT s.s#    FROM s   WHERE s.s# NOT IN      (SELECT sc.c#       FROM sc      WHERE sc.c# = c.c#));
8. 检索选修课程包含 LIU 老师所授课程的学生学号
SELECT DISTINCT s.s#FROM scWHERE c# IN   (SELECT c#    FROM c   WHERE teacher = 'LIU');

转载地址:http://igdb.baihongyu.com/

你可能感兴趣的文章
OK335xS UART device registe hacking
查看>>
ok6410内存初始化
查看>>
OKR为什么到今天才突然火了?
查看>>
ollama本地部署DeepSeek(Window图文说明)
查看>>
onCreate()方法中的参数Bundle savedInstanceState 的意义用法
查看>>
one_day_one--mkdir
查看>>
ONI文件生成与读取
查看>>
oobbs开发手记
查看>>
OpenCV 中的图像转换
查看>>
opencv&Python——多种边缘检测
查看>>
OpenCV-Python接口、cv和cv2的性能比较
查看>>
opencv26-模板匹配
查看>>
opencv5-图像混合
查看>>
opencv9-膨胀和腐蚀
查看>>
OpenCV与AI深度学习 | YOLO11介绍及五大任务推理演示(目标检测,图像分割,图像分类,姿态检测,带方向目标检测)
查看>>
OpenCV与AI深度学习 | 使用Python和OpenCV实现火焰检测(附源码)
查看>>
OpenCV与AI深度学习 | 使用YOLO11实现区域内目标跟踪
查看>>
OpenCV与AI深度学习 | 使用YOLOv8做目标检测、实例分割和图像分类(包含实例操作代码)
查看>>
OpenCV与AI深度学习 | 基于GAN的零缺陷样本产品表面缺陷检测
查看>>
OpenCV与AI深度学习 | 基于OpenCV和深度学习预测年龄和性别
查看>>