博客
关于我
数据库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/

你可能感兴趣的文章
OpenCV官方文档 理解k - means聚类
查看>>
opencv实现多路播放
查看>>
opencv常用函数
查看>>
OpenCV探索
查看>>
OpenCV添加中文(五)
查看>>
opencv源码查看
查看>>
OpenCV点目标检测未找到所有目标,并且找到的圆圈偏移
查看>>
opencv特征提取1-Harris角点检测
查看>>
OpenCV环境搭建(一)
查看>>
OpenCV的视频读取
查看>>
openCV目标识别 目标跟踪 YOLO5深度学习 Python 计算机视觉 计算机毕业设计 源码下载
查看>>
opencv笔记(1):图像缩放
查看>>
opencv笔记(二十四)——得到轮廓之后找到凸包convex hull
查看>>
OpenCV计算点到直线的距离 数学法
查看>>
Opencv识别图中人脸
查看>>
OpenCV读写avi、mpeg文件
查看>>
opencv里用calcCovarMatrix计算协方差矩阵
查看>>
OpenCV错误:在setSize中断言失败(s&>;=0)-尝试将图像放置在网络摄像头提要上时
查看>>
opencv面向对象设计初探
查看>>
OpenCV(1)读写图像
查看>>