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

你可能感兴趣的文章
Nginx 我们必须知道的那些事
查看>>
Nginx 的 proxy_pass 使用简介
查看>>
Nginx 的配置文件中的 keepalive 介绍
查看>>
Nginx 结合 consul 实现动态负载均衡
查看>>
Nginx 负载均衡与权重配置解析
查看>>
Nginx 负载均衡详解
查看>>
nginx 配置 单页面应用的解决方案
查看>>
nginx 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx 配置清单(一篇够用)
查看>>
Nginx 配置解析:从基础到高级应用指南
查看>>
nginx+php的搭建
查看>>
nginx+tomcat+memcached
查看>>
nginx+Tomcat性能监控
查看>>
nginx+uwsgi+django
查看>>
Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
查看>>
nginx-vts + prometheus 监控nginx
查看>>
Nginx下配置codeigniter框架方法
查看>>
Nginx之二:nginx.conf简单配置(参数详解)
查看>>
Nginx代理websocket配置(解决websocket异常断开连接tcp连接不断问题)
查看>>