数据库学习笔记系列(8)——嵌套查询

在SQL语言中,一个select-from-where语句称为一个查询块。将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询。
上层的查询称为外层查询、父查询、主查询;
下层的查询称为内查询、子查询。
SQL语言允许多层嵌套查询,即一个子查询中还可以嵌套其它的子查询。
子查询的select语句中不能使用order by子句,order by 子句永远只能对最终查询结果排序,也就是只能适用于最外层的查询结果。
每个子查询在其上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。
以层层嵌套的方式构造程序正是SQL(structured query language)中“structured”的含义所在。

1. in谓词的子查询
in谓词引起的子查询语句最为常见。其可以判断某个属性列值是否在子查询的结果中,当子查询的结果是一个集合的时候,使用in谓词较合适。

例:查询和孙浩一个学院的学生信息
这里写图片描述

我们发现in 谓词后面的括号中就是子句,子句中select出来的字段一定要是父查询where后面的字段。

2. 带有比较运算符的之查询
就是指父查询和子查询之间用比较运算符进行连接,当用户能确切知道子查询返回的是一个数值的时候,我们就可以用>, <, =, >=, <=, <>(!=)等比较运算符。

例:查询考分比孙浩高的学生信息
这里写图片描述

我们发现运算符后面的括号中就是子句,子句中select出来的字段一定要是父查询where后面的字段。

3. 带有any或all谓词的子查询
子查询返回单值时可以用比较运算符外,也可以使用any或all谓词,不过与此同时必须使用同时使用比较运算符。
这里写图片描述

例:查询其他系中比IS系某一个学生年龄小的学生信息
这里写图片描述
上面的命令中我们使用的是

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值