数据查询之子查询和嵌套查询
来源:互联网 发布:阿里云杭州和北京对比 编辑:程序博客网 时间:2024/06/10 06:27
数据查询之子查询和嵌套查询
第一部分定义
子查询:子查询是select语句中另外一条select语句。常常被称为内查询。
嵌套查询:一个外层查询中包含有另一个内层查询,即一个sql查询语句块可以嵌套在另一个查询块的where中。其中外层查询称为父查询,主查询。内层查询可也称为子查询。
第二部分简单概述
子查询的select查询总是使用圆括号括起来。
子查询中不使用order by子句,order by子句只能对结果进行排序
select,insert,update或delete中允许是一个表达式的地方都可以使用子查询
如果某个表出现在子查询中而不出现外部查询中,该表中的列无法输出。
第三部分语法格式
where 查询表达式 [NOT] IN (子查询)
where 查询表达式 比较运算符 [any/all] (子查询)
where [not] exists (子查询)
第四部分具体应用
1单值比较查询。把表达式的值与子查询产生的值进行比较,作为搜索条件的一部分呈现在where子句中,经常用到=,<>。且结果为单一值。举例:查询与110相同年龄的学生。
select *
from student
where age = (select age from student
where 学号 = '110')
2带in的嵌套查询。当子查询产生一系列值时,适合使用带IN的嵌套查询。举例:在students和grade表中查询参加考试的同学信息。
select *
from student
where 学号 in (select 学号 from grade)
注:当嵌套子查询中存null值时,避免使用not in
3带some的嵌套查询。some是把每一行指定的列值与查询的结果进行比较,返回满足条件的值,。例如:查询年龄小于平均年龄的所有学生信息。
select *
from student
where 年龄<some
(select avg(年龄)from student)
4any与some完全等价。
5带all的嵌套查询。多值比较。将列值与子查询结果进行查询,要求所有列的查询结果都为真,否则就不返回该行。例如找出年龄最小的学生
Select * From Student Where sage < all (
- 数据查询之子查询和嵌套查询
- Mysql之子查询和连接
- Mysql的数据查询语言DQL之子查询
- Oracle之子查询
- SQL数据库之子查询
- Oracle之子查询
- oracle数据库之子查询
- Oracle之子查询
- Oracle笔记之子查询
- oracle之子查询常用
- Mysql之子查询
- MYSQL之子查询
- MySQL之子查询
- MySql之子查询
- Oracle数据库之子查询
- Orcale之子查询
- Oracle之子查询
- 数据库之子查询和事务隔离级别
- jmeter使用
- C#与C/C++的交互 转自(warensoft)
- 一步步优化JVM一:概述、方法及需求
- UVA - 11666 Logarithms
- 中文首字母 排序
- 数据查询之子查询和嵌套查询
- ASP.NET利用URLRewriter重写url地址
- (错误)检测到LoaderLock
- 一步步优化JVM二:JVM部署模型和JVM Runtime
- 将Panel 置于最顶层
- 在 Java 应用程序中定时执行任务
- oracle 建表空间和用户
- 可信软件方法学习
- JSP中如何通过JSP调用类(.java)中的方法