『SQLite』子查询可以这样用

摘要:本节主要讲子查询的使用,可以在查询、更新、修改、删除等操作中使用。

什么是子查询?

子查询是一种在 SELECT-SQL 语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询(Sub Query)。

子查询可以出现在多个地方

  • SELECT语句中的WHERE子句:用于根据子查询的结果过滤数据。
  • SELECT语句中的FROM子句:可以将子查询的结果作为一个临时表来进行查询。
  • SELECT语句中的SELECT部分:即可以通过子查询在查询结果中计算值。

子查询的类型

  • 标量子查询(Scalar Subquery):返回单个值的子查询,通常出现在SELECT子句或WHERE子句中。标量子查询要求返回单个值(一个列,一个行)。
  • 多行子查询(Multi-row Subquery):返回多行数据的子查询,通常用于IN、ANY、ALL等操作符中。
  • 多列子查询(Multi-column Subquery):返回多列数据的子查询,用于比较多个列的值。

子查询与主查询的关系

  • 相关子查询(Correlated Subquery):子查询依赖于外部查询的列,子查询会多次执行,每次执行时会使用外部查询的不同值。例如,子查询中的某些字段引用了外部查询的字段。
  • 非相关子查询(Non-correlated Subquery):子查询独立于外部查询,子查询只执行一次,返回的结果用于主查询的条件。

子查询的规则

  • 必须返回单列或多列(具体根据上下文要求)。例如,IN操作符可以用于多行子查询,而=操作符则通常要求子查询返回单个值。
  • 子查询返回的结果集必须与主查询相兼容。例如,如果主查询需要返回一个值,子查询不能返回多个值。
  • 子查询中的字段应与主查询表中的字段匹配(特别是相关子查询中)。

SELECT语句中使用

sql 复制代码
SELECT column_name [, column_name ]
FROM   table1 [, table2 ]
WHERE  column_name OPERATOR
      (SELECT column_name [, column_name ]
      FROM table1 [, table2 ]
      [WHERE])

INSERT语句中使用

sql 复制代码
INSERT INTO table_name [ (column1 [, column2 ]) ]
	SELECT [ *|column1 [, column2 ]
    FROM table1 [, table2 ]
    [ WHERE VALUE OPERATOR ]

UPDATE语句中使用

sql 复制代码
UPDATE table
SET column_name = new_value
[ WHERE OPERATOR [ VALUE ]
   (SELECT COLUMN_NAME
   		FROM TABLE_NAME)
   		[ WHERE) ]

DELETE语句中使用

sql 复制代码
DELETE FROM TABLE_NAME
[ WHERE OPERATOR [ VALUE ]
   (SELECT COLUMN_NAME
   FROM TABLE_NAME)
   [ WHERE) ]

以上内容的详细案例SQLite中子查询可以这样用

相关推荐
夏贰四8 分钟前
中小企业搭建业务中台如何控成本?业务中台轻量化落地分几步实施?
数据库·业务中台
林焱RPA36 分钟前
影刀RPA200篇纪念版:最实用的20个自动化场景大盘点
数据库
名字还没想好☜37 分钟前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
每天都要进步哦3 小时前
SQL单行函数详解:字符、数字、日期、转换与通用函数全解析
数据库·mysql
不剪发的Tony老师3 小时前
VeloxDB:一款免费开源的轻量级数据库管理工具
数据库·sql
dotnet903 小时前
批量生成所有表的修改脚本
数据库·sql·oracle
@Mike@3 小时前
06-数据库学习笔记(存储模型与数据压缩)
数据库·笔记·学习
南凉北往4 小时前
PandasAI连接LLM对MySQL数据库进行数据分析
数据库·mysql·数据分析
回眸不遇4 小时前
详谈 QT 布局 QLayout::SizeConstraint 和 QSizePolicy 对 QWidget 尺寸的影响
数据库·qt·系统架构
2601_965798474 小时前
MTDb Movie & TV Database Script Setup, Caching, and SEO Guide
linux·服务器·数据库·php