sql子查询各类型举例_第1页
sql子查询各类型举例_第2页
sql子查询各类型举例_第3页
sql子查询各类型举例_第4页
sql子查询各类型举例_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、子查询的类型1、单行子查询:不向外部的SQL语句返回结果,或者只返回一行2、多行子查询:向外部的SQL语句返回一行或者多行1、多列子查询:向外部的SQL语句返回多列2、关联子查询:引用外部的SQL语句中的一列或多列3、嵌套子查询:位于另外一个子查询中,子查询最多可以嵌套255层1子查询可以放在select语句的where条件中、having条件中、from子句中。单行子查询1、子查询放在另外一个查询的where条件中=就意味着这肯定是一个单行子查询子查询首先被执行一次(只执行一次),返回一个值,这个值传递给父查询。2单行子查询中也可以使用、=32、在having子句中使用子查询这是一个无关子查

2、询,首先执行子查询,返回一个结果,然后父查询使用这个结果构成一个完整的执行语句。43、在from子句中使用子查询(内联视图)5子查询执行得到一个数据源,父查询使用这个数据源进行多表的关连查询。这是一个无关子查询,因此子查询中没有where条件,更谈不上“子查询的where条件中需要父查询的数据才能够完成”。6可能你碰到的两个错误1、单行查询最多返回一行2、子查询不能包含order by子句必须在外部查询中进行排序7多行子查询可以向外部的SQL语句返回一行或者多行记录。外部查询可以使用IN、ANY、ALL操作符。1、在多行子查询中使用IN操作符检查一个值列表中是否包含指定的值。NOT IN用来检

3、查在一个值列表中是否不包含指定的值82、在子查询中使用ANY操作符在查询any操作符之前,必须使用一个=、=操作符是否有任何员工的工资低于salary_grades表中的任何一级最低工资。93、在多行子查询中使用ALL操作符在查询all操作符之前,必须使用一个=、=操作符没有任何员工的工资高于最高工资。10编写多列子查询11编写关联子查询父查询的执行需要子查询的结果,子查询的执行需要父查询的值。这样的查询就是关联子查询。关联子查询的where条件中需要父查询的值。外部查询的每一行都被一次一行的传递给子查询,子查询依次读取外部查询中的每一行的值,并将其应用到子查询上,直到外部查询中的所有行都被处

4、理完为止。12在关联子查询中使用EXISTS和NOT EXISTSEXISTS操作符用于检查子查询所返回的行的存在性,虽然这个操作符也可以在非关联子查询中使用。但是EXISTS更常用的用法是用于关联子查询中。检索那些负责管理其他员工的员工记录:13因为只是检查行的存在性,因此可以不使用列,直接使用一个常量,这样提高了性能。14在关联子查询中使用NOT EXISTS检索从来未曾被购买过的产品15EXISTS和NOT EXISTS与IN和NOT IN的比较EXISTS的性能要高于IN,因此要尽可能的使用EXISTS,而不是IN。在编写NOT EXISTS和NOT IN查询时必须谨慎。当一个值列表包含一个空值时,NOT EXISTS就返回true,而NOT IN则返回false。使用not exists检索那些在product表中没有任何产品的产品类型:16解决方案17空值18编写嵌套子查询编程中尽量少使用嵌套子查询技术,因为使用表连接时,查询的性能更高。三个查询一个嵌套子查询一个子查询一个外部查询查询顺序从里

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论