DBeaver更好的外部格式化程序sqlparse

DBeaver中使用外部格式化程序对进行sql格式化 本文介绍了如何在DBeaver中使用pgFormatter、sqlprase、sqlformatter等外部格式化程序对sql进行格式化 阅读详情
AI摘要

本文介绍了如何使用DBeaver时替换其默认的SQL格式化功能,通过Python库sqlparse实现自定义格式化,包括参数解释和具体设置步骤,以及如何在DBeaver中应用外部格式化程序。,

DBeaver自带的默认格式化和紧凑格式化对我来说太简陋了,于是折腾一下外部格式化程序。网上一搜有python版的,那就直接搞起。

先来看下效果

UPDATE TABLE1
   SET A=2
 WHERE A=1 SELECT TABLE1.ID,
       TABLE2.NUMBER,
       SUM(TABLE1.AMOUNT)
  FROM TABLE1
 INNER JOIN TABLE2
    ON TABLE1.ID = TABLE2.TABLE1_ID
 WHERE TABLE1.ID IN (
        SELECT TABLE1_ID
          FROM TABLE3
         WHERE TABLE3.NAME = 'Foo Bar'
           AND TABLE3.TYPE = 'unknown_type'
       )
 GROUP BY TABLE1.ID,
          TABLE2.NUMBER
 ORDER BY TABLE1.ID;

准备

首先需要安装python和模块sqlparse

pip install sqlparse

新建一个py文件

拷贝以下内容

import sys
import sqlparse
import io

def sql_formatter(sql):
    res = sqlparse.format(
        sql,
        keyword_case="upper",
        identifier_case="upper",
        truncate_strings=100,
        reindent_aligned=True,
        comma_first=False,
        wrap_after=60,
    )
    return res

if __name__ == "__main__":
    filepath = sys.argv[1]
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
    with open(filepath, "r", encoding="utf-8") as f:
        read_sql = f.read()
        for sql in read_sql.split(";"):
            s = sql.replace("\n", " ").strip()
            if len(s) != 0:
                s = sql_formatter(s) + ";\n"
                print(s)

自定义格式

sqlparse.format函数的参数说明:

参数含义
keyword_case改变关键字的格式化方式。允许的值有 “upper”、“lower” 和 “capitalize”
identifier_case改变标识符的格式化方式。允许的值有 “upper”、“lower” 和 “capitalize”。
strip_comments若为 True,则从语句中删除注释。
truncate_strings若 truncate_strings 为正整数,则会将超过给定值长度的字符串截断。
truncate_char(默认值: “[…]”)若字符串被截断(参见上述 truncate_strings),则此值将追加到被截断的字符串上。
reindent若为 True,则会更改语句的缩进。
reindent_aligned若为 True,则会更改语句的缩进,并通过关键字对齐语句。
use_space_around_operators若为 True,则在所有操作符周围使用空格。
indent_tabs若为 True,则使用制表符代替空格进行缩进。
indent_width缩进的宽度,默认为 2。
wrap_after用于换行逗号分隔列表的列限制(以字符计)。如果未指定,则每个项目都放在单独的行上。
output_format若指定了此值,则输出还将格式化为在编程语言中使用的变量。允许的值有 “python” 和 “php”。
comma_first若为 True,则使用逗号优先的方式表示列名。

参考原文链接:https://blog.youkuaiyun.com/szial/article/details/131964131

DBever设置

打开DBever,导航至 窗口-首选项-编辑器-SQL编辑器-SQL格式化,格式选外部格式化程序,命令行按照自己py文件的路径填写为python D:/PythonCode/sqlformat.py ${file},勾选使用临时文件,点应用就可以看到下面输出的效果了。
在这里插入图片描述

使用

在sql编辑器中右键-格式-格式化SQL,或者直接Ctrl-Shft-F即可格式化SQL。

DBeaver集成外部SQL格式化工具:提升代码规范性的实战指南 本文详细介绍了如何在DBeaver中集成外部SQL格式化工具以提升代码规范性。通过实战指南,重点讲解了集成pgFormatter、sqlparse和sql-formatter三大主流工具的具体步骤与配置技巧,帮助开发者根据团队规范定制格式化规则,从而一键生成整洁、统一的高质量SQL代码,显著提升开发效率和协作体验。 阅读详情

相关推荐

达梦Oracle数据库自动化生成InsertOrUpdate函数模板实践

在数据库开发与数据迁移领域,SQL自动化生成是提升开发效率的关键技术。其核心原理是通过程序读取数据库元数据(如表结构、字段信息),结合模板引擎动态生成标准化的SQL代码,从而将开发者从重复性劳动中解放出来。这项技术的价值在于显著减少手动编写CRUD操作代码的错误率,并确保代码风格的一致性。在数据同步、批量ETL处理及日常数据库维护等场景中尤为实用。本文聚焦于达梦与Oracle数据库环境,深入探讨如何构建一个能够自动生成InsertOrUpdate(Upsert)函数模板的代码生成器,并详细解析了基于MERG

