上海交通大学 数据库原理 陆朝俊 课件09SQL1概要1.ppt

上海交通大学 数据库原理 陆朝俊 课件09SQL1概要1.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上海交通大学 数据库原理 陆朝俊 课件09SQL1概要1

Lu Chaojun, SJTU * Scalar-valued Subquery If SELECT-FROM-WHERE produces a single value, then it can be used as a constant. May be extended to a single tuple: (v1,…,vn) Example = (SELECT … FROM) (SELECT … FROM) Lu Chaojun, SJTU Lu Chaojun, SJTU * Example SELECT name FROM S WHERE age = (SELECT age FROM S WHERE sno = ‘S1’); Scoping rule: an attribute refers to the most closely nested relation with that attribute. Parentheses around subquery are essential. Lu Chaojun, SJTU Lu Chaojun, SJTU * Subqueries that Produce Relations t IN R, t NOT IN R, NOT (t IN R) Check if tuple t is in relation R EXISTS(R), NOT EXISTS(R) Check if R is empty t ? ALL R, t ? ANY R Quantifiers ?, ? Lu Chaojun, SJTU Lu Chaojun, SJTU * Example SELECT name FROM S WHERE sno IN (SELECT sno FROM SC WHERE cno = ‘C2’); Subquery is computed only once. Lu Chaojun, SJTU Lu Chaojun, SJTU * Example SELECT name FROM S WHERE EXISTS (SELECT * FROM SC WHERE sno = S.sno AND cno = ‘C2’); Subquery is computed for each tuple in S. Correlated subquery Lu Chaojun, SJTU Lu Chaojun, SJTU * Example SELECT name FROM S S1 WHERE NOT EXISTS (SELECT * FROM S WHERE sno S1.sno AND age = S1.age); Note scoping rule. Lu Chaojun, SJTU Lu Chaojun, SJTU * Example SELECT name FROM S S1 WHERE age ALL(SELECT age FROM S WHERE snoS1.sno) Lu Chaojun, SJTU Lu Chaojun, SJTU * Conditions Involving Tuples List of scalar values (123,’foo’) (name,age,dept) (name,20,’CS’) Usage t IN R t ANY R components must match Lu Chaojun, SJTU Lu Chaojun, SJTU * Subqueries in FROM Clause Form SELECT ... FROM (SELECT ... FROM ... ) tuplevar WHERE ... Example SELECT name FROM S, (SELECT sno FROM C, SC WHERE C.cno=SC.cno AND C.name=‘DB’) Stud WHERE S.sno = Stud.sno; Lu Chaojun, SJTU Lu Chaojun, SJTU * Join Expressions SQL provides a number of expression forms that act like varieties of JOIN in re

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档