格式化SQL工具pg_prettify

pg_prettify 命令行工具,用于格式化(美化)SQL 查询语句。以下是内容总结:


一、工具背景

  • 作者在一个月前开发了一个 SQL 查询"美化器"(pretty-printer)。
  • 本次为其添加了命令行界面,方便日常使用。

二、工具信息


三、使用示例

1. 原始 SQL(未格式化):
sql 复制代码
SELECT n.nspname as "Schema", p.proname as "Name",
pg_catalog.pg_get_function_result(p.oid) as "Result data type",
pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types", CASE
p.prokind WHEN 'a' THEN 'agg' WHEN 'w' THEN 'window' WHEN 'p' THEN 'proc'
ELSE 'func' END as "Type" FROM pg_catalog.pg_proc p LEFT JOIN
pg_catalog.pg_namespace n ON n.oid = p.pronamespace WHERE
pg_catalog.pg_function_is_visible(p.oid) AND n.nspname <> 'pg_catalog' AND
n.nspname <> 'information_schema' ORDER BY 1, 2, 4;
2. 使用 pg_prettify 格式化后:
sql 复制代码
SELECT
    n.nspname AS "Schema",
    p.proname AS "Name",
    pg_catalog.pg_get_function_result( p.oid ) AS "Result data type",
    pg_catalog.pg_get_function_arguments( p.oid ) AS "Argument data types",
    CASE p.prokind
        WHEN 'a' THEN 'agg'
        WHEN 'w' THEN 'window'
        WHEN 'p' THEN 'proc'
        ELSE 'func'
    END AS "Type"
FROM
    pg_catalog.pg_proc AS p
    LEFT JOIN pg_catalog.pg_namespace AS n ON n.oid = p.pronamespace
WHERE
    pg_catalog.pg_function_is_visible( p.oid ) AND
    n.nspname <> 'pg_catalog' AND
    n.nspname <> 'information_schema'
ORDER BY
    1,
    2,
    4;
-- Formatted by Pg::SQL::PrettyPrinter

四、命令行选项

bash 复制代码
$ pg_prettify -h
Syntax:
    pg_prettify [-s] [-u URL] [-p PARAM_NAME] < input.file
or
    pg_prettify [-s] [-u URL] [-p PARAM_NAME] input.file

Options:
    -s - 移除格式化工具的注释(即不显示"Formatted by ...")
    -u - 指定美化服务的URL,默认为 https://paste.depesz.com/prettify
    -p - 指定HTTP参数名称,默认为 q

五、总结

该工具能够将杂乱或压缩的 SQL 语句自动格式化为结构清晰、易读的样式,支持通过命令行直接使用或配合文件输入,并提供了简单的自定义选项。适用于需要频繁查看或分享 SQL 代码的开发者和数据库管理员。

相关推荐
其实防守也摸鱼3 分钟前
Codex 下载与本地部署实战指南
linux·服务器·前端·数据库·算法·ai
2603_9547083111 分钟前
如何进一步优化微能网协调控制箱的架构优势
大数据·数据库·人工智能·分布式·架构
瑶山20 分钟前
stable-diffusion.cpp 参数全集整理(sd-cli.exe / sd-server.exe)
java·数据库·stable diffusion·参数全集
Pocker_Spades_A26 分钟前
一文读懂时序数据库:2026 主流产品全景与六大场景选型(1)
数据库·时序数据库
oradh29 分钟前
Oracle 物化视图维护总结(原理+用途+案例)
数据库·oracle
RuoyiOffice31 分钟前
达梦 DM8、openGauss、人大金仓怎么选?RuoYi Office 国产数据库适配与验收指南
java·数据库·spring boot·架构·信创
星恒讯工业路由器1 小时前
工业网络设备选型:导轨式、机架式与车载式的部署差异
开发语言·网络·数据库·php·工业路由器·导轨式·车载式
wespaul4 小时前
VeapAI 自然语言操作实战|第 05 篇:向量与召回——从知识条目到可检索资产
大数据·数据库·人工智能·milvus
一只鹿鹿鹿9 小时前
政务外网整体设计方案(PPT)
大数据·数据库·web安全·系统安全·流程图·政务
2603_965148119 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