子查询或内部查询或嵌套查询在另一个SQL查询的查询和嵌入式WHERE子句中。

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

子查询可以在SELECT,INSERT,UPDATE使用,而且随着运算符如DELETE语句 =, , >=, <=, IN, BETWEEN 等.

这里有一些规则,子查询必须遵循:

子查询必须被圆括号括起来。

子查询只能在有一列的SELECT子句中,除非多个列中的子查询,以比较其选定列主查询。

ORDER BY不能在子查询中使用,主查询可以使用ORDER BY。GROUP BY可以用来在子查询中如ORDER BY执行相同的功能。

返回多于一个行子查询只能用于具有多个值运算符,如IN操作。

SELECT列表中不能包含到值计算到任何引用 BLOB, ARRAY, CLOB, 或NCLOB.

子查询不能立即封闭在一组函数。

BETWEEN 操作符不能与子查询使用;然而,操作符BETWEEN可以在子查询中使用。

子查询SELECT语句:

子查询最频繁使用的SELECT语句。其基本语法如下:

SELECT column_name[,column_name]FROM table1[,table2]WHERE column_name OPERATOR(SELECT column_name[,column_name]FROM table1[,table2][WHERE])

例子:

考虑CUSTOMERS表具有以下记录:

+----+----------+-----+-----------+----------+|ID|NAME|AGE|ADDRESS|SALARY|+----+----------+-----+-----------+----------+|1|Ramesh|35|Ahmedabad|2000.00||2|Khilan|25|Delhi|1500.00||3|kaushik|23|Kota|2000.00||4|Chaitali|25|Mumbai|6500.00||5|Hardik|27|Bhopal|8500.00||6|Komal|22|MP|4500.00||7|Muffy|24|Indore|10000.00|+----+----------+-----+-----------+----------+

现在,让我们检查下使用子查询SELECT语句:

SQL>SELECT*FROM CUSTOMERS

WHERE ID IN(SELECT ID

FROM CUSTOMERS

WHERE SALARY>4500);

这将产生以下结果:

+----+----------+-----+---------+----------+|ID|NAME|AGE|ADDRESS|SALARY|+----+----------+-----+---------+----------+|4|Chaitali|25|Mumbai|6500.00||5|Hardik|27|Bhopal|8500.00||7|Muffy|24|Indore|10000.00|+----+----------+-----+---------+----------+

子查询的INSERT语句:

子查询,也可以使用INSERT语句。INSERT语句使用从子查询返回的数据插入到另一个表中。在子查询中的所选择的数据可以与任何类型的字符,日期或数字函数进行修改。

其基本语法如下:

