数据库(29)——子查询

概念

SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。

SELECT * FROM t1 WHERE column1 =(SELECT column1 FROM t2);

子查询外部语句可以是INSERT/UPDATE/DELETE/SELECT的任何一个。

标量子查询

子查询返回的结果是单个值(数字,字符串,日期等)最简单的形式。

常见的操作符:= <> >= > < <=

演示

查询所有状态为“吃饭”的人员信息

我们可以将这个需求拆解为两个部分,先查询吃饭的id信息,在根据id来查询人员信息。

首先查吃饭的id

select id from status where now='吃饭';

查询结果id为1,再根据id查询人员的信息。

select * from user where status =1;

 

 然后我们可以将第一条语句替换掉第二条语句的‘1’

select * from user where status =(select id from status where now='吃饭');

两次查询的结果是一样的。

列子查询

列子查询的返回结果是一列

常见操作符: IN,NOT IN,ANY,SOME,ALL。

操作符 描述
ANY 子查询返回列表中,有任意一个满足即可
SOME 与ANY相等
ALL 子查询返回列表的所有值必须都满足

 演示

查询状态为‘吃饭和‘睡觉’的人员信息

select id from status where now='吃饭' or now ='睡觉';

查询结果为1和2,再根据id查询人员的信息。

select * from user where status in (select id from status where now='吃饭' or now ='睡觉');

 

 

行子查询

查询返回的结果是一行。

常见的操作符: =、<> ,IN ,NOT IN

演示

查询与背带裤age以及sex相同的人员信息

还是将题目拆成两部分,先查询‘背带裤’的age和sex

select age,sex from user where name='背带裤';

在查询与之相同的信息

select * from user where age=25  and sex='女';

 

随后可以写成

select * from user where(age,sex)=(select age,sex from user where name='背带裤');

结果和上述结果一致。

表子查询

查询的结果是多行多列

常用的操作符:IN

该查询方法与上一种查询方法差不多,表子查询所返回的值为一张表,所以将上面的等于号改为in即可,这里不做过多演示

 

相关推荐

  1. 数据库查询

    2024-06-10 06:12:03       16 阅读
  2. Day 25 数据库查询

    2024-06-10 06:12:03       9 阅读
  3. 五种主流数据库查询

    2024-06-10 06:12:03       23 阅读
  4. MySQL数据库查询练习——EXISTS

    2024-06-10 06:12:03       8 阅读

最近更新

  1. 力扣475.供暖器

    2024-06-10 06:12:03       0 阅读
  2. 图片based64编码解码python代码

    2024-06-10 06:12:03       0 阅读
  3. ray框架训练阶段和 Serve 阶段对比

    2024-06-10 06:12:03       0 阅读

热门阅读

  1. 209. 长度最小的子数组

    2024-06-10 06:12:03       3 阅读
  2. 主从式光伏并网发电系统体系结构

    2024-06-10 06:12:03       5 阅读
  3. ICESat-2 ATL08 数据批量读取

    2024-06-10 06:12:03       5 阅读
  4. 发布自己的 npm 插件包:步骤与最佳实践

    2024-06-10 06:12:03       3 阅读
  5. spdlog源码解析

    2024-06-10 06:12:03       3 阅读
  6. Spring Boot集成thymeleaf快速入门demo

    2024-06-10 06:12:03       4 阅读
  7. 排查服务器cpu运行过高

    2024-06-10 06:12:03       4 阅读
  8. go语言切片去重的3种方式总结

    2024-06-10 06:12:03       3 阅读