您的位置:首页 > 其它

组合查询

2016-01-15 16:57 169 查看
一、子查询(单行单列)

1 嵌套在其他查询的查询,称做子查询。

2 分类:相关子查询、非相关子查询。

相关子查询:外部查询执行一次,子查询执行一次。

非相关子查询:子查询执行一次,执行完毕后将值传递给外部查询。

二、子查询位置:

1 select: select 列名,(select 列名 from 表名) from 表名;

2 from: select 列名 from (select 列名 from 表名);

3 where: select 列名 from 表名 where 列名 = (select 列名 from 表名);

4 group by 与 select 相似;order by 与 select 相似;

5 having 与 where 相似,having 只用于聚合函数。

三、在子查询中使用运算符

1 exists: select 列名 from 表名 where 列名 exists (select 列名 from 表名 );

exists是一个相关子查询,是用来测试子查询是否返回结果(结果不只是特定的结果)。

2 all: select 列名 from 表名 where 列名 all = (select 列名from 表名);

all与比较运算符一起使用(=、<、>),测试子查询的结果集的所有行是否满足指定条件。

3 any: select 列名 from 表名 where 列名 = (select 列名 from 表名);

any测试子查询的结果集是否有一行或多行满足条件。

四、组合查询

1 SQL提供几种运算符允许我们组合多个,这些运算符分别是:union、union all、intersect、difference。

2 ANSI SQL引用了difference,oracle采用minus。

3 使用union运算符: select 列名 from 表名 union (select 列名 from 表名);

union是纵向联合,自动去重。

4 union不去重: select 列名 from 表名 union all (select 列名 from 表名);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: