精通数据库SQL——子查询

一、创建和使用返回多行的子查询

in子查询

Select column_name

From table_name

Where test expression [not] in (subquery)

exists子查询

Select column_name

From table_name

Where [not] exists (subquery)

带有ANY(SOME) 或ALL谓词的子查询

>ANY

大于子查询结果中的某个值

>ALL

大于子查询结果中的所有值

<ANY

小于子查询结果中的某个值

<ALL

小于子查询结果中的所有值

>=ANY

大于等于子查询结果中的某个值

>=ALL

大于等于子查询结果中的所有值

<=ANY

小于等于子查询结果中的某个值

<=ALL

小于等于子查询结果中的所有值

=ANY

等于子查询结果中的某个值

=ALL

等于子查询结果中的所有值(通常没有实际意义)

!=(或<>)ANY

不等于子查询结果中的某个值

!=(或<>)ALL

不等于子查询结果中的任何一个值

ANY(或SOME),ALL谓词与聚集函数、IN谓词的等价转换关系

 

=

<>或!=

<

<=

>

>=

ANY

ALL

IN

--

--

NOT IN

<MAX

<MIN

<=MAX

<=MIN

>MIN

>MAX

>=MIN

>=MAX

UNIQUE子查询

UNIQUE运算符用来测试集合是否存在重复元组。与EXISTS判式相似,它总是与子查询结合使用,而且只要子查询结果中没有重复记录,则UNIQUE判式的值为Ture。如果子查询的结果表中有重复的记录,那么UNIQUE判式的值为False。

Select column_name

From table_name

Where [not] unique (subquery)

 

二、树查询

当进行树查询时,应当让系统确定3点内容。

·在树形关系中,树中的父、子记录是如何确定的。

·以树结构输出时,以什么顺序输出,是先输出父节点再输出子节点,还是先输出子节点在输出父节点。

·用哪个节点作为树根来进行查询。这说明可以查询整棵树,也可以查询一颗子树。

Oracle提供了树查询的功能:

Select column

From table_name

Connect by prior 父主键=子外键

Start with column=value

注:connect by子句中的关键词prior用来指定记录的输出顺序。它如果放在父主键之前,表示先输出父节点,而如果放在子外键之前,则表示先输出子节点。Start with子句中的表达式用来选择根记录,即树查询的起始点。

             

                

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值