SQL数据库嵌套查询
来源:互联网 发布:甄子丹功夫怎么样知乎 编辑:程序博客网 时间:2024/06/05 00:42
嵌套查询
保存查询结果
从查询结果创建一个永久表:
select 字段列表 into 新表名
from 原表名
where 查询条件
嵌套查询
一个 select……from……where语句称为一个查询块。
将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询。
其中外层查询叫父查询或主查询,内层的查询叫子查询或从查询。
insert,delete,update,select命令中允许表达式的地方都可以包含子查询。子查询甚至可以包含在另一个子查询中
嵌套查询语法规则
子查询的SELECT总是用圆括号括起来
不能包含compute或for browse子句
任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值
如同时指定top子句,则可能只包括order by子句
子查询最多可嵌套32层,个别查询可能不会支持32层
如果某个表只出现在子查询而没有出现在外部查询中,那么该表的列就无法包含在输出中
几种语法格式示例
Where 查询表达式 比较运算符 [any|all|some](子查询)
where 查询表达式 [not] in (子查询)
Where [not]exists(子查询)
使用简单比较符的嵌套查询
使用简单比较嵌套查询的比较符有:=、!=(<>)、>、>=、<、<=。把一个表达式的值与子查询的值进行比较,返回比较结果为TRUE的记录
1、T—SQL支持3种定量谓词:some,any,all。它们都是判断是否任何或全部返回值都满足搜索要求的。其中some,any只注重是否有返回值满足搜索要求,它们含义相同可替换使用。
Some和any:表示表达式只要与子查询结果集中的某个值满足比较的关系时,就返回true,否则返回false.
All:指定表达式要与子查询结果集中的每个值都进行比较,当表达式与每个值都满足比较的关系时,才返回true,否则返回false;
【例】查找比所有计算机系的学生年龄都大的学生。
子查询只能返回一个或一列值,当返回一列值时适合用in操作符,表示表达式的值是子查询产生的一系值中的一个就返回TRUE
使用EXISTS操作符的嵌套查询
EXISTS谓词只注重子查询是否返回行,如果子查询返回,谓词返回为真,否则为假。 EXISTS并不真正使用子查询的结果,它仅仅测试子查询是否产生任何结果。
EXISTS谓词子查询的SELECT子句中可包含任何列名,甚至多列,因为它只在乎是否有返回行。
保存查询结果
从查询结果创建一个永久表:
select 字段列表 into 新表名
from 原表名
where 查询条件
嵌套查询
一个 select……from……where语句称为一个查询块。
将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询。
其中外层查询叫父查询或主查询,内层的查询叫子查询或从查询。
insert,delete,update,select命令中允许表达式的地方都可以包含子查询。子查询甚至可以包含在另一个子查询中
嵌套查询语法规则
子查询的SELECT总是用圆括号括起来
不能包含compute或for browse子句
任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值
如同时指定top子句,则可能只包括order by子句
子查询最多可嵌套32层,个别查询可能不会支持32层
如果某个表只出现在子查询而没有出现在外部查询中,那么该表的列就无法包含在输出中
几种语法格式示例
Where 查询表达式 比较运算符 [any|all|some](子查询)
where 查询表达式 [not] in (子查询)
Where [not]exists(子查询)
使用简单比较符的嵌套查询
使用简单比较嵌套查询的比较符有:=、!=(<>)、>、>=、<、<=。把一个表达式的值与子查询的值进行比较,返回比较结果为TRUE的记录
select <目标列>from 表Where 表达式(列名) 比较符 (select 列 from 表 [where…])带[any|all|some]的比较嵌套查询
1、T—SQL支持3种定量谓词:some,any,all。它们都是判断是否任何或全部返回值都满足搜索要求的。其中some,any只注重是否有返回值满足搜索要求,它们含义相同可替换使用。
select <目标列>from 表Where 表达式(列名) 比较符 all | some | any (select 列 from 表 [where…])使用比较符的嵌套查询
Some和any:表示表达式只要与子查询结果集中的某个值满足比较的关系时,就返回true,否则返回false.
All:指定表达式要与子查询结果集中的每个值都进行比较,当表达式与每个值都满足比较的关系时,才返回true,否则返回false;
【例】查找比所有计算机系的学生年龄都大的学生。
select * from student where 出生时间 <all ( select 出生时间 from student where 专业名 = '计算机')使用IN操作符的嵌套查询
子查询只能返回一个或一列值,当返回一列值时适合用in操作符,表示表达式的值是子查询产生的一系值中的一个就返回TRUE
select <目标列>from 表where 列名 in (select 列 from 表 [where…])
使用EXISTS操作符的嵌套查询
EXISTS谓词只注重子查询是否返回行,如果子查询返回,谓词返回为真,否则为假。 EXISTS并不真正使用子查询的结果,它仅仅测试子查询是否产生任何结果。
EXISTS谓词子查询的SELECT子句中可包含任何列名,甚至多列,因为它只在乎是否有返回行。
select <目标列>from 表where exists (select 列 from 表 [where…])
阅读全文
0 0
- SQL数据库嵌套查询
- 用SQL Server数据库嵌套子查询
- 数据库标准语音SQL,嵌套查询
- 如何使用SQL Server数据库嵌套子查询
- 怎样使用SQL Server数据库的嵌套子查询
- 深入讲解SQL Server数据库的嵌套子查询
- 怎样使用SQL Server数据库的嵌套子查询
- sql嵌套子查询
- SQL 嵌套多层查询
- sql嵌套查询
- SQL嵌套子查询
- SQL嵌套查询
- SQL嵌套子查询
- SQL嵌套查询
- SQL 嵌套查询问题
- sql 嵌套查询
- SQL 实现嵌套查询
- sql嵌套查询学习
- UVA 442 Matrix Chain Multiplication ( stack 应用)
- 【第1095期】表格边框你知多少
- Python Imaging Library: ImageTk Module(图像Tkinter模块)
- C语言:计算分数精确值
- webRTC——浏览器里的音视频通话
- SQL数据库嵌套查询
- 20171030
- 正则表达式记录
- Webstorm2017运行node搭建的Vue
- 2017.1031开始学习FFMPEG音视频编解码,通过学习雷霄骅文章
- JS canvas实现图片显示
- 介绍Spring Cloud分布式微服务云架构
- js、mysql、java;练习
- 2017-10-30每日练习