All Projects → zeroturnaround → Sql Formatter

zeroturnaround / Sql Formatter

Licence: mit
A whitespace formatter for different query languages

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Sql Formatter

Sqlformat
.NET SQL Parser and Formatter Tool and SSMS Plugin
Stars: ✭ 49 (-93.71%)
Mutual labels:  sql, formatter
Spotless
Keep your code spotless
Stars: ✭ 2,285 (+193.32%)
Mutual labels:  sql, formatter
Pp sql
Rails ActiveRecord SQL queries log beautifier
Stars: ✭ 223 (-71.37%)
Mutual labels:  sql, formatter
Baikaldb
BaikalDB, A Distributed HTAP Database.
Stars: ✭ 707 (-9.24%)
Mutual labels:  sql
Nopcommerce
The most popular open-source eCommerce shopping cart solution based on ASP.NET Core
Stars: ✭ 6,827 (+776.38%)
Mutual labels:  sql
Mycat2
MySQL Proxy using Java NIO based on Sharding SQL,Calcite ,simple and fast
Stars: ✭ 750 (-3.72%)
Mutual labels:  sql
Elasticsearch Sql
Use SQL to query Elasticsearch
Stars: ✭ 6,563 (+742.49%)
Mutual labels:  sql
Scriptis
Scriptis is for interactive data analysis with script development(SQL, Pyspark, HiveQL), task submission(Spark, Hive), UDF, function, resource management and intelligent diagnosis.
Stars: ✭ 696 (-10.65%)
Mutual labels:  sql
Eralchemy
Entity Relation Diagrams generation tool
Stars: ✭ 767 (-1.54%)
Mutual labels:  sql
Mit 15 003 Data Science Tools
Study guides for MIT's 15.003 Data Science Tools
Stars: ✭ 743 (-4.62%)
Mutual labels:  sql
Db Dumper
Dump the contents of a database
Stars: ✭ 744 (-4.49%)
Mutual labels:  sql
Nano Sql
Universal database layer for the client, server & mobile devices. It's like Lego for databases.
Stars: ✭ 717 (-7.96%)
Mutual labels:  sql
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 7,712 (+889.99%)
Mutual labels:  sql
Modin
Modin: Speed up your Pandas workflows by changing a single line of code
Stars: ✭ 6,639 (+752.25%)
Mutual labels:  sql
Imguicolortextedit
Colorizing text editor for ImGui
Stars: ✭ 772 (-0.9%)
Mutual labels:  sql
Leantime
Leantime is a lean project management system for innovators. Designed to help you manage your projects from ideation to delivery.
Stars: ✭ 702 (-9.88%)
Mutual labels:  sql
Azuredatastudio
Azure Data Studio is a data management tool that enables working with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
Stars: ✭ 6,605 (+747.88%)
Mutual labels:  sql
Vscode Sqltools
Database management for VSCode
Stars: ✭ 741 (-4.88%)
Mutual labels:  sql
Node Typescript Koa Rest
REST API boilerplate using NodeJS and KOA2, typescript. Logging and JWT as middlewares. TypeORM with class-validator, SQL CRUD. Docker included. Swagger docs, actions CI and valuable README
Stars: ✭ 739 (-5.13%)
Mutual labels:  sql
Prettier Atom
An atom package for the prettier formatter.
Stars: ✭ 750 (-3.72%)
Mutual labels:  formatter

SQL Formatter NPM version Build Status Coverage Status

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:

  • Stored procedures.
  • Changing of the delimiter type to something else than ;.

Try the demo.

Install

Get the latest version from NPM:

npm install sql-formatter

Usage as library

import { format } from 'sql-formatter';

console.log(format('SELECT * FROM tbl'));

This will output:

SELECT
  *
FROM
  tbl

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
});

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:

sql-formatter -h
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 = 3

Usage 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.

Contributing

Make sure to run all checks:

npm run check

...and you're ready to poke us with a pull request.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].