weixin_30291791的博客 315

DBeaver如何快速格式化sql语句,真简单!

我之前在使用DBeaver的时候,一直不知道其可以格式化sql语句,导致sql语句看起来比较杂乱,今天就来介绍下DBeaver如何格式化sql语句。首先,我们打开一个sql窗口,在里面输入我们要查询的sql语句,如图所示。可以看到,此时sql语句是比较杂乱的。最后,就可以看到,我们的sql语句已经格式化好了。相比于之前的sql语句,此sql已经变的更美观了。然后,我们鼠标右击,选择格式选项,再点击下格式化SQL选项。以上就是我们在DBeaver里面格式化sql的操作方法。如何格式化sql语句。

会编程的蜗牛的博客 2021

PLSQL、DBeaver、Notepad++常用快捷键

【代码】PLSQL、DBeaver、Notepad++常用快捷键。

qq_43605229的博客 6457

DBeaver SQL format 第三方插件方案

DBeaver SQL formater; SQL格式化; 第三方格式化工具

Hongyu_Zhou的博客 1万+

DBeaver常用快捷键

DBeaver常用快捷键

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 3978

23.7.27.debeaver 美化sql语句

debeaver 新建sql查询 这个debeaver就是直接点击最上方一行的“sql编辑器”选项,点击新建sql编辑就可以跟navicat一样使用sql语言增删改查了。

weixin_43613968的博客 4501

DBeaver 更好的SQL格式化配置

导航至窗口-首选项-编辑器-SQL编辑器-SQL格式化,格式选外部格式化程序,命令行按照自己py文件的路径填写为python D:/PythonCode/sqlformat.py ${file},勾选使用临时文件,点应用就可以看到下面输出的效果了。to PATH(把 Python 加入系统环境变量,否则命令行用不了)开命令提示符,输出版本号(如 Python 3.11.9),说明安装成功。安装完 Python 后,直接在 cmd 里输入。下载完成后,双击运行.exe 安装包。

其实我是个程序员的博客 372

DBeaver sql格式化V1.4

DBeaver sql格式化V1.4

DBeaver 格式化sql

有时候我们拿到了一条sql语句是长长的,非常不容易阅读,这时我们就想说哪里可以格式下sql代码。 方法有很多种,这里我就用Dbeaver来格式化sql。 ①打开Dbeaver ②复制sql代码到SQL编辑器中,并选中 ③按ctrl+shift+F,即可(或者在菜单栏“编辑“”中找到“格式化SQL”) ...

基咯咯 3万+

修改dbeaver的sql格式化功能,IndentFormatter改后代码

修改dbeaver的sql格式化功能,IndentFormatter改后代码

CodeBlocks如何将英文环境改为中文

一、下载汉化包(链接如下) 链接:https://pan.baidu.com/s/166U9WGPbJXu2hyD7q9EiJQ 提取码:2333 二、选择路径 将汉化包中的文件(CodeBlocks.mo、zh_CN.mo、zh_CN.po)放到CodeBlocks安装路径下的​​​​​​CodeBlocks/share/CodeBlocks/locale/zh_CN文件夹中,路径中的文件夹没有就新建。 注:此处需严格按照要求来,切勿自定义文件夹名 三、内部调试 打开CodeBlocks,..

云隐雾匿的博客 2万+

DBeaver部分操作指南(数据库连接,构造ERD图,格式化SQL)

使用DBeaver来连接到数据库,使用DBeaver构造ERD图,DBeaver格式化SQL

m0_64196863的博客 4048

Unity海康视屏对接

通过对接海康SDK,获取视屏流回调。经过解码得到YUV格式的图片,最后通过Shader把YUV数据显示出来。也可以通过Rtsp协议,直接获取视屏流显示。这个貌似Unity中已经有插件支持了,UMP。------2018.4.20using UnityEngine;using System.Collections;using System;using UnityEngine.UI;using Sys...

Witness_K的博客 2028

DBeaver快捷键

DBeaver是需要java语言支持的一款数据库软件。(需要大家有JDK的环境)dbeaver是免费和开源(GPL)为开发人员和数据库管理员通用数据库工具。免费、跨平台、基于开源框架和允许各种扩展写作(插件)。它支持任何具有一个JDBC驱动程序数据库,可以处理任何的外部数据源。

malinaZM的博客 2719

ADK 第一篇 Google Agent Development Kit 简介

是一个灵活且模块化的框架,专为开发和部署AI智能体而设计。虽然ADK针对Gemini和Google生态系统进行了优化,但它与模型无关、与部署环境无关,并兼容其他框架。ADK的核心理念是让智能体开发更接近传统软件开发模式,从而帮助开发者更轻松地构建、部署和编排智能体架构——无论是处理简单任务,还是管理复杂工作流。:利用预置工具、自定义函数、OpenAPI规范或集成现有工具,赋予智能体多样化能力,实现与谷歌生态系统的深度整合。

2501_90353350的博客 3042

SAP ABAP ALV表格实战:5分钟搞定单元格下拉框配置(附完整代码)

