Sqlline
Shell for issuing SQL to relational databases via JDBC
Install / Use
/learn @julianhyde/SqllineREADME
Command-line shell for issuing SQL to relational databases via JDBC.
History
A fork of Marc Prud'hommeaux's sqlline project, also incorporating changes made by the LucidDB project, now modernized, mavenized and forkable in github. See also release history.
License and distribution
SQLLine is distributed under the 3-clause BSD License, meaning that you are free to redistribute, modify, or sell it with almost no restrictions.
It is distributed via the Maven Central Repository.
Demos
Quick start
If you have Coursier installed, you can quickly connect to a demo Hypersonic database with:
$ coursier launch sqlline:sqlline:1.12.0 org.hsqldb:hsqldb:2.5.0 net.hydromatic:foodmart-data-hsqldb:0.4 -M sqlline.SqlLine -- -u jdbc:hsqldb:res:foodmart -n FOODMART -p FOODMART -d org.hsqldb.jdbcDriver
0: jdbc:hsqldb:res:foodmart> select avg("shelf_height" * "shelf_width" * "shelf_depth") as "avg_volume" from "product";
+-------------------------+
| avg_volume |
+-------------------------+
| 2147.3845245442353 |
+-------------------------+
1 row selected (0.01 seconds)
0: jdbc:hsqldb:res:foodmart> !quit
Getting started
Copy the sqlline script (or sqlline.bat for Windows),
sqlline-VERSION-jar-with-dependencies.jar and a JDBC driver jar into
the same directory. (Or just put sqlline on your PATH.)
$ sqlline -d com.mysql.jdbc.Driver
sqlline> !connect jdbc:mysql://localhost:3306/scott user password
sqlline> !tables
+------------+--------------+-------------+---------------+----------+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS |
+------------+--------------+-------------+---------------+----------+
| null | SCOTT | BONUS | TABLE | null |
| null | SCOTT | DEPT | TABLE | null |
| null | SCOTT | EMP | TABLE | null |
| null | SCOTT | SALGRADE | TABLE | null |
| null | metadata | COLUMNS | SYSTEM_TABLE | null |
| null | metadata | TABLES | SYSTEM_TABLE | null |
+------------+--------------+-------------+---------------+----------+
sqlline> SELECT 1 + 2 AS c;
+---+
| C |
+---+
| 3 |
+---+
sqlline> !quit
To get help:
$ sqlline --help
If you prefer, you can invoke Java directly, without using the
sqlline script:
$ java -jar sqlline-VERSION-jar-with-dependencies.jar --help
Connecting using URLs
A URL (or connect string) is a string that specifies the location of your
database, and perhaps credentials and other parameters specific to your
database's JDBC driver. It always starts with 'jdbc:', usually followed by
the machine name of the database and additional parameters.
For example, the following
bash command connects to
Apache Drill, assuming that Drill is installed in
/opt/apache-drill-1.15.0:
$ /opt/apache-drill-1.15.0/bin/sqlline -u "jdbc:drill:drillbit=example.com;auth=kerberos"
Because ';' is a command separator in bash, the URL is included in
double-quotes ('"'). You will need to quote the URL and other arguments if
they contain characters that are special in your shell; different shells have
different special characters, but
space ('<code> </code>'),
dollar ('$'),
single-quote ('''),
bang ('!') and
percent ('%') are some common examples.
Read the manual.
Maven Usage
Use the following definition to use sqlline in your maven project:
<dependency>
<groupId>sqlline</groupId>
<artifactId>sqlline</artifactId>
<version>1.12.0</version>
</dependency>
Building
To build or run SQLLine, you need Java 8 or higher.
(When running on Java 15 and higher, you will need to
set scriptEngine before you use promptscript.)
Check out and build:
git clone git://github.com/julianhyde/sqlline.git
cd sqlline
./mvnw package
Committers
- Arina Ielchiieva
- Jack Hahn
- Joe Posner
- John Pham
- John V. Sichi
- Julian Hyde (PMC)
- Marc Prud'hommeaux
- Sergey Nuyanzin (PMC Chair)
- Stephan Zuercher
- Steve Herskovitz
- Sunny Choi
More information
- License: Modified BSD License
- Home page
- API
- Source code
- Developers list: <a href="mailto:sqlline-dev@googlegroups.com">sqlline-dev at googlegroups.com</a> (<a href="https://groups.google.com/group/sqlline-dev/topics">archive</a>, <a href="https://groups.google.com/group/sqlline-dev/subscribe">subscribe</a>)
- Twitter: @SQLLineShell
- Issues
- Release notes and history
- HOWTO
Related Skills
feishu-drive
351.4k|
things-mac
351.4kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
351.4kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
postkit
PostgreSQL-native identity, configuration, metering, and job queues. SQL functions that work with any language or driver