INSERT INTO table_name[(column1[,column2])]SELECT[*|column1[,column2]FROM table1[,table2][WHERE VALUE OPERATOR]

示例:

考虑CUSTOMERS_BKP表的结构相似于CUSTOMERS表。考虑CUSTOMERS_BKP表的结构相似于CUSTOMERS表。

SQL>INSERT INTO CUSTOMERS_BKP

SELECT*FROM CUSTOMERS

WHERE ID IN(SELECT ID

FROM CUSTOMERS);

子查询的UPDATE语句:

子查询可以与UPDATE语句一起使用。单个或多个表中的列可以使用带有UPDATE语句子查询时被更新。

其基本语法如下:

UPDATE table

SET column_name=new_value[WHERE OPERATOR[VALUE](SELECT COLUMN_NAME

FROM TABLE_NAME)[WHERE)]

示例:

假设,我们的CUSTOMERS_BKP表是CUSTOMERS表的备份。

下面的例子是在CUSTOMERS表更新0.25倍薪水,其年龄大于或等于27所有的客户:

SQL>UPDATE CUSTOMERS

SET SALARY=SALARY*0.25WHERE AGE IN(SELECT AGE FROM CUSTOMERS_BKP

WHERE AGE>=27);

这将影响到两行,最后CUSTOMERS表将有以下记录:

+----+----------+-----+-----------+----------+|ID|NAME|AGE|ADDRESS|SALARY|+----+----------+-----+-----------+----------+|1|Ramesh|35|Ahmedabad|125.00||2|Khilan|25|Delhi|1500.00||3|kaushik|23|Kota|2000.00||4|Chaitali|25|Mumbai|6500.00||5|Hardik|27|Bhopal|2125.00||6|Komal|22|MP|4500.00||7|Muffy|24|Indore|10000.00|+----+----------+-----+-----------+----------+

子查询的DELETE语句:

子查询可配合使用像上述的任何其他语句DELETE语句。

其基本语法如下:

DELETE FROM TABLE_NAME[WHERE OPERATOR[VALUE](SELECT COLUMN_NAME

FROM TABLE_NAME)[WHERE)]

示例:

假设,我们的CUSTOMERS_BKP表是CUSTOMERS表的备份。

下面的示例将删除CUSTOMERS表记录其年龄大于或等于27所有的客户:

SQL>DELETE FROM CUSTOMERS

WHERE AGE IN(SELECT AGE FROM CUSTOMERS_BKP

WHERE AGE>27);

这将影响到两行,最后CUSTOMERS表将有以下记录:

+----+----------+-----+---------+----------+|ID|NAME|AGE|ADDRESS|SALARY|+----+----------+-----+---------+----------+|2|Khilan|25|Delhi|1500.00||3|kaushik|23|Kota|2000.00||4|Chaitali|25|Mumbai|6500.00||6|Komal|22|MP|4500.00||7|Muffy|24|Indore|10000.00|+----+----------+-----+---------+----------+

¥ 我要打赏

纠错/补充

收藏

上一篇:

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

mysql+sql+子查询语句_SQL子查询相关推荐

  1. mysql sql测试_MySQL语句测试——数据查询

    MySQL语句测试--数据查询 3.4 数据查询 一.单表查询 /*1.选择表中的若干列,各个列的先后顺序和语句中列名从左到右的顺序一致 select 目标表达式 from 表名; */ /*(1)s ...

  2. sql在插入语句使用子查询_SQL插入查询

    sql在插入语句使用子查询 SQL INSERT Query also referred as SQL INSERT INTO is the command used for inserting da ...

  3. MYSQL查询语句2——子查询

    子查询 一.为什么会使用子查询 二.什么是子查询 三.子查询的具体使用+实例 1.WHERE子句后使用子查询 2.FROM子句后使用子查询 一.为什么会使用子查询 虽然可以通过连接查询来实现多表查询数 ...

  4. Mysql的查询语句(联合查询、连接查询、子查询等)

    Mysql的各个查询语句(联合查询.连接查询.子查询等) 一.联合查询 关键字:union 语法形式 select语句1 union[union选项] select 语句2 union[union选项 ...

  5. sql 字符串比较大小_SQL简单查询第二关

    第二关目录大纲: 1.基本的查询语句 2.指定查询条件 3.注释和sql语句注意事项 4.运算符 5.字符串模糊查询 一.基本的查询语句 select <列名1>,<列名2>, ...

  6. php中id如何与删除关联,ThinkPHP查询语句与关联查询用法实例

    这篇文章主要介绍了ThinkPHP查询语句与关联查询用法,以实例的形式常见的查询方法,包括数组作为查询条件及对象方式来查询等技巧,需要的朋友可以参考下 本文实例讲述了ThinkPHP查询语句与关联查询 ...

  7. 查询语句 like 模糊查询

    查询语句 like 模糊查询 前言 建表语句在最后 like 应该是最常用的查询条件了 必须掌握地! like 的语法格式 LIKE '字符串' NOT LIKE '字符串' NOT :取反,不满足指 ...

  8. java oracle分页查询语句_Oracle分页查询语句的写法(转)

    Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用. ...

  9. mysql+sql+子查询语句_SQL语句:子查询

    一,子查询简介: 子查询就是嵌套在主查询中的查询. 子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.ORDER BY.但并不是每个位置嵌套子查询都是有意义并实用的. 子查询必 ...

最新文章

  1. 基于Spark ML 聚类分析实战的KMeans
  2. java中字节码_Java字节码浅析(三)
  3. matlab oqpsk,如何用MATLab画OQPSK星座?
  4. web前端数组塌陷的解决办法
  5. 搞笑动图:这些痛,只有程序员懂…
  6. 【深入理解JVM】:类加载器与双亲委派模型
  7. RequireJS模块的建立:插件化体验 - demo演示篇
  8. [转] 关于SQLSERVER2000卸载与出现挂起问题的解决
  9. 华中科技大学计算机专业培养计划,2021年华中科技大学计算机科学与技术专业本科人才培养方案.doc...
  10. Android 缓存处理和图片处理
  11. bzoj 3394: [Usaco2009 Jan]Best Spot 最佳牧场(floyd)
  12. Codeforces Round #496 (Div. 3) E2 - Median on Segments (General Case Edition)(思维+用bit 位求前缀合)
  13. ps图案叠加怎么添加图案?Photoshop图案如何使用?
  14. Java Grammar:数据类型
  15. 成为腾讯开发者——如何使用QQ开放平台和微信开放平台
  16. 如果你想专升本那就一定要看的文学常识完整版(二)
  17. linux装软件需要root用户,Linux下非root用户安装软件的一般流程:
  18. 管理博文 畅购商城--oauth---09
  19. el-table 表格内容多一根线的解决办法
  20. Scrapy项目 - 数据简析 - 实现斗鱼直播网站信息爬取的爬虫设计

热门文章

  1. C语言在不引入第三变量下交换俩数
  2. jQuery操作元素属性
  3. 一文读懂Redis常见对象类型的底层数据结构
  4. 如何将 Nginx 性能提升10倍?这10个“套路”请收好!
  5. 手把手 docker 从零搭建 jenkins 服务器
  6. 你真的了解 i++, ++i 和 i+++++i 以及 i+++i++ 吗?
  7. c++调用python的代码、函数、类
  8. tomcat基本使用,就是这么简单
  9. Java基础提升篇:equals()方法和“==”运算符
  10. 综合应用题:多线程复制文件(知识点:多线程、随机读写流)