usql is a universal command-line interface for working with SQL databases.

usql provides a universal command-line interface for the following databases: PostgreSQL, MySQL, Oracle, SQLite, and Microsoft SQL Server.

The goal is to eventually have usql be a drop in replacement for PostgreSQL’s psql command, with all the bells/whistles, but with the added benefit of working with more than one database.

Installing

Install in the usual Go way:

# install usql
$ go get -u github.com/knq/usql

# install with oracle support
$ go get -u -tags oracle github.com/knq/usqlCopy the code

Example Output

The following is an example of connecting to xo’s booktest example Oracle database, performing a query, and then connecting to the PostgreSQL, MySQL, Microsoft SQL Server, and SQLite3 databases and executing various queries.

Related Projects

TODO

A list of planned / in progress work:

Command Processing + psql compatibility

  • proper command processing (WIP)
    • variable support / interpolation + \prompt, \set, \unset
  • PAGER + EDITOR support
  • the \j* commands (WIP)
  • \watch
  • \errverbose
  • formatting settings (\pset, \a, etc)
  • all \d* commands from psql (WIP, need to finish work extracting introspection code from xo)
  • remaining psql cli parameters

Testing

  • full test suite for databases, doing a minimal set of SELECT, INSERT, UPDATE, DELETE