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

你可能感兴趣的文章
php openssl aes ecb,php openssl_encrypt AES-128-ECB iOS
查看>>
php paypal rest api,PayPal REST API指定网络配置文件PHP
查看>>
php pcntl 多进程学习
查看>>
PHP pcntl_fork不能在web服务器中使用的变通方法
查看>>
php private ,public protected三者的区别
查看>>
php PSR规范
查看>>
php rand() 重复,array_rand()函数从另外一个数组中随机取得的一定数量的数组的元素是否会重复?...
查看>>
php redis pub/sub(Publish/Subscribe,发布/订阅的信息系统)之基本使用
查看>>
php redis 集群扩展类文件
查看>>
php redis(2)
查看>>
PHP Redis分布式锁
查看>>
php redis的应用
查看>>
php rss,如何用PHP编写RSS
查看>>
php session超时时间_php怎么设置session超时时间
查看>>
PHP SOAP模块的使用方法:NON-WSDL模式
查看>>
PHP Socket实现websocket(三)Stream函数
查看>>
php Socket通信
查看>>
PHP SPL标准库-迭代器
查看>>
php static 变量
查看>>
PHP Static延迟静态绑定
查看>>