精通数据库SQL——子查询

来源:互联网 发布:ummy mac 编辑:程序博客网 时间:2024/06/08 09:22

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

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子句中的表达式用来选择根记录,即树查询的起始点。

             

                

 

原创粉丝点击