【解决问题】——Oracle 在使用and or时需要注意

简介: 【解决问题】——Oracle 在使用and or时需要注意

在一次项目的开发过程中,涉及到多张表的联合查询,代码在本地自测的时候并出现锁表的情况,把sql单独抽出来,仔细排查,发现在sql中and or 同时使用的时候,忘记了加括号导致的,导致查询的数据量剧增,导致锁表。

当我们同时使用and、or关键字的时候,需要注意:

  • 两者一起使用的时候,and 的优先级高于or

示例:

select * from emp where sal < 1500 or sal >= 2000 and job = 'analyst';

上述等价于:

select * from emp where sal < 1500 or (sal >= 2000 and job = 'analyst');

而不是我们所预期的:

select * from emp where (sal < 1500 or sal >= 2000) and job = 'analyst';

相关文章
|
Oracle 关系型数据库 数据库
oracle日期加减的三种方式
【8月更文挑战第15天】在Oracle数据库中,可通过三种方式对日期进行加减操作:一是利用`ADD_MONTHS`函数增减月份,如`ADD_MONTHS(SYSDATE, 2)`表示两个月后;二是运用算术运算符直接加减天数,如`SYSDATE + 7`表示七天后;三是采用`INTERVAL`表达式增加或减少特定时间间隔,如`SYSDATE + INTERVAL &#39;2&#39; YEAR`表示两年后。这些方法可根据实际需求灵活选用。
4435 5
|
10月前
|
机器学习/深度学习 存储 自动驾驶
《深度Q网络优化:突破高维连续状态空间的束缚》
深度Q网络(DQN)结合了深度学习与强化学习,解决了高维状态空间下Q表的存储和计算难题。然而,在高维连续状态空间中,DQN面临训练不稳定、收敛慢等问题。优化策略包括改进神经网络结构(如使用CNN、RNN或Transformer)、引入注意力机制、采用优先经验回放(PER)及调整目标网络更新策略等。这些方法提高了DQN在自动驾驶、机器人操作等复杂任务中的性能,未来有望在更多领域取得突破。
310 16
|
监控 大数据 Java
使用Apache Flink进行大数据实时流处理
Apache Flink是开源流处理框架,擅长低延迟、高吞吐量实时数据流处理。本文深入解析Flink的核心概念、架构(包括客户端、作业管理器、任务管理器和数据源/接收器)和事件时间、窗口、状态管理等特性。通过实战代码展示Flink在词频统计中的应用,讨论其实战挑战与优化。Flink作为大数据处理的关键组件,将持续影响实时处理领域。
2243 5
|
10月前
|
缓存 Java 关系型数据库
springboot事务-失效的情况
本文总结了常见的事务失效情况及解决方法,主要包括: 1. **事务注解失效**:`@Transaction`必须作用于`public`方法,且需被Spring容器管理。 2. **数据库引擎问题**:MyISAM不支持事务,应使用InnoDB。 3. **异常处理不当**:异常被捕获未抛出或不在默认捕获范围内。 4. **传播行为设置**:如设置为`Propagation.NOT_SUPPORTED`或`Propagation.REQUIRES_NEW`可能导致事务失效。 5. **类内方法调用**:同一类中方法调用导致事务失效,需通过代理类或其他方式解决。
441 0
|
存储 SQL 数据库
触发器的设计、掌握存储过程的基本概念和创建、执行、删除方法。掌握数据库备份的方法和数据库恢复的方法。
这篇文章介绍了数据库中触发器的设计概念,包括创建、修改、删除触发器的方法,并通过实验内容教授如何使用SQL命令创建DML触发器以及如何利用触发器实现数据的完整性和自动化处理。
触发器的设计、掌握存储过程的基本概念和创建、执行、删除方法。掌握数据库备份的方法和数据库恢复的方法。
异步&线程池 CompletableFuture 异步编排 【下篇】
这篇文章深入探讨了Java中的`CompletableFuture`类,解释了如何创建异步操作、使用计算完成时的回调方法、异常处理、串行化方法、任务组合以及多任务组合的使用方式,并通过代码示例展示了各种场景下的应用。
异步&线程池 CompletableFuture 异步编排 【下篇】
|
前端开发 easyexcel Java
springboot使用EasyExcel导入数据(获取行号)
springboot使用EasyExcel导入数据(获取行号)
1544 1
|
存储 SQL 数据可视化
EMR Serverless StarRocks 5000CU*时免费试用——体验极致性能和全面 OLAP 分析
EMR Serverless StarRocks 5000CU*H 计算资源,48000GB*H存储资源免费试用进行中,提供极致的性能和丰富的 OLAP 场景模型,包括 OLAP 多维分析、数据湖分析、高并发查询以及实时数据分析,快来体验吧!
1818 0
EMR Serverless StarRocks 5000CU*时免费试用——体验极致性能和全面 OLAP 分析
|
关系型数据库 MySQL
mysql日期和字符串相互转换方法
mysql日期和字符串相互转换方法
|
Linux 数据库 数据安全/隐私保护
Linux基础命令---sendmail发送邮件
sendmail sendmail是postfix中的一个发送邮件的代理程序,它负责发送邮件到远程服务器,并且可以接收邮件。sendmail在发送邮件的时候,默认从标砖输入读取内容,以“.”为结束。
7345 1

热门文章

最新文章