SQLite 子查询

子查询,又称为内部查询嵌套查询,是在一个 SQLite 语句中的 WHERE 子句中嵌入另一个 SQL 查询语句

子查询 返回的数据可以被用在主查询中作为条件,以进一步限制要检索的数据

子查询的语法格式一般如下

[COMMAND] FROM tablename WHERE fieldname [op] ([sub query])
  1. [COMMAND] 可以是 SELECTINSERTUPDATEDELETE
  2. [op] 可以是运算符 =、<、>、>=、<=、IN
  3. [sub query] 就是一个子查询

例如下面的查询语句包含了一个子查询

SELECT * FROM tbl_employee  WHERE id IN (
    SELECT id FROM tbl_employee WHERE salary > 50000
);

这条语句的意思是先查询出 salary 大于 50000 的职工的 id 作为条件,筛选出这些人的所有信息

看起来比较简单,所以完全可以使用下面的语句代替

SELECT * FROM tbl_employee  WHERE id > 50000;

但如果涉及到复杂的查询,最好的方法就是乖乖的使用子查询

子查询规则

使用子查询时必须遵循以下几个规则

  1. 子查询必须用括号括起来

  2. 子查询在 SELECT 子句中只能有一个列,除非在主查询中有多列,与子查询的所选列进行比较

  3. ORDER BY 不能用在子查询中,虽然主查询可以使用 ORDER BY,但子查询中可以使用 GROUP BY

  4. 如果子查询返回多于一行,则只能与多值运算符一起使用,如 IN 运算符

  5. BETWEEN 运算符不能与子查询一起使用,但是,BETWEEN 可在子查询内使用

范例

子查询可以用在 SELECTINSERTUPDATEDELETE 语句中

  1. SELECT 中的子查询
  2. INSERT 中的子查询
  3. UPDATE 中的子查询
  4. DELETE 中的子查询

SQLite 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.