- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图 3-3-2 选修了C001的学生学号效果 图 3-3-3 子查询效果 图 3-3-4 带有 NOT IN 的子查询效果 2.带有 ANY 或 ALL 的子查询 与使用 IN 关键字引入的子查询一样,由比较运算符与一些关键字引入的子查询返回一个值列表。 (1)比较运算符的子查询的基本语法格式 使用比较运算符的子查询的基本语法格式如下: SELECT 字段列表 FROM 表名 WHERE 表达式 operator [ANY∣ALL∣SOME] 子查询语句 operator 表示比较运算符,带有比较运算符的子查询是指父查询与子查询之间用比较运算符进行连接。ANY、 ALL 和 SOME 是 SQL 支持的在子查询中进行比较的关键字。ANY 和 SOME 表示如果返回值中至少有一个值的比较为 真,那么就满足搜索的条件。如果子查询没有返回值,那么就不满足搜索条件。ALL 表示无论子查询返回的每个 值的比较是否是真或有无返回值,都满足搜索条件。当用户能确切知道内层查询返回的是单值时,可以用、、 =、=、=、!=或等比较运算符。单值情况下使用=,多值情况下使用 IN 或 NOT IN 谓词。 (2)ANY 和 ALL 运算符的含义 子查询返回单值时可以用比较运算符,而使用 ANY 或 ALL 谓词时则必须同时使用比较运算符,其含义如表 3-3-1 所示。 (3)ANY 的表达式书写方式 (4)ALL 的表达式书写方式 l l l (5)=ANY 的表达式书写方式 3.带有 EXISTS 的子查询 (1)EXISTS 关键字的含义 在 SQL 中,关键字 EXISTS 代表“存在”的含义,它只查找满足条件的那些记录,一旦找到第一个匹配的记 录后,则马上停止查找。带 EXISTS 的子查询不返回任何记录,只产生逻辑值“真”(TRUE)或者逻辑值“假”(FALSE), 它的作用是在 WHERE 子句中测试子查询返回的行是否存在。如果存在则返回真值,如果不存在则返回假值。即表 明找到或者没有找到的含义。 (2)EXISTS 和 NOT EXISTS 的使用 (3)内连接和 EXISTS 的使用 (4)EXISTS 语法说明 使用 EXISTS 后,若内层查询结果非空,则外层的 WHERE 子句返回真值 TRUE,否则返回假值 FALSE。 EXISTS 作用的不是列之间的关系,而是表之间的关系。采用的既不是等号,也不是 IN,所以在 SELECT 列 表中不需要制定字段名,通常用 SELECT *来代替。 EXISTS 通常使用一个所谓的关联子查询,该子查询并不在它自己的查询中运行。为了实现关联子查询,SQL 服 务器必须对外查询的每一条记录都执行一次此子查询来测试是否匹配。 (5)相关子查询的处理过程 当子查询的查询条件依赖于外层父查询的某个属性值,我们称这类查询为相关子查询。求解相关子查询不能 像求解不相关子查询那样,一次将子查询求解出来,然后求解父查询。相关子查询的内层查询由于与外层查询有 关,因此必须反复求值。 相关子查询的一般处理过程如下: ① 首先取外层查询中“学生基本档案”表的第一条记录,根据它与内层查询相关的属性值(即“学号”值) 处理内层查询,若 WHERE 子句返回值为真(即内层查询结果非空),则取此记录,放入结果表。 ② 再检查“学生基本档案”表的下一条记录。 ③ 重复执行步骤②,直至“学生基本档案”表全部检查完毕。 在案例 10-9 中,若内层查询结果不为空,则外层的 WHERE 子句返回真值,则取此记录放入结果表中。取出 外层查询中(“学生基本档案”表)的第 1 条记录,根据它与内层查询相关的字段值(学号值)处理内层查询, 然后再取(“学生基本档案”表)下一条记录;重复这一过程,直至外层(“学生基本档案”表)全部检查完为止。 4.限制子查询的条件 子查询也是使用 SELECT 语句组成,所以在使用 SELECT 语句应注意的问题也同样适用于子查询,同时子查询 还要受下面条件的限制。 ① 通过比较运算符引入的子查询的选择列表只能包括一个表达式或列名称。 ② 如果外部查询的 WHERE 语句包括某个列名,则该子句必须与子查询选择列表中的该列兼容。 ③ 子查询的选择列表中不允许出现 ntext、text 和 image 数据类型。 ④ 无修改的比较运算符引入的子查询不能包括 GROUP BY 和 HAVING 子句。 ⑤ 包括 GROUP BY 的子查询不能使用 DISTINCT 关键字。 ⑥ 不能指定 COMPUTE 和 INTO 子句。 ⑦ 只有同时指定了 TOP,才可以指定 ORDER BY。 ⑧ 由子查询创建的视图不能更新。 ⑨ 通过 EXISTS 引
您可能关注的文档
- Protel 99SE实用教程教学课件 作者 汤伟芳 戴锐青 第7章 双面PCB设计.ppt
- Protel 99SE实用教程教学课件 作者 汤伟芳 戴锐青 第8章 单面PCB设计.ppt
- Protel 99SE实用教程教学课件 作者 汤伟芳 戴锐青 第9章 元件封装库与自制元件封装.ppt
- Protel 99SE印制电路板设计与仿真 作者 邱寄帆 第二章.ppt
- Protel 99SE印制电路板设计与仿真 作者 邱寄帆 第九章.ppt
- Protel 99SE印制电路板设计与仿真 作者 邱寄帆 第六章.ppt
- Protel 99SE印制电路板设计与仿真 作者 邱寄帆 第七章.ppt
- Protel 99SE印制电路板设计与仿真 作者 邱寄帆 第四章.ppt
- Protel 99SE印制电路板设计与仿真 作者 邱寄帆 第五章.ppt
- Protel 99SE印制电路板设计与仿真 作者 邱寄帆 第一章.ppt
- SQL server 2005案例教程 第5章 Transact-SQL.ppt
- SQL server 2005案例教程 第7章 SQL Server 2005的安全机制.ppt
- SQL server 2005案例教程 第8章 数据库的备份与还原.ppt
- SQL Server 2005实用教程 蒋文沛1 第1章 SQL Server 2005的安装和配置.ppt
- SQL Server 2005实用教程 蒋文沛1 第2章 SQL Server 2005数据类型.ppt
- SQL Server 2005实用教程 蒋文沛1 第3章 数据库和表.ppt
- SQL Server 2005实用教程 蒋文沛1 第5章 索引.ppt
- SQL Server 2005实用教程 蒋文沛1 第9章 触发器.ppt
- SQL Server 2005实用教程 蒋文沛1 第10章 用户自定义函数与事务.ppt
- SQL Server 2005实用教程 蒋文沛1 第11章 SQL Server 2005管理.ppt
最近下载
- 湖北省总工会考试试题及答案.doc VIP
- 住院医师规范化培训-医学检验真题库_25.docx VIP
- 房贷提前还清协议书.docx VIP
- 公司治理教学课件(完整版).ppt VIP
- 青光眼小梁切除术.ppt VIP
- 药物设计软件:Discovery Studio二次开发all.docx VIP
- 2025年郑州澍青医学高等专科学校单招语文测试模拟题库汇编.docx VIP
- GTBO41100-2017B 项目运营手册成本弦.pdf VIP
- 2024-2025学年初中道德与法治七年级上册(2024)统编版(部编版)(2024)教学设计合集.docx
- 2025卫星互联网承载网技术白皮书.docx VIP
文档评论(0)