ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL语言入门( 4.子查询)

SQL语言入门( 4.子查询)

原创 Linux操作系统 作者:adonisdean 时间:2013-08-22 21:30:09 0 删除 编辑
         子查询一般出现在SELECT语句的WHERE子句中,Oracle也支持在FROM或HAVING子句中出现子查询。出现SELECT语句的FROM子句中的子查询被称为"内嵌视图";出现在SELECT语句的WHERE子句中的子查询被称为"内嵌子查询",一个子查询能够包含另一个子查询,在一个顶级的查询中,Oracle数据库没有限制在FROM子句中的嵌套层数,可以在一个WHERE子句中嵌套255层子查询。
         子查询比主查询先执行,结果作为主查询的条件,在书写上要用圆括号扩起来,并放在比较运算符的右侧。子查询可以嵌套使用,最里层的查询最先执行。子查询可以在SELECT、INSERT、 UPDATE、DELETE等语句中使用。
         子查询按照返回数据的类型可以分为单行子查询多行子查询多列子查询
1、单行子查询(子查询只返回一行)
单行子查询可使用如下操作符:
 
>        大于
<        小于
=        等于
>=     大于等于
<=     小于等于
<>     不等于
2、多行子查询(子查询返回多行)
多行子查询可使用如下操作符:
IN      等于列表中的任何一个
ANY     和子句中返回的任意一个值比较
ALL     和子句中返回的所有值比较

子查询注意的问题:
1>、要将子查询发在圆括号内
2>、子查询可出现在WHERE子句、FROM子句、SELECT列表(此处只能是一个单行子查询)、HAVING子句中
3>、子查询不能出现在主查询的GROUP BY语句中
4>、子查询和主查询使用表可以不同,是要子查询返回的结果能够被主查询使用即可
5>、一般不会在子查询中使用ORDER BY语句,但在TOP-N分析中必须使用ORDER BY语句
6>、当行子查询只能使用单行操作符,多行子查询只能使用多行操作符
7>、采用合理的缩进和换行来提过SQL语句的可读性
8>、子查询中的空值问题















来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29093322/viewspace-769075/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2013-08-19

  • 博文量
    4
  • 访问量
    3877