返回订单表中订单价值超过5000美元的那些客户的详细信息。
SELECT * FROM customers
WHERE cust_id IN (SELECT DISTINCT cust_id FROM orders WHERE order_value > 5000);

子查询也可以与INSERT语句一起使用。
INSERT INTO premium_customers 
SELECT * FROM customers 
WHERE cust_id IN (SELECT DISTINCT cust_id FROM orders WHERE order_value > 5000);
通过使用子查询返回的数据,将高级客户的记录插入名为premium_customers的表中。 这里的高级客户是已下订单价值超过5000美元的客户。

带有UPDATE语句的子查询
还可以将子查询与UPDATE语句结合使用,以更新表中的单列或多列,
UPDATE orders
SET order_value = order_value + 10
WHERE cust_id IN (SELECT cust_id FROM customers WHERE postal_code = 75016);
通过将当前订单值增加10美元,更新订单(orders)表中邮政编码为75016的地区的客户的订单值。

带有DELETE语句的子查询
可以将子查询与DELETE语句结合使用,以删除表中的单行或多行,
DELETE FROM orders
WHERE order_id IN (SELECT order_id FROM order_details WHERE product_id = 5);
从包含product_id为5的产品的订单表中删除这些订单。

SELECT *
FROM EMP
WHERE SAL < (SELECT AVG(SAL) FROM EMP);
查询薪资比平均薪资低的员工信息

HAVING子句是对分组统计函数进行过滤的子句,也可以在HAVING子句中使用子查询
SELECT JOB,AVG(SAL)
FROM EMP
GROUP BY JOB
HAVING AVG(SAL) = (SELECT MAX(AVG(SAL)) FROM EMP GROUP BY JOB);
查询平均薪资最高的职位及其平均薪资

FROM子查询
FROM子查询就是将一个查询结构(一般多行多列)作为主查询的数据源
SELECT JOB,AVG(SAL)
FROM (SELECT JOB,AVG(SAL) AS AVGSAL FROM EMP GROUP BY JOB)TEMP
WHERE TEMP.AVGSAL>2000;
查询平均薪资高于2000的职位以及该职位的平均薪资

SELECT子查询
SELECT子查询在SELECT子句中使用查询的结果(一般会和dual空表一起使用)
SELECT (SELECT COUNT(*) FROM EMP WHERE JOB = 'SALESMAN')/(SELECT COUNT(*) FROM EMP)
FROM DUAL;
职位是SALESMAN的员工占总员工的比例

EXISIT子查询
将主查询的数据带到子查询中验证,如果成功则返回true,否则发水false。主查询接收true是就会显示这条数据,flase就不会显示。
SELECT *
FROM EMP E
WHERE EXISIT (
    SELECT *
    FROM DEPT D
    WHERE E.DEPTNO = D.DEPTNO);
查询有部门的员工信息

查询薪资排名的员工信息
SELECT *
FROM EMP
WHERE SAL = (SELECT MIN(SAL) 
            FROM (SELECT ROWNUM,SAL 
                   FROM (SELECT SAL FROM EMP GROUP BY SAL ORDER BY SAL DESC)
                 WHERE ROWNUM<=n));
查询薪资排名第n个员工的信息(包括并列排名)
思路:
1.先按薪资降序分组
2.再取前n名薪资中最低的薪资,即第n名的薪资。
3.最后在原表中找出薪资与最低薪资相同的员工信息。

查询平均成绩比‘王五’大的学生id,姓名,平均成绩
select s.s_id , s.s_name , avg(score)
from t_student s join t_grade g on s.s_id = g.s_id
group by s.s_id , s.s_name
having avg(score) > (select avg(score)
                     from t_student s join t_grade g on s.s_id = g.s_id
                     where s.s_name = '王五'
                     group by s.s_id)

查询其他课程中比课程id为‘400004’课程的任一分数低的学生的学号、姓名、课程号、课程名、分数(ANY)
select s.s_id , s_name , c.c_id , c_name , score
from t_grade g join t_student s on g.s_id = s.s_id
               join t_course c on g.c_id = c.c_id
having c.c_id != 400004 and avg (score) < any (
                                        select avg(score)
                                        from t_grade 
                                        where c_id = 400004
                                        group by (c_id)
                                        )
group by c.c_id , s.s_id , s.s_name , c_name ,score

查询其他课程中比课程id为‘400004’课程的所有分数高的学生的学号、姓名、课程号、课程名、分数(ALL)
select s.s_id , s_name , c.c_id , c_name , score
from t_grade g join t_student s on g.s_id = s.s_id
               join t_course c on g.c_id = c.c_id
having c.c_id != 400004 and score > all (
                                        select score
                                        from t_grade 
                                        where c_id = 400004
                                        )
group by c.c_id , s.s_id , s.s_name , c_name ,score

内联视图子查询
       (1)SELECT ename,job,sal,rownum
          FROM (SELECT ename,job,sal FROM EMP ORDER BY sal);
       (2)SELECT ename,job,sal,rownum
          FROM ( SELECT ename,job,sal FROM EMP ORDER BY sal)
          WHERE rownum<=5;
  
在HAVING子句中使用子查询
        SELECT deptno,job,AVG(sal) FROM EMP GROUP BY deptno,job HAVING AVG(sal)>(SELECT sal FROM EMP WHERE ename='MARTIN');

列出其销售目标超过各个销售人员定额综合的销售点。
SELECT CITY
FROM OFFICES
WHERE TARGET > (SELECT SUM(QUOTA)
                             FROM SALESREPS
                             WHERE REP_OFFICES = OFFICE)

