子查询
来源:互联网 发布:淘宝迅雷会员1分钱 编辑:程序博客网 时间:2024/06/09 16:41
大家好,我今天给大家讲一下,我学习子查询的一些心得体会。因为我觉得,子查询,非常重要,所以我把它单独拿来说,因为子查询可以用到很多的地方。例如:SELECT、INSERT 、UPDATE 、DELETE语句中的WHERE 、HAVING 子句内,或者其它子查询中。尽管根据可用内存和查询中其它表达式的复杂程度,不同,嵌套限制也有不所不同,但是嵌套到32 层是可能的。个别的查询可能不支持32 层嵌套。任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。
有三种基本的子查询:
1、在通过IN引入的列表或者由ANY 或ALL修改的比较运算符的列表上进行操作。
2、通过无修改的比较运算符引入,并且必须返回单个值。
3、通过EXISTS引入的存在测试。
使用IN的子查询
通过IN(或NOT IN)引入的子查询的结果是一列零值或更多值。子查询返回结果之后,外部查询将利用这些结果。
要使用子查询,其子查询语句只能放在“小括里”。且不能包括COMPUTE 或FOR斟字酌BROWSE 子句,如果同时指定TOP子句,则可能只包括 ORDER BY子句。
使用EXISTS的子句查询
使用EXISTS关键字引入一个子查询时,就相当于进行一次存在测试。外部查询的WHERE子句测试子查询返回的行是否存在。子查询实际上不产生任何数据;它只返回TRUE 或FALSE值。
注:使用EXISTS引入的子查询在以下几个方面与其子查询略有不同:
1、EXISTS关键字前面没有列名,常量或其它表达式。
2、由EXISTS引入的子查询的选择列表通常几乎都是由星(*)组成。由于测试是否存在符合子查询中指定条件的行,所以不必列出列名。
由于通常没有备选的,非子查询的表示法,所以EXISTS关键字很重要。尽管一些使用EXISTS表示的查询不能以任何其它方法表示,但所有使用IN 或由ANY 或ALL修改的比较运算符的查询都可以通过EXISTS表示。
UPDATE 、DELETE 、INSERT语句的子查询
子查询可以嵌套在update 、delete 、select 、insert语句中使用。
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- 子查询
- Python IDE比较与推荐
- 一个验证IP范围内权限的C#方法,支持 ? * -
- 大连IT产业解析3(未来篇)
- 什么是 VSWR
- HTML转义字符串
- 子查询
- n73音乐播放器可以关闭让你多用一天电
- Oracle中创建自增列
- 一个axis2 webservice helloword例子
- 硬盘主引导记录(MBR)及其结构
- 星巴克REST案例分析(转载自InfoQ)
- 常用SQL语句实例大全(含过滤及删除重复数据、导入导出数据等)
- Oracle: 删除当前用户的所有对象(表、视图、存储过程、包、javasource,job)
- .net 做的IP 访问限制