SQL 中的 SELECT 命令不仅能够直接用来查询数据库中的数据,还能够嵌入到 WHERE 中作为子查询语句,或者将查询结果插入到另一个表中。
将子查询用于 WHERE 子句
子查询能够与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用。
下面以 SELECT 语句作为示例:
SELECT id, name
FROM table1
WHERE id in (
SELECT id
FROM table2);
在上面所给的例子中,我们将子查询的结果作为一个集合,使用 in 成员测试运算来筛选出同时存在于 table1 和 table2 中的 id 。
注意:WHERE 子句中的子查询必须使用括号包围起来。待比较的数据应该与子查询的结果具有相同的列数。
子查询的结果为单条记录,则可以使用 =、<、>、>=、<=、IN、BETWEEN 等运算符。例如:
SELECT id, name FROM table1
WHERE id = (
SELECT id
FROM table2
WHERE name = "xxx");
或者多列:
SELECT id, name FROM table1
WHERE (name, age) = (
SELECT name, age
FROM table2
WHERE id = 3);
当查询结果为多条记录时,只能使用 in 成员测试运算。
例如:
SELECT email
FROM table1
WHERE id in (
SELECT id
FROM table2);
将子查询结果插入表中
我们可以将一个表的查询结果作为数据插入到另一个表中,例如:
INSERT INTO newtable
SELECT * FROM oldtable
WHERE id > 100;
还可以选择特定的列:
INSERT INTO newtable (id, name)
SELECT id, name FROM oldtable
WHERE id < 50;
我们注意到,这里的子查询语句不需要使用括号包围。
SQL子查询语句简单示例
发表于:2017-08-08
作者:代码信条
来源:
 相关文章
MySQL性能飞跃:揭秘高效数据库优化的... 程序员应知必会的六种常见数据模型 MySQL数据库性能优化中常用的方法是什么? MySQL安全最佳实践指南(2024版) 只有1%的人知道的MySQL性能优化,却能... B+树:高效管理大规模数据的关键工具- 周排行
- 月排行
- 评论排行
-   数据库安全问题?这里有10个最常见的
-   免费电子书|MongoDB入门到实践
-   MySQL性能飞跃:揭秘高效数据库优化的...
-   【工具】数据库设计中的6个最佳实践步骤
-   当谈SQL优化时谈些什么?
-   Oracle用户权限及权限设置
-   如何通过性能调优突破MySQL数据库性能...
-   面试题:Redis和MySQL的事务区别是什么?
-   数据库安全问题?这里有10个最常见的
-   躲坑!数据库设计的九大常见错误
-   Oracle数据库并发控制:解决多用户同...
-   Oracle安装内核参数设置
-   MySQL性能优化,索引和查询优化
-   矢量数据库对比和选择指南
-   从软件出发,非功能测试思考总结
-   展望2017,谁是网络技术头牌?
-   C/C++单元测试工具Visual Unit 4 介绍
-   国内外最好用的6款Bug跟踪管理系统
-   性能测试指标评估必读
-   百度软件测试方案模板
-   38张史上最全的IT工程师技能图谱
-   C/C++单元测试工具Visual Unit 4 介绍
-   2019年,你会选哪些安全测试工具?
-   十款Web服务器性能压力测试工具
-   软件测试入门指南:周期、模型和文档化
-   记自动化测试成神学习之路
-   软件测试全景图 -最全的思维导图