实验四          嵌套查询

一、实验目的

掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法。

二、实验环境

三、实验示例

1、  查询与“刘晨”在同一个系学习的学生。

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept  IN

(SELECT Sdept

FROM Student

WHERE Sname= ‘ 刘晨 ’);

用自身连接完成

SELECT  S1.Sno,S1.Sname,S1.Sdept

FROM     Student S1,Student S2

WHERE  S1.Sdept = S2.Sdept  AND

S2.Sname = '刘晨';

2、查询选修了课程名为“信息系统”的学生学号和姓名

SELECT Sno,Sname             ③ 最后在Student关系中

FROM    Student                   取出Sno和Sname

WHERE Sno  IN

(SELECT Sno             ② 然后在SC关系中找出选

FROM    SC              修了3号课程的学生学号

WHERE  Cno IN

(SELECT Cno           ① 首先在Course关系中找出

FROM Course                “信息系统”的课程号,为3号

WHERE Cname= ‘信息系统’

)

);

3、检索学C2课程的学号与姓名。

SELECT S#,SNAME   FROM S

WHERE S# = SOME(SELECT  S#  FROM SC

WHERE C# ='C2');

4、 检索至少有一门成绩超过学生S4一门成绩的学

生学号。

SELECT DISTINCT S#   FROM SC

WHERE SCORE > SOME(SELECT SCORE  FROM SC

WHERE S#='S4');

5、 检索不学C2课程的学生姓名与年龄。

SELECT SNAME,AGE  FROM S

WHERE S# <> ALL(SELECT S#  FROM SC

WHERE C#= 'C2');

6、 检索平均成绩最高的学生学号。

SELECT S#  FROM SC

GROUP BY S#

HAVING AVG SCORE >=

ALL(SELECT AVG(SCORE) FROM SC

GROUP BY S#);

7、查询所有选修了1号课程的学生姓名。

SELECT Sname

FROM Student

WHERE EXISTS

(SELECT *

FROM SC

WHERE Sno=Student.Sno AND Cno= ' 1 ');

8、  查询没有选修1号课程的学生姓名。

SELECT Sname

FROM Student

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE Sno = Student.Sno AND Cno='1');

9、查询选修了全部课程的学生姓名。

SELECT Sname

FROM Student

WHERE NOT EXISTS

(SELECT *

FROM Course

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE Sno= Student.Sno

AND Cno= Course.Cno

);

四、实验内容与步骤

1、检索WANG同学不学的课程的课程号。

2、 检索学号比WANG同学大,而年龄比他小的学生姓名。

3、 求年龄大于女同学平均年龄的男学生姓名和年龄。

4、 求年龄大于所有女同学年龄的男学生姓名和年龄。

5、检索全部学生都选修的课程的课程号与课程名。

6、检索选修课程包含LIU老师所授课程的学生学号。

MySQL数据库实验四:嵌套查询的更多相关文章

  1. 数据库操作事物的四大特性以及MySQL数据库的四种隔离级别

    1 .事物操作数据库的四大特性(ACID) 1.原子性 (Atomicity) 原子性:就是事物的所包含的所有操作,要么全部成功,要么全部失败回滚. 2.一致性 (Consistency) 一致性:简 ...

  2. Java对MySQL数据库进行连接、查询和修改(转)

    Java对MySQL数据库进行连接.查询和修改 0. 一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection( ...

  3. MySQL数据库语法-多表查询练习一

    MySQL数据库语法-多表查询练习一 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要介绍的多表查询的外键约束,以及如何使用外链接和内连接查询数据信息. 一.数据表和测试 ...

  4. MySQL数据库之单表查询中关键字的执行顺序

    目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...

  5. MySQL数据库语法-单表查询练习

    MySQL数据库语法-单表查询练习 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是对聚合函数和分组的练习. 一.数据表和测试数据准备 /* @author :yinz ...

  6. MySQL数据库(四)—— 记录相关操作之插入、更新、删除、查询(单表、多表)

    一.插入数据(insert) 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); # 后面的值必须与字段 ...

  7. MySQL数据库实验三:连接查询

    实验三    连接查询 实验名称:连接查询(2课时) 一.实验目的 理解JOIN语句的操作和基本使用方法,掌握内连接.外连接.自身连接的概念和使用. 二.实验环境 是MS SQL SERVER 200 ...

  8. 实验四 数据查询3-group by等

    实验四 数据库查询 一.  实验内容: 1. Group by语句 2. Having 语句 3. Order by语句 4. Limit语句 5. Union语句 6. Handler语句 二.  ...

  9. 数据库---实验四 oracle的安全性和完整性控制

    实验内容: (一) 授权 . 以dba用户的身份登陆oracle,创建用户u1+学号后四位,u2+学号后四位. SQL> create user u1_3985 identified by &q ...

随机推荐

  1. spark 2.X 疑难问题汇总

    当前spark任务都是运行在yarn上,所以不用启动长进程worker,也没有master的HA问题,所以主要的问题在任务执行层面. 作业故障分类故障主要分为版本,内存和权限三方面. - 各种版本不一 ...

  2. HikariPool连接池的使用

    HikariDataSource datasource= new HikariDataSource( xxxx ); Connection cn = datasource.getConnection( ...

  3. Jenkins安装过程

    1.安装环境 配置java环境 安装Tomcat 2.将Jenkins.war 包放入Tomcat的webapps目录 3.启动tomcat后,tomcat会解压war包,生成一个jenkins文件夹 ...

  4. 转 如何在secureCRT上设置常用的快捷输出按钮栏听语音

    https://jingyan.baidu.com/article/5d6edee2f32de199eadeec25.html 要注意secureCRT的版本,建议下载最新版本的软件         ...

  5. web常见测试点总结

    上周五小组内对Web的常见测试点进行了交流学习,虽然这些信息网上一搜都一大把,但整理的过程中自己脑袋瓜里又重新回顾了一遍,大家都很认真的在学习,互相补充着,现总结如下,欢迎同行留言 一.新增.修改 用 ...

  6. js获取日期:前天、昨天、今天、明天、后天

    前天,昨天,今天,明天,后天 <html> <head> <meta http-equiv="Content-Type" content=" ...

  7. ToDictionary写法

    把List集合转化成Dictionary public ActionResult Dimo() { Dictionary<string, Object> param = new Dicti ...

  8. maven常用依赖

    HttpServletRequest HttpServletResponse <dependency> <groupId>javax.servlet</groupId&g ...

  9. Python模块入门(二)

    一.模块的循环导入问题 在python工程中,由于架构不当,可能会出现模块间互相引用的情况.这时候需要通过一些方法来解决这个问题 1.重新设计架构,解决互相引用的关系. 2.把import语句放置在模 ...

  10. 洛谷P3372 【模板】线段树 1(树状数组)

    题意 题目链接 Sol Get到了这题树状数组的做法,感觉非常nice 区间加:直接差分 区间求和:考虑每一位的贡献 \(sum_{i = 1}^x (x+1 - i) d_i\) \(= sum_{ ...