首页 > 数据库 >阅读长SQL小技巧

阅读长SQL小技巧

时间:2023-09-23 10:12:16浏览次数:39  
标签:语句 表做 技巧 关联 阅读 SQL 我们 运行

在开发的过程中,最令我印象深刻的就是在做报表任务的时候,需要去查看长SQL,理解里面的逻辑,找出错误并修改。

在做 “数据管理-统计分析-福利机构基本情况统计,配置信息tab”报表时,需要对四张表做关联表操作,机构表和工作人员表相关联(一对多),机构表和床位表做关联(一对多),最后需要和行政区划表做关联(一对一)。

SQL很长,不容易理解,那我们就可以把这个长SQL拆分成一段段比较短的SQL,一段一段去理解它。

 

解决秘籍:

  1. 找:找字段。因为SQL本来就是写好的,所以我们需要找准目标,即根据缺陷描述快速定位到是哪个字段出现了问题。
  2. 拆:拆语句。从分析长SQL转变为分析短SQL。既然我们知道哪个字段有问题,那么我们就可以快速定位到哪段SQL语句有问题了,专门去分析该语句就可以了。可以选中该短SQL语句,运行它,看看符不符合我们的预期(一般是不符合的),然后再看看SQL实现的细节。
  3. 查。查结果。从里到外的运行SQL语句,先运行出现问题的字段相关联的语句,然后不断的往外扩,运行更大的SQL语句,查看运行结果是否符合我们的预期。

标签:语句,表做,技巧,关联,阅读,SQL,我们,运行
From: https://www.cnblogs.com/galo/p/17723937.html

相关文章

  • MySQL自动递增列的原理
    前言MySQL是一款非常流行的关系型数据库,其中自动递增列是常用的一种数据类型。本文将深入探讨MySQL自动递增列的原理。自动递增列的定义自动递增列是一种特殊的数据类型,它可以自动为每一行记录生成一个唯一的、递增的值。在MySQL中,自动递增列通常与主键一起使用,以确保每一行记录......
  • 漏洞修复系列-如何升级linux系统Upgrade to PostgreSQL JDBC Driver version 42.2.27,
    问题遇到一个PostgreSQLJDBCDriver漏洞PostgreSQLJDBCDriverthatis42.2.xpriorto42.2.27,42.3.xpriorto42.3.8,42.4.xpriorto42.4.3or42.5.xpriorto42.5.1.Itis,therefore,affectedbyaninformationdisclosurevulnerability.原因PostgreSQLJD......
  • Mybatis 批量插入报ORA-00933: SQL 命令未正确结束
    MySQL中,批量插入数据到表,会在一定程度提高效率。insertintotable(column1,column2)values(value1,value2),(value1,value2)对于List<Map<String,Object>>类型的参数,使用mybatis实现上面语句需要用到动态SQL–foreach。<insertid="batchInsert"> insertinto${table_na......
  • MySQL 出现 String Index out of range: x 的原因
    前言调试代码时遇到一个很奇怪的问题,对于一个很简单的sql,执行时会时不时的报异常StringIndexoutofrange:xSQL:select*fromtestwherearea=10但直接把SQL丢SQL工具里跑又没什么问题,百度了一圈都没找到有人有相同问题,明白后特地做下记录.原因由于要......
  • Mysql简单的学习记录(上)
    MySql一、DDL(操作数据库、数据表)创建数据库createdatabase数据库名称查询数据库showdatabasescreatedatabaseifnotexists数据库名称删除数据库dropdatabase数据库名称dropdatabaseifexists数据库名称使用数据库selectdatabase......
  • Mysql简单的学习记录(下)
    一、约束概念作用于列上的规则,用于限制加入表的数据保证数据库正确性、有效性、完整性约束的分类约束名称描述关键字非空保证列中所有数据不为nullnotnull唯一保证列中所有数据不相同unique主键主键是一行数据唯一标识,非空且唯一primarykey......
  • 中小型 MySQL,如何判断是否需要读写分离?
    在中小型MySQL数据库中是否需要实施读写分离取决于多个因素,包括数据库的负载、性能需求、可用性要求和预算等。以下是一些判断是否需要读写分离的考虑因素:负载均衡:如果您的数据库服务器经常处于高负载状态,主要是因为读和写操作同时进行,那么考虑使用读写分离来分担负载是有意义的。......
  • DBeaver中使用MySQL在建表时使用DROP TABLE IF EXISTS `tbl_book`;报错
    点击查看代码DROPTABLEIFEXISTS`tbl_book`;CREATETABLE`tbl_book`(`id`int(11)NOTNULLAUTO_INCREMENT,`type`varchar(20)DEFAULTNULL,`name`varchar(50)DEFAULTNULL,`description`varchar(255)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=Inn......
  • PostgreSQL集群解决方案与流复制项目实战
    一、风哥PG-DBA培训15:PostgreSQL集群解决方案与流复制项目实战课程目标:本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL主从复制与高可用集群阶段之PostgreSQL集群解决方案与流复制项目实战,学完本课程可以掌握PostgreSQL集群与高可用架构解决方案,Postgre......
  • PostgreSQL负载均衡分发与双主HA架构
    一、风哥PG-DBA培训16:PostgreSQL负载均衡分发与双主HA架构本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL主从复制与高可用集群阶段之PostgreSQL负载均衡分发与双主HA架构,学完本课程可以掌握PostgreSQL高可用负载均衡解决方案,PostgreSQL+Keepalived流复......