数据库技术基础教学课件作者王珊chp4课件.pptVIP

  • 15
  • 0
  • 约3.02万字
  • 约 130页
  • 2016-12-26 发布于广东
  • 举报

数据库技术基础教学课件作者王珊chp4课件.ppt

数据库技术基础 第4章 结构化查询语言SQL 4.6 嵌套查询 在WHERE子句中出现的SELECT语句一般被称为子查询,包含子查询的查询叫做嵌套查询。 嵌套查询分为相关嵌套查询和不相关嵌套查询。嵌套查询的功能很强大,但是不太容易掌握。 4.6 嵌套查询(续) 4.6.1 基本概念 4.6.2 带有IN谓词的子查询 4.6.3 带有比较运算符的子查询 4.6.4 带有SOME或ALL谓词的子查询 4.6.5 带有EXISTS谓词的子查询 4.6.6 子查询在DML语句中的应用 4.6.1 基本概念(续) 1. 集合表示法 SELECT Sdept FROM Student(计算机学院, 管理学院) 在SQL语言中,有两种办法表示集合,即枚举法和查询。 枚举法:(计算机学院, 管理学院),(高等数学, 离散数学, 数据结构) 查询: 4.6.1 基本概念(续) 2. 不相关嵌套查询 [例4.41] 查询选修了课程编号为1024的课程的学生姓名和所在院系。 查询涉及Student和SC表。可以分两步来构造查询:首先在SC表中查找出选修了1024的学生编号, SELECT Sno FROM SC WHERE Cno = 1024 然后,根据学生编号在Student表中查找学生的姓名和所在院系。结果如图4.32所示。 SELECT Sname, Sdept --父查询或外查询 FROM Student WHERE Sno IN (SELECT Sno --子查询或内查询 FROM SC WHERE Cno = 1024) 4.6.1 基本概念(续) 2. 不相关嵌套查询(续) 4.6.1 基本概念(续) 3. 相关嵌套查询 [例4.42] 查询平均成绩不小于85分的学生姓名和所在院系。 查询结果如图4.33所示。 4.6.1 基本概念 4. 操作符 子查询和父查询之间常常用一些操作符进行运算。下面列出这些操作符及其含义,在后面的小节中逐个讲解各自的使用方法。用x表示变量,S代表集合,θ是比较运算符 = = = 。 x IN S:如果x是S的成员,则返回真,否则返回假。 x θ S (S中只有一个元素):如果x与S中的唯一一个元素满足θ条件,则返回真,否则返回假。 x θ ALL S:如果x与S中的所有元素都满足θ条件,则返回真,否则返回假。 x θ SOME S:如果x与S中的某些(或某个)元素满足θ条件,则返回真,否则返回假。在早期版本中使用ANY这个词,为了避免与英文中ANY的词义混淆,后期的版本都采用SOME代替ANY。 EXISTS S:集合S为非空集,则返回真,否则返回假。 NOT EXISTS S:集合S为空集,则返回真,否则返回假。 4.6 嵌套查询 4.6.1 基本概念 4.6.2 带有IN谓词的子查询 4.6.3 带有比较运算符的子查询 4.6.4 带有SOME或ALL谓词的子查询 4.6.5 带有EXISTS谓词的子查询 4.6.6 子查询在DML语句中的应用 4.6.2 带有IN谓词的子查询 [例4.43] 查询选修了课程名为“离散数学”的学生的学号和姓名。 本查询涉及学号、姓名和课程名三个属性。学号和姓名存放在Student表中,课程名存放在Course表中,但Student与Course两个表之间没有直接联系,必须通过SC表建立它们二者之间的联系。所以本查询实际上涉及三个表。 SELECT Sno,Sname --③求出学生信息 FROM Student WHERE Sno IN (SELECT Sno --②选修离散数学的学号 FROM SC WHERE Cno IN (SELECT Cno --①离散数学的课程编号 FROM Course WHERE Cname = 离散数学 )) 4.6.2 带有IN谓词的子查询(续) 本查询也可以用连接查询实现: SELECT Student.Sno, Sname FROM

文档评论(0)

1亿VIP精品文档

相关文档