当前位置: 首页 > news >正文

BCSP-玄子JAVA开发之JAVA数据库编程CH-04_SQL高级(二)

BCSP-玄子JAVA开发之JAVA数据库编程CH-04_SQL高级(二)

4.1 IN

4.1.1 IN 子查询

  • 如果子查询的结果为多个值,就会导致代码报错
  • 解决方案就是使用 IN 关键字,将 = 替换成 IN
SELECT …… FROM 表名 WHERE 字段名  IN (子查询);

4.1.2 NOT IN 子查询

  • in 一样,查询结果有多条使用

  • 获取的值是不包含在查询结果里面的值

SELECT …… FROM 表名 WHERE 字段名 NOT IN (子查询);

4.2 EXISTS

4.2.1 检测表创建

DROP TABLE IF EXISTS temp;
CREATE TABLE log (… … #省略建表语句
) ;

4.2.2 EXISTS 子查询

  • 子查询有返回结果: EXISTS子查询结果为TRUE
  • 子查询无返回结果: EXISTS子查询结果为FALSE,外层查询不执行
SELECT …… FROM 表名 WHERE  EXISTS (子查询);

4.2.3 NOT EXIST 子查询

  • 与 EXISTS 子查询相反
  • 子查询有返回结果: NOT EXIST子查询结果为 FALSE
  • 子查询无返回结果: NOT EXIST子查询结果为 TRUE,外层查询执行

4.3 子查询小结

当一个查询是另一个查询的条件时,称之为子查询

  • 任何允许使用表达式的地方都可以使用子查询

  • 嵌套在父查询SELECT语句的子查询,可包括

    • SELECT 子句

    • SELECT (子查询) [AS 列别名] FROM 表名;
      
    • FROM 子句

    • SELECT * FROM (子查询)  AS 表别名;
      
    • WHERE 子句

    • GROUP BY 子句

    • HAVING 子句

4.4 子查询注意事项

通常,将子查询放在比较条件的右边以增加可读性

子查询可以返回单行或多行数据,此时要选择合适的关键字

  • 子查询的返回是单行数据时,比较条件中可以使用比较运算符

  • 子查询的返回是多行数据时,比较条件中需要使用IN或NOT IN关键字

  • 如果判断子查询是否有数据返回时,需要使用EXISTS或NOT EXISTS关键字

只出现在子查询中、而没有出现在父查询中的列不能包含在输出列中


BCSP-玄子JAVA开发之JAVA数据库编程CH-04_SQL高级(二)

http://www.lryc.cn/news/40165.html

相关文章:

  • 学习java——②面向对象的三大特征
  • 初阶数据结构 - 【单链表】
  • 第五周作业、第一次作业(1.5个小时)、练习一
  • 【正点原子FPGA连载】 第三十三章基于lwip的tftp server实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
  • 蓝桥冲刺31天之316
  • 说一个通俗易懂的PLC工程师岗位要求
  • 今年还能学java么?
  • ajax学习1
  • 一题多解-八数码(万字长文)
  • 九种跨域方式实现原理(完整版)
  • fighting
  • 网络安全日志监控管理
  • 线程池的使用:如何写出高效的多线程程序?
  • React 架构流程概览
  • 【Linux】进程管理之kill、killall、pkill
  • LSTM从入门到精通(形象的图解,详细的代码和注释,完美的数学推导过程)
  • 19.特殊工具与技术
  • 518. 零钱兑换 II ——【Leetcode每日一题】
  • django DRF请求访问频率限制
  • 二分查找创新性总结
  • Java Web 实战 13 - 多线程进阶之 synchronized 原理以及 JUC 问题
  • 【解决】elementui ——tooltip提示在循环中点击一个,同时显示多个的问题!
  • SpringBoot-核心技术篇
  • 2023还有人不知道kubernetes?| 初步理解kubernetes
  • Docker 环境搭建
  • css实现炫酷充电动画
  • 【Effective C++详细总结】第二章 构造/析构/赋值运算
  • webpack基础
  • jQuery《一篇搞定》
  • Spring Cloud学习笔记【负载均衡-Ribbon】