新SQL Server 2008数据库开发经典案例教程 电子教案习题解答等 吕玉桂 电子教案 第8章子查询.pptVIP

  • 2
  • 0
  • 约5千字
  • 约 21页
  • 2015-11-19 发布于广东
  • 举报

新SQL Server 2008数据库开发经典案例教程 电子教案习题解答等 吕玉桂 电子教案 第8章子查询.ppt

第8章 子查询 本章目标 掌握子查询的使用 子查询返回单一值 子查询返回值列表 子查询的存在性测试EXISTS 掌握集合运算 并集(Union) 交集(Intersection) 减(Except) 子查询 问题:显示价格最高书籍的书号、书名和价格 解决方法: 查询出最高价格 select MAX(price) from BookInfo 以价格为条件查询出书号、书名和价格 select bookid,bookname,price from BookInfo where Price=(select MAX(price) from BookInfo) 子查询 子查询就是一个嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询, 子查询也称为内部查询,而包含子查询的语句也称为外部查询 子查询的SELECT 查询总是使用圆括号括起来。 基本语法: 返回单个值的子查询 当子查询返回单个值时,外部查询条件和子查询之间使用比较运算符(、=、、=、=、!=) 子查询返回单一值的方法: 聚合函数 DISTINCT 1,先求书籍的平均价格 SELECT AVG(price) FROM BookInfo 2,把该查询代入外部查询 返回单个值的子查询 查询书名为“JavaWeb开发技术详解”的出版社ID和出版年限 SELECT publisherID FROM BookInfo WHERE BookName =JavaWeb开发技术详解 SELECT YEAR(publishDate) FROM BookInfo WHERE BookName =JavaWeb开发技术详解 代码为: SELECT BookID,BookName,publishDate,PublisherID FROM BookInfo WHERE PublisherID =(SELECT publisherID FROM BookInfo WHERE BookName =JavaWeb开发技术详解) AND YEAR(PublishDate) = (SELECT YEAR(publishDate) FROM BookInfo WHERE BookName =JavaWeb开发技术详解 ) 返回值列表的子查询 子查询返回值列表即子查询返回的不是单个值,外部查询的检索条件WHERE和子查询之间使用以下运算符 返回值列表的子查询 【例8-3】查询有销售记录的人员信息 先求子查询,即在销售主表SalesMaster中查找销售人员ID SELECT UserID FROM SalesMaster 因为销售人员不止一个,所以外部查询和子查询之间使用IN SELECT * FROM UserInfo WHERE UserID IN (SELECT UserID FROM SalesMaster) 返回值列表的子查询 【例8-3】显示价格高于类别‘JAVA’的所有书籍的书号、书名、作者和价格。 分析: 先求出类别是“JAVA“的所有书籍的价格列表 SELECT Price,BookID,CategoryID FROM BookInfo WHERE CategoryID = (SELECT categoryid FROM Category WHERE CategoryName =JAVA) 外部查询和子查询之间应该使用ALL SELECT BookID ,BookName ,Author,Price FROM BookInfo WHERE Price ALL(SELECT Price FROM BookInfo WHERE CategoryID =(SELECT categoryid FROM Category WHERE CategoryName =JAVA) ) EXISTS存在性测试 相关子查询 在子查询中引用外部查询的列,即子查询的执行与外部查询有关 EXISTS存在性测试 EXISTS存在性测试 指定一个子查询,测试行是否存在,也就是对于外部查询的每一行,检查子查询是否是空集合,如不是空集合,主查询返回值,否则主查询没有返回值 该题目涉及销售细表SalesDetails和书籍表BookInfo,因为查询的是书籍信息,所以BookInfo表应该放在外部查询位置,销售细表SalesDetails应放在子查询位置 NOT Exists子查询 【例8-6】查询没有销售记录的用户信息,显示内容包括用户ID、用户名和入职月份。 分析: 该题目外部查询是用户UserInfo表,子查询是销售主表SalesMaster,由于查

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档