SQL 整形
1 本の文もスクリプト全体もワンクリック整形 · 18 種類のデータベース方言 · キーワードの大小文字とインデント調整可
格式化选项
输入 SQL
格式化结果
这个工具做什么、不做什么
只调整排版,不改语义。格式化只改空白、换行与关键字大小写:字符串字面量与注释里的内容一个字符都不动,不重命名标识符、不增删括号、不合并或拆分语句。因此格式化后的 SQL 与原 SQL 的语义一致(可用「去掉多余空白」再对比验证)。
不会修复语法错误。SQL 本身写错时(少了右括号、引号没闭合、关键字拼错),格式化会直接失败并给出「第几行第几列附近」的位置,而不是猜你的意思去补全。报错信息来自 sql-formatter 的解析器,本页把它整理成中文位置提示。
「去掉多余空白」不是压缩器。它把字符串与注释之外的连续空白压成一个空格(可选移除注释),不缩短标识符、不去括号、不做任何语法级压缩。字符串里的空格、注释里的换行都原样保留;勾选「移除注释」才会删除注释。
方言影响关键字识别与引号/注释规则。本页基于 sql-formatter 15.4.11,可选 18 种方言(另有 transactsql 的别名 tsql 未单列)。选错一般不会报错,但排版可能与预期不同(例如把 PostgreSQL 的 :: 类型转换当成普通符号);拿不准就用「标准 SQL」。
よくある質問
構文レベルの書き換えはしません。整形は空白・改行・キーワードの大小だけ調整:識別子のリネームなし、括弧の増減なし、リテラル内容変更なし、文字列とコメント内の空白は一個も動きません。逆に構文エラーの修復もしません——SQL 自体が誤り(閉じ括弧漏れ・引用符未閉鎖)なら、意味を推測して補完せず、行と列位置付きで直接エラーにします。
実測は sql-formatter 15.4.11 ベース、使用可方言 18 種(transactsql の別名 tsql が別途一つ):標準 SQL、MySQL、MariaDB、TiDB、SingleStore、PostgreSQL、Amazon Redshift、SQLite、SQL Server(T-SQL)、Oracle PL/SQL、BigQuery、Snowflake、Spark SQL、Hive、Trino / Presto、IBM Db2、Db2 for i、Couchbase N1QL。方言はキーワード認識・引用符・コメント規則に影響し、選ぶのを間違えても通常エラーにはならないが組版が想定と変わる(PostgreSQL の型変換ダブルコロンがただの記号扱いになる等)。迷ったら「標準 SQL」で。
違います。ことを一つだけ:文字列リテラルとコメントの外にある連続空白(スペース・改行・タブ)を一空白に詰めるだけで、コメント除去は任意選択;識別子を短縮せず、括弧を外さず、構文レベルの圧縮を一切しません。なので体積は少ししか減らず——「SQL 一片を急ぎ一行に詰める」組版作業と思ってください、SQL 圧縮や難読化ツールではありません。文字列内の複数空白は保持;コメントは既定でそのまま(ブロックコメント内の改行も保持)、「コメント除去」にチェックを入れて初めて消えます。
されません。語彙解析・整形・空白除去すべてブラウザ内で完結(**sql-formatter は自己ホストスクリプトで CDN 経由しない**)、SQL もテーブル名も端末の外に出ず、ページ更新で消え、送信リクエストは一切無し。1 回上限 20 万文字;1000 行超は時間かかる旨の案内が出ますが、実測では万行級スクリプトはたいてい一、二秒で完了します。