SQLite进阶-14.子查询
子查询
子查询或内部查询或嵌套查询是在另一个SQLite查询内嵌入在WHERE子句中的查询。
使用子查询返回的数据将被用在主查询中作为条件,以进一步限制要检索的数据。
子查询可以与SELECT、INSERT、UPDATE和DELETE语句一起使用,可伴随着使用运算符如=、<、>、>=、<=、IN、BETWEEN等。
子查询必须遵循的几个规则:
- 子查询必须用括号括起来。
- 子查询在SELECT子句只能有一个列,除非在主查询中有多列,与子查询的所选列进行比较。
- ORDER BY不能用在子查询中,虽然主查询可以使用ORDER BY。可以在子查询中使用GROUP BY,功能与ORDER BY相同。
- 子查询返回多余一行,只能与多值运算符一起使用,如IN运算符。
- BETWEEN运算符不能与子查询一起使用,但是,BETWEEN可在子查询内使用。
SELECT语句中的子查询
-- 语法
SELECT * FROM table_name1[, table_name2]
WHERE column_name OPERATOR
(
SELECT column_name1[, column_name2]
FROM table_name[, table_name2]
WHERE [condition]
);
-- 实例
SELECT * FROM link_men
WHERE ID IN (
SELECT ID FROM link_men
WHERE SALARY > 5000
);
INSERT语句中的子查询
-- 语法
INSERT INTO table_name [ (column1 [, column2 ]) ]
SELECT [ (column1 [, column2 ]) ]
FROM table_name1[, table_name2]
WHERE column_name OPERATOR
(
SELECT column_name1[, column_name2]
FROM table_name1[, table_name2]
WHERE [condition]
);
-- 实例
INSERT INTO link_men
SELECT * FROM link_men
WHERE ID IN (
SELECT ID FROM link_men
WHERE SALARY > 5000
);
UPDATE语句中的子查询
-- 语法
UPDATE table_name
SET column_name = new_value
WHERE column_name OPERATOR
(
SELECT column_name1[, column_name2]
FROM table_name1[, table_name2]
WHERE [condition]
);
-- 实例
UPDATE link_men
SET SALARY = SALARY * 0.50
WHERE AGE IN (
SELECT AGE FROM link_men
WHERE AGE > 25
);
DELETE语句中的子查询
-- 语法
DELETE FROM table_name
WHERE column_name OPERATOR
(
SELECT column_name1[, column_name2]
FROM table_name1[, table_name2]
WHERE [condition]
);
-- 实例
DELETE FROM link_men
WHERE AGE IN (
SELECT AGE FROM link_men
WHERE AGE > 25
);
SQLite进阶-14.子查询的更多相关文章
- MySQL 查询语句--------------进阶7:子查询
#进阶7:子查询 /* 含义: 出现在其他语句中的select语句,称为子查询或者内查询 外部的查询语句,称为主查询或外查询 分类: 按照子查询出现的位置: select后面:只支持标量子查询 fro ...
- [20180626]函数与标量子查询14.txt
[20180626]函数与标量子查询14.txt --//前面看http://www.cnblogs.com/kerrycode/p/9099507.html链接,里面提到: 通俗来将,当使用标量子查 ...
- MySQL Crash Course #06# Chapter 13. 14 GROUP BY. 子查询
索引 理解 GROUP BY 过滤数据 vs. 过滤分组 GROUP BY 与 ORDER BY 之不成文的规定 子查询 vs. 联表查询 相关子查询和不相关子查询. 增量构造复杂查询 Always ...
- Python进阶----多表查询(内连,左连,右连), 子查询(in,带比较运算符)
Python进阶----多表查询(内连,左连,右连), 子查询(in,带比较运算符) 一丶多表查询 多表连接查询的应用场景: 连接是关系数据库模型的主要特点,也是区别于其他 ...
- MySQL进阶8 分页查询(limit) - 【SQL查询语法执行顺序及大致结构】- 子查询的3个经典案例
#进阶8 分页查询 /* 应用场景: 当要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 #7 from 表1 #执行顺序:#1 [join type join 表2 ...
- 走向面试之数据库基础:二、SQL进阶之case、子查询、分页、join与视图
一.CASE的两种用法 1.1 等值判断->相当于switch case (1)具体用法模板: CASE expression WHEN value1 THEN returnvalue1 WHE ...
- .Net程序员学用Oracle系列(14):子查询、集合查询
1.子查询 1.1.子查询简介 1.2.WITH 子查询 2.集合查询 2.1.UNION 和 UNION ALL 2.2.MINUS 2.3.INTERSECT 2.4.集合运算与 ORDER BY ...
- SQL Server进阶(五)子查询
概述 子查询的概念: 当一个查询是另一个查询的条件时,称之为子查询.子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 外面的 ...
- Hive进阶_Hive的子查询
- 集合中如果含null数据,不可使用not in, 可以使用in- hive只支持where和from子句中的子查询- 主查询和自查询可以不是同一张表 select e.ename from emp ...
随机推荐
- [Luogu] 八数码难题
https://www.luogu.org/problemnew/show/P1379 long long ago 暴力bfs #include <iostream> #include & ...
- python3.5+win7 安装 numpy 和scipy的总结
1.安装numpy. 官网下载numpy.下载地址为https://pypi.Python.org/pypi/numpy.选择与Python版本相对应的numpy版本.之后在python35 ...
- csp-s模拟测试77+78(lrd day1&2)
RP-=inf....... 一场考试把rp败光...由于本次考试本人在考试中乱说自己AK导致rp--,本人当选为机房倒数第二没素质 不过AK一次还挺开心的... 达哥出的题还是比较简单的. T1:考 ...
- re匹配 [\s\S][\w\W]的使用.
本来想提取一个字符串写了一堆正则都提取不出来. 因为有特殊字符 后来使用 [\s\S]* 或 [\w\W]* 匹配出来. \s 空白字符 [ \t\n\r\f\v] \S 非空白字符 相当于 [^ \ ...
- 主机,路由器,应用程序,sockets api的关系
- 十六、程序包管理之 rpm
c语言程序的构建过程 1.程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接--> 可执行程序 开放源码:就是程序码,文本格式的源代码,写给人类看的程序 ...
- Python generator 类型
场景: 使用gurobi求解优化问题时,遇到quicksum()函数用法如下: quicksum(mu[i] for i in range(n)) 读着很流畅而且好像并没什么问题欸,但 mu[i] f ...
- HTML、 CSS、 JavaScript三者的关系
HTML. CSS. JavaScript三者的关系 网页主要由三部分组成: 结构( Structure) . 表现( Presentation) 和行为( Behavior) HTML ...
- DBMS_STATS.GATHER_SCHEME_STATS学习
由于Oracle的优化器是CBO,所以对象的统计数据对执行计划的生成至关重要! 作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息(默认参数下是对表进行直方图信 ...
- SQL-W3School-高级:SQL RIGHT JOIN 关键字
ylbtech-SQL-W3School-高级:SQL RIGHT JOIN 关键字 1.返回顶部 1. SQL RIGHT JOIN 关键字 RIGHT JOIN 关键字会右表 (table_nam ...