sql镶嵌查询_SQL语句 - 嵌套查询
嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。
嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中。
一、子查询的组成
1、包含标准选择列表组件的标准select查询。
2、包含一个或多个表或者视图名称的标准from子句。
3、可选的where子句。
4、可选的group by子句。
5、可选的having子句。
二、子查询的语法规则
1、子查询的select查询总是使用圆括号括起来。
2、不能包括compute或for.browse子句。
3、如果同时指定top子句,则可能只包括order by子句。
4、子查询最多可以嵌套到32层。个别查询可能会不支持32层嵌套。
5、任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。
6、如果某个表只出现在子查询中二不出现在外部查询中,那么该表的列就无法包含在输出中。
三、简单子查询
示例:
select name,age frompersonwhere age >(select age frompersonwhere name = '孙权')
输出结果为:
四、in嵌套查询
in关键字用于where子句中用来判断查询的表达式是否在多个值的列表中。返回满足in列表中的满足条件的记录。
示例:
select name frompersonwhere countryid in(select countryid fromcountrywhere countryname = '魏国')
输出结果为:
五、some嵌套查询
1、语法
some在sql中的逻辑运算符号,如果在一系列比较中,有些值为True,那么结果就为True。some的语法是:
{ =|<>|!=|>|>=|!>|
示例:
select name frompersonwhere countryid = some --用等号和以下查询到的值比较,如果与其中一个相等,就返回
(select countryid fromcountrywhere countryname = '魏国')
输出结果为:
六、all嵌套查询
all是sql中的逻辑运算符好,如果一系列的比较都为true,那么结果才能为true。
1、语法
{ =|<>|!=|>|>=|!>|
示例:
select name frompersonwhere countryid > all --当countryid大于以下返回的所有id,此结果才为True,此结果才返回
(select countryid fromcountrywhere countryname = '魏国')
输出结果为:
七、exists嵌套查询
1、语法
exists是sql中的逻辑运算符号。如果子查询有结果集返回,那么就为True。exists代表“存在”的意义,它只查找满足条件的那些记录。一旦找到第一个匹配的记录后,就马上停止查找。
exists 子查询
其中子查询是一个首先的select语句,不允许有compute子句和into关键字。
exists 的意思是,子查询是否有结果集返回。
例如:
SELECT * FROMPersonWHERE exists(SELECT 1 --SELECT 0 SELECT NULL 返回结果都一样,因为这三个子查询都有结果集返回,因此总是True SELECT * FROM Person照常执行
)
但是如果子查询中因为加了条件而没有结果集返回,则主语句就不执行了:
SELECT * FROMPersonWHERE exists(SELECT * FROMPersonWHERE Person_Id = 100 --如果不存在Person_Id的记录,则子查询没有结果集返回,主语句不执行
)
sql镶嵌查询_SQL语句 - 嵌套查询相关推荐
- mysql根据字段长度查询_SQL语句如何查询某一字符串字段长度等于某个值的所有记录...
展开全部 可以32313133353236313431303231363533e59b9ee7ad9431333366303066使用length()函数.比如:select * from test ...
- SQL语句 - 嵌套查询
嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询.其中外层查询也称为父查询,主查询.内层查询也称子查询,从查询. ...
- SQL语句 - 嵌套查询(SQLServer)
嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询.其中外层查询也称为父查询,主查询.内层查询也称子查询,从查询. ...
- 二见钟情之SQL语句嵌套查询
这次机房收费系统折腾了七八次,刚开始的时候是因为不会,现在再改是因为自己不够满意,总觉得还能做得更好一点,所以就推倒重来:然后又推倒,又重来,貌似有瘾一样,不过确实该快点了,不然等自己满意了就该过年了 ...
- 【数据库和SQL学习笔记】6.SELECT查询4:嵌套查询、对查询结果进行操作
数据库系统软件:SQL Server 2019 Express 操作系统:Windows 10 文章目录 嵌套查询 IN 与 NOT IN EXISTS 与 NOT EXISTS 比较运算符 SOME ...
- mysql查询所有课程的分数_Sql语句之查询所有学生所有科目分数及总分
昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...
- java多条件sql查询_SQL 多条件查询
网上有不少人提出过类似的问题:"看到有人写了WHERE 1=1这样的SQL,到底是什么意思?".其实使用这种用法的开发人员一般都是在使用动态组装的SQL.让我们想像如下的场景:用户 ...
- mysql学习day05—子查询 / CASH语句 / 连接查询
子查询 单行子查询:返回单行单列 多列子查询:返回单行多列(使用成对比较) 多行子查询:返回多行单列 相关子查询:子查询使用了外部SQL的某些表或列(但是外部SQL不可使用子查询中的表和列) 嵌套子查 ...
- db2嵌套查询效率_嵌套查询与连接查询的性能
嵌套查询与连接查询的性能:连接查询一般较快:子查询很难被优化.(当然和DB优化有关,也可能子查询比连接查询快)其实不能一概而论的~~ 不过,问了下DBA同学,他建议是能用join的,尽量不要用嵌套查询 ...
最新文章
- 移动端HTML5video视频播放优化实践
- 成功解决importError cannot import idnadata
- 爬虫笔记:Python Selenium详解
- Redis性能指标监控
- 网络聊天室的技术与发展
- jQuery中的html,val,text区别
- 使用 FUSE 开发自己的文件系统
- 60多年来计算机是根据什么的发展,计算机复习题98197.doc
- cpu_time()函数
- AD14如何设置指定线路与敷铜之间的安全距离
- 推荐:dhtmlx系列js工具包
- Ubuntu 16.04 状态栏实时显示网速、CPU、内存等
- 留学生Essay写作没思路的解决方案
- SpringBoot项目,从创建到简单实战
- VB写的软件加壳都没用,超强反调试反破解分析,检测OD调试器
- 软考-高项计算1--投资回收周期计算(涉及概念:投资回收期 折现因子 净现值 累计净现值 现金流 累计净现金流)
- MathType 6.9嵌入到Office(word)2016中
- Vue中为对象添加字段
- CCF201803-4-棋局评估
- Linux下Oracle19c离线rpm安装
热门文章
- solr 从数据库导入数据,全量索引和增量索引
- java宠物狗商店交流网站ssm框架
- 无法获取'https://jcenter.bintray.com/com/网站的资源
- allow control allow origin_热分析/红外光谱联用的数据分析方法 第7部分 在Origin软件中三维红外光谱图的作图方法...
- 学校计算机功能室布置,新乡学校计算机功能室建设,景观雕塑设计
- Python学习 Day31 JS类数组对象
- [TED]丹·吉尔伯特:我们为什么快乐?
- 腾讯wifi管家竟然盗取我家wifi密码 惊讶!震惊!失望!
- java改变图片颜色_使用java代码实现证件照换背景色
- 1. 【Part3】 Contour Detection and Hierarchical Image Segmentation【轮廓检测图像分割】