相关子查询中exists后select 加数字的理解
查看文章
|
前提:两个基础表 SQL> select * from courses; COURSE_ID COURSE_NAME CREDIT_HOUR ---------- ------------------------------ ----------- 10101 计算机组成原理 4 10201 自动化控制原理 4 10301 工程制图 3 10102 c++程序设计 3 10202 模拟电子技术 4 10302 理论力学 3 10103 离散数学 3 10203 数字电子技术 4 10303 材料力学 3 已选择9行。 SQL> select * from students_grade; STUDENT_ID COURSE_ID SCORE ---------- ---------- ---------- 10101 10101 87 10101 10301 79 10101 10201 100 10101 10201 100 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 下面执行相关子查询: SQL> select course_id ,course_name from courses c where exists (select 2 from students_grade sg where sg.course_id =c.course_id); 分析执行步骤: 1) 先执行外部查询 SQL> select course_id ,course_name from courses c; COURSE_ID COURSE_NAME ---------- ------------------------------ 10101 计算机组成原理 10201 自动化控制原理 10301 工程制图 10102 c++程序设计 10202 模拟电子技术 10302 理论力学 10103 离散数学 10203 数字电子技术 10303 材料力学 2) 外部查询的每一条数据对比一次子查询 第一次比较 10101 计算机组成原理 只要exists 后对比的结果返回true 则列出: 10101 计算机组成原理 同理外部查询的COURSE_ID COURSE_NAME 还剩下8项一一和内部查询的 STUDENT_ID COURSE_ID SCORE比较最后得出结果 COURSE_ID COURSE_NAME ---------- ------------------------------ 10101 计算机组成原理 10201 自动化控制原理 10301 工程制图 很多人会被查询语句中的 (select 2 from students_grade sg where sg.course_id =c.course_id);的2迷惑,不管你这里用*号 还是 students_grade中的(STUDENT_ID 、COURSE_ID 、SCORE)项,最后都不会影响整个相关查询的结果,这是因为,外部查询的项和内部查询项对比时只会看是否为ture,如果为ture则列出结果,所以这里根本不会理会select 2 from students_grade sg where sg.course_id =c.course_id中select的结果,那你一定会问为什么用select 2 不用select * 呢 我上网查了下 听说 如果用select * 要查数据字典所以会慢点 呵呵 还不知道是不是真的! |
相关子查询中exists后select 加数字的理解相关推荐
- exist后select加数字的理解
查看文章 相关子查询中exists后select 加数字的理解 2010-07-23 17:16 前提:两个基础表 SQL> select * from courses; COURS ...
- [每日一题] OCP1z0-047 :2013-08-08 相关子查询中EXISTS的使用.....................................28...
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/9865711 正确答案是:AC EXISTS谓词非常简单,它是对一个非空集的测试.如果在其子 ...
- 3. 多层select的使用:子查询的定义、无关子查询、相关子查询
文章目录 子查询的定义 无关子查询 1. 查询与"张三"在同一个系学习的学生的学号.姓名和专业. 2. 查询 1号课的考试成绩 比"张三"高的学生的学号和姓名. ...
- 嵌套查询:相关子查询和非相关子查询
嵌套查询 一个select-From-Where查询语句块可以嵌套在另一个select-From-Where查询块的Where子句中,称为嵌套查询. 外层查询称为父查询,主查询.内层查询称为子查询,从 ...
- 翻译:通向T-SQL的阶梯:超越基础水平3:建立相关子查询
原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/105972/ 原文作者:Gregory Larsen 该系列 本文是楼 ...
- SQL——相关子查询和不相关子查询
SQL--相关子查询和不相关子查询 不相关子查询 相关子查询 在SQL中经常使用在"FROM/WHERE"字句中包含一个形如"SELECT-FROM-WHERE" ...
- T-SQL的进阶:超越基本级别3:构建相关子查询——701小组
T-SQL的进阶:超越基本级别3:构建相关子查询 格雷戈里·拉森,2014/03/05 原文链接: http://www.sqlservercentral.com/articles/Stairway+ ...
- SQL相关子查询是什么?和嵌套子查询有什么区别?
文章目录 两者的各种叫法 相关子查询MySQL解释 相关子查询Wikipedia解释 相关子查询执行步骤拆解 相关子查询和嵌套查询的区别 参考资料 两者的各种叫法 相关子查询叫做:Correlated ...
- SQL语句中‘相关子查询’与‘非相关子查询’有什么区别?
(1)非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询. (2)相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次. 因此非相关子查询比相关 ...
最新文章
- [zz]用U盘装win7/XP系统的操作[图解]
- pyqt5从子目录加载qrc文件_实战PyQt5: 045-添加资源文件
- 筒仓计算表格_身份反模式:联邦筒仓和意大利面条身份
- python数据结构与算法分析_数据结构和算法分析
- Android Service+Socket 联网交互
- 真机调试时部分日志丢失(魅族)
- 谷歌开源量子计算框架Cirq
- js高级学习笔记(b站尚硅谷)-2-数据、变量、内存三者的关系
- 基于github上camera开源框架CameraKit,实现仿微信拍照摄像功能
- 唯冠为何赢了苹果却不付律师费
- YIQ、YUV、YCrCb 与 RGB关系
- DQN-FlappyBird项目学习
- 迅捷PDF转换器怎样将PDF文件转换为HTML网页
- javaGUI游戏教程--人物控制
- async.whilst 的一个简化版实现
- 三苯基三甲基硫酸酯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 如何观察一棵树 - 笔记
- IP地址和子网划分学习笔记
- WD移动硬盘unlock解锁之后看不到盘符的解决办法
- Python2.7+PyQt5的安装
热门文章
- weblogic修改java重启_修改weblogic域的jdk
- 华为p20可以用云闪付吗_华为hcIE有多难?零基础可以通过华为hcie认证吗?
- xampp测试php代码,php用xampp测试
- ssl java 客户端_Java SSL生成客户端和服务端crt文件
- python定时器每月执行一次_python 定时器,实现每天凌晨3点执行的方法
- scanf可不可以输入浮点型_数据的输入和输出
- 文本数据 php,PHP对文本数据库的基本操作方法
- skype安卓手机版_危险的战争游戏安卓手机版下载-危险的战争下载v1.0.13
- Spring MVC 通过@Value注解读取.properties配置内容
- excel操作----主要用于数据库入库