原 SQL 学习整理
|-转 SQL中EXISTS的使用
SQL中EXISTS的使用1.简介不相关子查询:子查询的查询条件不依赖于父查询的称为不相关子查询。相关子查询:子查询的查询条件依赖于外层父查询的某个属性值的称为相关...
SQL中EXISTS的使用
1.简介
- 不相关子查询:子查询的查询条件不依赖于父查询的称为不相关子查询。
- 相关子查询:子查询的查询条件依赖于外层父查询的某个属性值的称为相关子查询,带EXISTS 的子查询就是相关子查询
- EXISTS表示存在量词:带有EXISTS的子查询不返回任何记录的数据,只返回逻辑值“True”或“False”
2.表结构
选课表:学号、课程号
学生表:学号、姓名
课程表:课程号、课程名
3.查询所有选修了“C1”课程的学生名。
普通SQL查询:
SELECT 姓名 FROM 学生表 WHERE 学号 IN (SELECT 学号 FROM 选课表 WHERE 课程号 = 'C1');
带EXISTS的SQL查询:
SELECT 姓名 FROM 学生表 WHERE EXISTS ( SELECT * FROM 选课表 WHERE 学生表.学号 = 选课表.学号 AND 课程号 = 'C1' );
相关子查询执行过程:先在外层查询中取“学生表”的第一行记录,用该记录的相关的属性值(在内层WHERE子句中给定的)处理内层查询,若外层的WHERE子句返回“TRUE”值,则这条记录放入结果表中。然后再取下一行记录;重复上述过程直到外层表的记录全部遍历一次为止。
EXISTS语句不关心子查询的具体内容,因此用“SELECT *”,“Exists + 子查询”用来判断该子查询是否返回记录。...
浏览更多内容请先登录。
立即注册
更新于:2020-03-25 23:49:32
相关内容
【该文章就是坑】mysql使用中文的全文索引(注意只有5.7.6以上的版本支持)
MYSQL8.0全文索引使用
msyql备份数据的语句mysqldump使用
Yii中DataProvider的使用
SQL 学习整理
SQL中EXISTS的使用
Yii2报错没有关联命名 common\models\Post has no relation named
SQL常用语句
SQL复杂查询(案例一)
Sql常用查询操作
【知乎】从零学会SQL:复杂查询
sql查询两张表中不同的数据
推荐内容