子查询编写的许多查询也可以写成多表查询或连接:
    列出在西部地区销售点工作的销售人员(表1)的名字(表2);

SELECT NAME,AGE 
FROM SALESREPS
WHERE REP_OFFICE IN (SELECT OFFICE
                                      FROM OFFICES
                                     WHERE REGION = ‘Western’)

SELECT NAME,AGE
FROM SALESREPS,OFFICES
WHERE REP_OFFICE = OFFICE
AND REGION = 'Western'

列出销售量超过平均定额的销售人员的名字和年龄

SELECT NAME,AGE
FROM SALESREPS
WHERE QUOTA > (SELECT AGE(QUOTA)
                            FROM SALESREPS)
(在这个例子中,内部查询是一个汇总查询,外部查询不是,所以不能把两个查询组合成一个连接。)

列出对ACI生产的产品,其取得的平均订单大小超过了总的平均订单大小的销售人员
SELECT NAME,AVG(AMOUNT)
FROM SALESREPS,ORDERS
WHERE EMPL_NUM = REP
AND MFR = ‘ACI’
GROUP BY NAME
HAVING AVG(AMOUNT) > (SELECT AVG(AMOUNT) 
                                        FROM ORDERS)

各种SQL子查询实例相关推荐

  1. 图解SQL子查询实例

    1 创建示例表 先创建示例表: ------------------------- -- Create Customers table ------------------------- CREATE ...

  2. sql子查询示例_SQL更新查询示例说明

    sql子查询示例 In this article, we're going to learn how to use the SQL update statement - what it is, wha ...

  3. sql子查询示例_学习SQL:SQL查询示例

    sql子查询示例 In the previous article we've practiced SQL, and today, we'll continue with a few more SQL ...

  4. sql 子查询 嵌套查询_SQL子查询– SQL中的嵌套查询

    sql 子查询 嵌套查询 In the real world, there are times when we need a particular set of data but we don't h ...

  5. sql 子查询及基本语句 挺全的收录

    引自https://blog.csdn.net/jia_gugang/article/details/80282873 一.SQL子查询语句 1.单行子查询         select ename, ...

  6. SQL子查询、关联查询

    SQL子查询.关联查询: 注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除! 持续更新中- 如有对思路不清晰或有更好的解决思路,欢迎与本人交流,QQ群:273557553,个人微信 ...

  7. sql子查询的妙用:用在from后面做子表、用在where后面做子条件以及用在select后面用作子字段

    昨天去客户方让客户小姐姐给我查询一段sql的时候,竟然发现sql子查询还可以这样写: sql子查询不仅仅可以出现在from 后面作为表结构,譬如: select t1.company_id,t1.co ...

  8. mysql模糊查询实例_Mysql实例sql模糊查询实例详解

    <Mysql实例sql模糊查询实例详解>要点: 本文介绍了Mysql实例sql模糊查询实例详解,希望对您有用.如果有疑问,可以联系我们. 导读:常用的模糊查询语句:select 字段 fr ...

  9. 数据库复习——SQL子查询(IN,θsome,Exists子查询)

    前言 战神的课实例好多太棒了,推荐,本节关于SQL复杂查询 正文 首先可以根据课程ppt上的图文建立一个SCT数据库,老师上课的内容大部分都用的是这个数据库中的实例,除了手写,可以实际操作敲一敲巩固记 ...

最新文章

  1. django orm级联_第 03 篇:创建 Django 博客的数据库模型
  2. Android 应用防止被二次打包指南
  3. 8个应该了解的CSS3技术
  4. Scrapy框架的学习(9.Scrapy中的CrawlSpider类的作用以及使用,实现优化的翻页爬虫)
  5. 什么方式可以通过影子系统传播恶意代码_将恶意代码隐藏在图像中:揭秘恶意软件使用的隐写术...
  6. 计算机教室管理责任书,计算机教室管理安全责任书.doc
  7. 信息学奥赛C++语言:猴子选大王
  8. 初创企业融资应量力而行
  9. 【Kafka】01 生产者
  10. PS如何删除智能图层为可编辑状态
  11. 【Reinforcement Learning】蒙特卡洛算法
  12. 电脑桌面下方的任务栏卡死解决方案:
  13. 武汉新时标文化传媒有限公司短视频的类型
  14. variable ‘XXX cannot be implicitly captured in a lambda with no capture-default specified
  15. hbase集群的搭建(完全分布式)
  16. linux 命令硬盘指示灯闪烁,macOS下移动硬盘无法挂载且硬盘灯一直闪烁的解决方法...
  17. ‘dict_keys‘ object does not support indexing错误解决
  18. OpenGL学习05_点画模式(点画多边形)
  19. 明确数据分析目标的 3 个步骤!
  20. nrcellcu和nrcelldu_华为5G网管MBB操作指导书

热门文章

  1. 适合安装在服务器上使用的操作系统,适合于做服务器的操作系统有
  2. java计算机毕业设计高校体育场馆管理源码+mysql数据库+系统+lw文档+部署
  3. 科学研究机构管理系统
  4. Uniapp关于 Android原生插件开发案例
  5. 代谢组学检测公司怎么挑选,需要考虑哪些方面?-百趣生物
  6. 用逗号分割并在Python中去除空格
  7. 机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)
  8. 一篇让你熟练掌握Java常用工具包(全网最全)
  9. ILRuntime学习(之一)
  10. Django-rest-framework框架之APIView与序列化详解