一:◎单行子查询:归回一行一列结果到外部查询
◎多行子查询:归回多行结果
◎多列子查询:归回多列结果
◎相干子查询:援用外部查询中的一列。对于外部查询中的每行执行一次子查询。
◎不相干子查询:首先执行子查询,然后将值传递给外部查询。
◎子查询可用于select、from、where、having子句中,后二者用的最多。
◎如果用于where或having子句,则该子查询只能位于比较运算符(分为数学比较运算符=<和其它比较运算between,in,like,is null)的左面。
◎如果用于select子句,则必是单行子查询。
◎子查询本身就是一个完整的查询,即至少包含select from子句。
◎子查询不能包含order by子句。
◎子查询必须包孕在一组括号中。
◎如果在select子句中随组函数据排列出了某个字段,那么必须也在group by 子句中列出这个字段。
二:第六章.子查询
目标:
定义子查询
列出子查询的类型
写单行和多行子查询 要端:
1.子查询的语法和使用原则
SELECT select_list
FROM table
WHERE expr operator(SELECT select_list
FROM table);
子查询(内查询) 在主查询以前执行一次;
子查询的结果被用于主查询(外查询);
子查询可被放置在select、from、where、having子句中;
另外,子查询可以被放在 CREATE VIEW 语句中、CREATE TABLE 语句、
UPDATE 语句、INSERT 语句的 INTO 子句和 UPDATE 语句的 SET 子句中;
子查询放在圆括号中;
将子查询放在比较前提的右边;
在子查询中的ORDER BY 子句不需要,除非正在执行Top-N 分析;
在单行子查询顶用单交运算符,在多行子查询顶用多交运算符;
Oracle 服务器没有强制限制子查询的数目;限制只与查询所需的缓和冲突区巨细有关;
子查询和父查询可从不同的表中取值
2.单行子查询
仅归回一行,使用单行比较符(等于,大于小于,大于等于,小于等于,不等于);
单行子查询的一个常见错误是单行子查询归回多于一个的行;
另一个问题是子查询没有归回行,但这样不会报错,会提醒:no rows selected
3.多行子查询
归回多行,使用多行比较符(in,any,all)
<ANY 意思是小于最大值, >ANY 意思是大于最小值, =ANY 等同于 IN;
<ALL 意思是小于最小值, >ALL 意思是大于最大值;
当使用 SOME 或 ANY 时,通常用 DISTINCT 要害字防止归回被多次选择的行;
NOT 运算符可以与 IN、ANY 和 ALL 运算符一起使用;
sql 子查询多于一个!SQL子查询
最新推荐文章于 2024-06-12 10:49:09 发布