本文详细介绍了在SAP ABAP开发中如何快速配置ALV表格的单元格下拉框功能,通过5分钟实战教程帮助开发者掌握关键步骤。文章包含完整的ABAP代码示例,涵盖下拉值定义、字段目录配置及ALV控件绑定等核心操作,特别适合需要实现财务系统费用类型选择或采购系统物料分类等场景的开发者参考。

weixin_28331555的博客 108

DBeaver如何将格式化后的sql复制为1行

选中代码,右键复制为源代码

cjy1575944940的博客 2316

Cisco 路由器 打环测试教程

环 回测试是很常用的一种测试,通常用于检查和分析端口或线路问题。如下图所示,我们在设备端口上用命令loopback(某些端口上命令格式为 loopback diagnostic)使接口从内部将自己发送的信号转接到自己的接收端(如红线所示),通过检查数据发送和接收的情况来判断端口工作状态是否正常。如果 需要对端口进行完全的检测,可以使用符合标准的短跳线将端口收发短接构成环...

weixin_34304013的博客 2024

DBeaver 常用操作

DBeaver 常用操作,包含常用快捷键、SQL模板xml文件、数据库导航显示表名 (推荐)、表数据的标题栏中显示中文注释 (推荐)

我可能在扯淡 2万+

第0章 《机器人工程师带你入门SLAM》专栏所有文章目录汇总(截止目前115篇文章),方便大家查看阅读

《机器人工程师带你入门SLAM》专栏文章汇总:优快云热销专栏已更新100+篇优质内容,涵盖SLAM技术全栈知识体系。文章分为三大类:1)基础工具与环境配置,包括Ubuntu、Git等必备技能;2)C++编程从入门到进阶,详解变量、类、模板等核心概念;3)SLAM核心库实战,深入解析ROS、Eigen、PCL等关键库的应用。专栏提供从计算机基础到项目实战的系统学习路径,并附代码实例。点击专栏主页可订阅查看全部内容,后续将保持更新。

行知SLAM 1066

手把手教你学simulink(41.4)--逆变器电场景示例:基于Simulink的主从控制的多逆变器协同控制(Multi-Inverter Coordinated Control)

需求分析在现代电力系统中,分布式发电和储能系统的广泛应用使得多个逆变器并联运行成为常见的应用场景。为了确保多个逆变器之间的协同工作,实现系统的稳定性和高效性,通常采用主从控制(Master-Slave Control)策略。主从控制通过一个主控制器(Master)来协调多个从控制器(Slave),确保所有逆变器的输出电压、频率和功率分配符合预期目标。本项目将基于Simulink平台,开发一个多逆变器协同控制系统,采用主从控制策略,实现对多个逆变器的精确控制和优化。

MHD0815的博客 305

NEW日常小记之DBeaver简单使用操作

DBeaver

liujiaping的专栏 1万+

Android系统开发工程师面试指南与参考答案

本文整理了Android系统开发工程师面试常见问题与参考答案。核心内容涵盖:1)Framework层定制方法,如修改HAL和系统服务;2)ANR问题分析工具(systrace)与解决方案;3)性能优化实践,包括开机加速和功耗管理;4)四大组件工作机制与应用案例;5)Native崩溃调试技巧。文章强调通过AOSP源码研究、工具使用和项目案例准备来提升面试表现,重点考察应聘者的系统开发深度和实操能力。参考答案均基于实际开发经验,提供可量化的优化成果说明。

郑伟强dev的专栏 255

【DBeaver】常用自定义设置

数据库管理工具 DBeaver 22.3.4版本、23.0.0版本、字体设置、常用设置 等

柒杯红酒 4万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

DBeaver查询结果集条件格式化规则:创建与共享格式化方案

你是否还在为不同数据库查询结果的日期格式混乱、数字显示不一致而烦恼?是否希望将查询结果一键转换为符合业务需求的格式并分享给团队?本文将详细介绍如何在DBeaver中创建、应用和共享自定义数据格式化方案,让数据展示更专业、协作更高效。 ## 数据格式化基础:从源码看实现原理 DBeaver的数据格式化功能核心由`DataFormatterProfile`类实现,位于[plugins/org.jk...

gitblog_00069的博客 771

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

DBeaver 常用快捷键

Ctrl +shift+F 对sql格式化(美化)(若是觉得当前的格式不美观,想设置为其他的,可以选择窗口—首选项—Editors—SQL编辑器--SQL格式化—可以选择不同的格式)Ctrl +shift+X 将选定的sql转化成大写字母。Ctrl +shift+Y 将选定的sql转化成小写字母。Ctrl +shift+↑ 将当前行向上移动一行。Ctrl +shift+↓ 将当前行向下移动一行。Ctrl +shift+E 执行计划。Ctrl +shift+/ 块注释。Ctrl+enter 执行sql。

weixin_69200200的博客 6896

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: Qt Failed to retrieve MSVC Environment问题排查
风沐流萤
博客等级 码龄14年 31粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值