Why BroadSQL instead of a graphical SQL client
Graphical tools work well for database design or occasional, exploratory queries. A command-line client earns its place when you manage data across multiple servers and vendors as a daily routine.
How BroadSQL measures up against what a SQL client is expected to do
Most SQL clients, command line or graphical, are judged on the same five things: connecting to a database, browsing and querying it, getting data out, automating repeat work, and being extendable when a built in command isn't enough. BroadSQL meets the baseline on every one of them (see Features for the full list), and goes further than typical market expectations on three: export, automation, and extensibility.
| Expectation | Typical SQL client | BroadSQL |
|---|---|---|
| Connect and browse | A connections tree, schema browser, and query editor | The same baseline: named connections, SHOW TABLES/DESCR/FIND COLUMN, plain SQL passthrough |
| Export results | One destination format at a time, chosen per run from a GUI wizard | PULL: one command syntax for every destination (H2 table, spreadsheet tab, CSV/JSON/Markdown/HTML) |
| Automate a recurring task | Often limited to a paid edition, or not built in at all | Script files, a saved query library with metadata, and per connection login scripts, all in the free product |
| Extend it | A plugin SDK (IDE platform APIs), or no extension mechanism at all | A plain JAR dropped into extensions/, no BroadSQL rebuild, no plugin SDK |
See Compare for the full, tool by tool breakdown against usql,
DBeaver, and DataGrip.
1. The same query, every environment
Connections are named, not hard-coded into a saved workbook. Switch between DEV, TEST, and
PRODUCTION, or between completely different database vendors, by changing the connection
name, not the query. / re-runs the last query as-is against whichever connection is
currently open, so a query validated on TEST can be re-run on PRODUCTION without retyping it.
2. Exports and imports are one command away
PULLcopies a query's results into a local H2 database, a spreadsheet tab, or a CSV/JSON/Markdown/HTML file, all in one syntax for every destination.EXPORT/DUMPwrite query results or whole tables to Excel, OpenDocument Spreadsheet, CSV, plain text, or (legacy) MS Access.BATCHLOADloads a CSV file back into a table in batches, for the other direction.
3. Scripts, not click-paths
A BroadSQL script file mixes SQL and BroadSQL commands freely and runs the same way against any
connected database type. A vendor-specific GUI client can't do that. Combine that with the
saved query library and file macros
(@file.sql, <@codes.txt>) to turn a recurring task into something you run
once and reuse.
4. Extend it yourself, instead of waiting for a feature request
Most SQL clients only extend through their host IDE's own plugin platform: an Eclipse/OSGi
plugin for DBeaver, an IntelliJ Platform plugin for DataGrip, each with its own build toolchain,
packaging format, and release process to learn before writing a single line of the feature you
actually wanted. A command line tool like usql typically has no extension mechanism at
all: what ships is what you get.
BroadSQL's custom commands are a plain JAR file dropped into the
extensions folder: no BroadSQL rebuild, no plugin SDK, no separate packaging format.
An extension gets direct access to the console, the current connection, and the command interpreter,
so adding a new keyword to BroadSQL is closer to writing a small standalone program than building
a plugin. That matters most for the recurring, organization-specific checks a generic SQL client
will never ship as a built-in command: a naming-convention linter for your schema, a one-command
reconciliation against an internal reference system, a shortcut for a query pattern your team runs
every week. Instead of filing a feature request and waiting for the next release, you write it once
and it behaves like every other BroadSQL command from then on.
Built for this kind of work
- Connects to H2, PostgreSQL, Apache Derby, HSQLDB, and SQLite out of the box; any other JDBC-compatible database by adding its driver: see technical requirements.
- Connection credentials are stored in an encrypted H2 database (the CDF), not in plain text.
BroadSQL