Some features at a glance
- Connection parameters for individual databases can be kept in a configuration file in your home directory, allowing you to specify a short logical name for the database when you connect to it. (Multiple logical names are permitted for each database.)
- SQLShell has command history management, with GNU Readline-like support. Each database has its own history file.
- SQLShell supports retrieving and displaying database metadata (e.g., getting a list of tables, querying the table’s columns and their data types, listing the indexes and foreign keys for a table, etc.).
- SQLShell provides a standard interface that looks and behaves the same no matter what database you’re using.
- SQLShell supports any database engine for which a JDBC driver exists.
- SQLShell is written in Scala and uses some third-party, open-source Scala and Java libraries.
- SQLShell is open source, and is licensed under a liberal BSD-style license.
In short, SQLShell is a SQL command tool that attempts to provide some powerful features that are consistent across all supported databases and platforms.
- A Java 6 runtime.
- The JDBC drivers for the databases you wish to use.
As of version 0.2, SQLShell comes bundled with an appropriate version of the Scala runtime, so you do not need to have a Scala installation to use SQLShell.
The graphical installer
Install SQLShell via the graphical installer jar, available in the downloads area:
java -jar sqlshell-0.8.1-installer.jar
This command will install SQLShell, a front-end Unix shell script or Windows BAT file, and all the dependencies. The installer jar file is signed with my PGP key.
Building from source
You can also install SQLShell from source.
Building SQLShell requires SBT (the Simple Build Tool), version 0.10.
Getting the source
$ git clone git://github.com/bmc/sqlshell.git $ git clone http://github.com/bmc/sqlshell.git
Once you have a local
sqlshell source directory, change your working directory to the source directory, and type:
to pull down the external dependencies. After that step, build SQLShell with:
sbt compile package
The resulting jar file will be in the top-level
To build the installer, you currently need to have the IzPack product installed, and you need to set
IZPACK_HOME set to its top-level directory. Once that’s in place, you can build the installer with
Consult the User’s Guide for complete documentation on SQLShell. The User’s Guide is also shipped with the SQLShell source and can be installed via the binary graphical installer.
If you’re of a mind to do so, you can also peruse the change log.
If you encounter a bug in SQLShell, freel free to open an issue on the issues page. In the issue, please include:
- The affected version of SQLShell, which appears in the banner when you first start SQLShell.
- The operating system you’re using (Windows 7, Linux, Mac OS X, etc.)
- The version of Java installed on your system. (Type
java -versionat a command prompt.)
- The type of database you’re attempting to use, if applicable (e.g., MySQL, SQL Server, Oracle, PostgreSQL, etc.)
- The JDBC driver you’re using, if there’s more than one choice. (For instance, if you’re using SQL Server, are you using the JetDirect driver or the Microsoft driver?)
In addition, enable SQLShell stack traces, as show below; if SQLShell dumps a stack trace, please include it in the issue.
Enabling stack traces
To enable stack traces, set the SQLShell
db> .set stacktrace on
Copyright and License
I gladly accept patches from their original authors. Feel free to email patches to me or to fork the GitHub repository and send me a pull request. Along with any patch you send:
- Please state that the patch is your original work.
- Please indicate that you license the work to the SQLShell project under a BSD License.