实验四          嵌套查询

一、实验目的

掌握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. 1040 有几个PAT (25 分

    字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T):第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T). 现 ...

  2. 如何用css让一个容器水平垂直居中

    方法一: 以前设置里面的绿div总是会使用{position:absolute;left:50%;top:50%;margin-left:-div宽度的一半;margin-top:-div高度的一半} ...

  3. UntraEdit 语法高亮 (MSSQL)

    http://www.ultraedit.com/downloads/extras/wordfiles.html 这里有ue 支持的语言的uew文件. 需要把下载的语法文件放到: %APPDATA%\ ...

  4. 2048小游戏(Java)(swing实现)(二)

    这里是上一次的成果,只能用鼠标点,没法用键盘 最近扩充了一下知识面,实现了用键盘操控2048小游戏 但是还是不支持同时使用键盘和鼠标同时操作 import javax.swing.*; //impor ...

  5. es6数组新方法

    (1)Array.from(aarr,fn,obj) function fn(dr, sd, d) { /*Array.from 类数组转化为数组*/ console.log(arguments) v ...

  6. java——删除HashMap中所有的键值对

    第一种:❌(报错) import java.util.HashMap; import java.util.Set; public class T{ public static void main(St ...

  7. C# String.Join用法

    String.Join(String, String[]) 在指定 String 数组的每个元素之间串联指定的分隔符 String,从而产生单个串联的字符串 例如: string [] array={ ...

  8. GitKraken使用教程-基础部分(7)

    8.  本地分支和标签 1) 在提交记录区中查看分支状态 提交记录区中每一个分支都位于一个提交记录所在的行中. 从图 2‑1中可以看到,服务器上的master分支停留在整理格式(把这个提交记录记为or ...

  9. 延迟查询--LINQ

    1.LINQ查询使用的是延迟查询的方法,以便提高效率 public static IEnumerable<TSource> Where<TSource>(this IEnume ...

  10. Spring cloud微服务 Hystrix熔断器学习教程

    以下demo代码:https://github.com/wades2/HystrixtDemo 官网定义:Hystrix是一个延迟容错库.在分布式环境中,许多服务依赖项中的一些不可避免地会失败.Hys ...