sql语法相关子查询与非相关子查询.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sql语法相关子查询与非相关子查询

sql语法相关子查询与非相关子查询?1:标量子查询(相对于多值子查询):?只有标量子查询返回的是单个记录或者不返回,就是有效的子查询。?Ex1:select OrderId From Orders where EmployeeId=?(select EmployeeId From employees where lastName like NDavolio)?将’Davolio’改为D%时,这个时候子查询中返回结果为2行,等号右边此时为多值,查询失败.将’=’改为in谓词.查询才能通过.?employees表中无lastname=’jason’,外部查询将返回null.??2:非相关子查询(嵌套子查询)?一个select...From...Where查询语句块可以嵌套在另一个select...From...Where查询块的Where子句中,称为嵌套查询。外层查询称为父查询,主查询。内层查询称为子查询,从查询。子查询可以嵌套多层,子查询查询到的结果又成为父查询的条件。子查询中不能有order by分组语句。先处理子查询,再处理父查询。?细分如下:?1。 简单嵌套查询?? ? 查询选修课程号为101并且成绩高于学生号为9501101的所有学生的成绩.select * from sclass?where cno=101 and degree=(select degree from sclass where sno=9501101and cno=101) ??当子查询跟随在 =、!=、、=、、= 之后, 子查询的返回值只能是一个, 否则应在外层where子句中用一个in限定符,即要返回多个值,要用in或者not in?2。 带[not] in的嵌套查询?? ? 只要主查询中列或运算式是在(不在)子查询所得结果列表中的话,则主查询的结果为我们要的数据? ?select sales_id,tot_amt? ?from sales?? ?where sale _id ?in(select sale_id from employee where sex=F)where sno not in(Select distinct sno from sclass)??3。 带exists的嵌套查询子查询的结果至少存在一条数据时,则主查询的结果为我们要的数据。(exists)或自查询的结果找不到数据时,则主查询的结果为我们要的数据(not exists)我们经常查询的两个表有多少重复的记录就用这个以下范例让你找出滞销的产品,也就是尚未有任何销售记录的库存产品。此范例主要是查询以库文件中的每一条产品代码到销售明细表中去查询,如果查询不到任何一条,表示该产品未曾卖出任何一件。?select * from stock a?where not exists(select * from sale_item b? ? ? ? ? ? ? ? ? ? ? ? ?where a.prod_id=b.prod_id and a.stup_id=b.stup_id)?4.select ... where 列或运算式 比较运算运算【any|all](子查询)??? 只要主查询中列或运算式与子查询所得结果中任一(any)或全部(all)数据符合比较条件的话则主查询的结果为我们要的数据??select sale_id,tot_amt? ?from sales?? ?where tot_amtany(select tot_amt from sales where sale_id=e0013and order_date=1996/11/10)?? ? ? 选出不同的人金额最高的订单? ?select * ?from ?sales a? ?where tomat=(select max(totmat) from sales ?where name=a.name)?3:相关子查询(多值子查询)?1非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。?2相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。??查询中再查询,通常是以一个查询作为条件来供另一个查询使用? ? ?例:有work表和部门表? ? ? ? A:检索出在部门表中登记的所有部门的职工基本资料? ? ? ? ? select * from work where 部门编号 in [not in](select 部门编号 from dbo.部门)?? ? ? ? B:检索出在work表中每一个部门的最高基本工资的职工资料? ? ? ? ? select * from work a where 基本工资=(select max(基本工资) from work b whe

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档