- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Sno Cno Grade 95001 003 55 95001 007 50 95001 005 94 95001 002 65 95002 001 23 95002 002 66 95002 008 96 95002 006 89 95003 001 77 95003 004 80 95003 003 100 95004 001 91 95004 008 70 95004 005 45 66 Sno Cno 95001 005 95002 008 95002 006 95003 003 95004 001 95004 008 68.5 An Introduction to Database System 二、带有比较运算符的子查询 [例40]找出每个学生超过他选修课程平均成绩的学号和课程号。 SELECT sno, cno FROM SC x WHERE grade = (SELECT AVG(Grade) FROM SC y WHERE y.Sno = x.Sno) An Introduction to Database System 二、带有比较运算符的子查询 可能的执行过程: 1. 从外层查询中取出SC的第一个元组,将第一个元组的Sno值(95001)传送给内层查询。 SELECT AVG(Grade) FROM SC y WHERE y.Sno=95001; 2. 执行内层查询,得到值66(近似值),返回外层查询和第一个元组进行比较。 An Introduction to Database System 二、带有比较运算符的子查询 3.如果第一个元组的Grade值比平均分66高,则取出这个元组的Sno和Cno放入结果表中;如果Grade值比平均分低,则“抛弃”这个元组。 4.外层查询取出下一个元组重复做上述1至3步骤,直到外层的SC元组全部处理完毕。 An Introduction to Database System 三、带有ANY或ALL谓词的子查询 谓词语义 ANY:任意一个值 ALL:所有值 An Introduction to Database System 带有ANY或ALL谓词的子查询(续) 需要配合使用比较运算符 ANY 大于子查询结果中的任意一个值 ALL 大于子查询结果中的所有值 ANY 小于子查询结果中的任意一个值 ALL 小于子查询结果中的所有值 = ANY 大于等于子查询结果中的任意一个值 = ALL 大于等于子查询结果中的所有值 An Introduction to Database System 带有ANY或ALL谓词的子查询(续) 需要配合使用比较运算符 = ANY 小于等于子查询结果中的任意一个值 = ALL 小于等于子查询结果中的所有值 = ANY 等于子查询结果中的任意一个值 = ALL 等于子查询结果中的所有值 (通常没有实际意义) !=(或)ANY 不等于子查询结果中的某个值 !=(或)ALL 不等于子查询结果中的任何一个值 An Introduction to Database System 带有ANY或ALL谓词的子查询(续) [例41] 查询其他学院中比信息学院任意一个(其中某一个)学生年龄小的学生姓名和年龄 SELECT Sname,Sage FROM S WHERE Sdept 信息 AND Sage ANY (SELECT Sage FROM S WHERE Sdept= 信息) An Introduction to Database System 带有ANY或ALL谓词的子查询(续) ANY和ALL谓词有时可以用集函数实现 ANY与ALL与集函数的对应关系 ? = 或!= = = ANY IN -- MAX =MAX MIN = MIN ALL -- NOT IN MIN = MIN MAX = MAX An Introduction to Database System 带有ANY或ALL谓词的子查询(续) [例41]:用集函数实现[例41] SELECT Sname,Sage FROM S WHERE Sage (SELECT M
原创力文档


文档评论(0)