SQL Formatter is a JavaScript library for pretty-printing SQL queries. It started as a port of a PHP Library, but has since considerably diverged.
SQL formatter supports the following dialects:
It does not support:
;
.â Try the demo.
InstallGet the latest version from NPM:
npm install sql-formatterUsage as library
import { format } from 'sql-formatter'; console.log(format('SELECT * FROM tbl'));
This will output:
You can also pass in configuration options:
format('SELECT * FROM tbl', { language: 'spark', // Defaults to "sql" (see the above list of supported dialects) indent: ' ', // Defaults to two spaces uppercase: bool, // Defaults to false (not safe to use when SQL dialect has case-sensitive identifiers) linesBetweenQueries: 2, // Defaults to 1, indentQuerySeparator: true, // Defaults to false });Placeholders replacement
// Named placeholders format("SELECT * FROM tbl WHERE foo = @foo", { params: {foo: "'bar'"} })); // Indexed placeholders format("SELECT * FROM tbl WHERE foo = ?", { params: ["'bar'"] }));
Both result in:
SELECT
*
FROM
tbl
WHERE
foo = 'bar'
Usage from command line
The CLI tool will be installed under sql-formatter
and may be invoked via npx sql-formatter
:
usage: sql-formatter [-h] [-o OUTPUT] [-l {db2,mariadb,mysql,n1ql,plsql,postgresql,redshift,spark,sql,tsql}]
[-i N | -t] [-u] [--lines-between-queries N] [--version] [FILE]
SQL Formatter
positional arguments:
FILE Input SQL file (defaults to stdin)
optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
File to write SQL output (defaults to stdout)
-l {db2,mariadb,mysql,n1ql,plsql,postgresql,redshift,spark,sql,tsql},
--language {db2,mariadb,mysql,n1ql,plsql,postgresql,redshift,spark,sql,tsql}
SQL Formatter dialect (defaults to basic sql)
-i N, --indent N Number of spaces to indent query blocks (defaults to 2)
-t, --tab-indent Indent query blocks with tabs instead of spaces
-u, --uppercase Capitalize language keywords
--lines-between-queries N
How many newlines to insert between queries (separated by ";")
--version show program's version number and exit
By default, the tool takes queries from stdin and processes them to stdout but one can also name an input file name or use the --output
option.
echo 'select * from tbl where id = 3' | sql-formatter -u
SELECT * FROM tbl WHERE id = 3Usage without NPM
If you don't use a module bundler, clone the repository, run npm install
and grab a file from /dist
directory to use inside a <script>
tag. This makes SQL Formatter available as a global variable window.sqlFormatter
.
Make sure to run all checks:
...and you're ready to poke us with a pull request.
LicenseRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4