《oracle数据库》子查询

子查询

子查询 (内查询) 在主查询之前一次执行完成。
子查询的结果被主查询(外查询)使用。
子查询要包含在括号内。
将子查询放在比较条件的右侧。
单行操作符对应单行子查询,多行操作符对应多行子查询。
在查询时基于未知的值时,应使用子查询。

一、单行子查询

单行子查询只返回一行。
使用单行比较操作符。

1. 单行比较操作符

Equal to —————————— =
Greater than ———————— >
Greater than or equal to ——— >=
Less than ————————— <
Less than or equal to ———— <=
Not equal to ———————— <>

2. 使用单行子查询

《oracle数据库》子查询

3. 单行子查询(只返回一行,在主查询之前一次执行完成)

《oracle数据库》子查询

4. 主查询(子查询的结果被主查询使用)

《oracle数据库》子查询

二、多行子查询

多行子查询返回多行。
使用多行比较操作符。

1. 多行比较操作符

IN —————————— 等于列表中的任意一个
ANY —————————— 和子查询返回的某一个值比较
ALL —————————— 和子查询返回的所有值比较

2. IN:等于多行子查询的结果中的任意一个

《oracle数据库》子查询
因为多行子查询的结果有:9000、6000、4800、4200;
所以主查询中SALARY IN(9000,6000,4800,4200)
《oracle数据库》子查询

3. ANY:满足与多行子查询中的某一个结果的比较即可

因为多行子查询的结果有:9000、6000、4800、4200;
所以主查询中SALARY < 9000 OR SALARY < 6000 OR SALARY < 4800 OR SALARY < 4200
《oracle数据库》子查询

4. ALL:需满足与多行子查询中的所有结果的比较

因为多行子查询的结果有:9000、6000、4800、4200;
所以主查询中SALARY < 9000 AND SALARY < 6000 AND SALARY < 4800 AND SALARY < 4200

《oracle数据库》子查询