One command line. Every database.
The same commands on PostgreSQL, Oracle, SQL Server, MySQL, H2: if it has a JDBC driver, BroadSQL speaks it. Run a query on QA, rerun it on PROD with one command. Save it, export the results, load data back in, all without switching tools.
On the WORLD sample included in BroadSQL: WORLD-QA is a practice copy, with one
test city added, and WORLD plays production.
Set it up in a few minutes.
Illustrative output.
The part of the job that repeats
Four everyday workflows on the WORLD sample, as BroadSQL prints them. Each one links to the how-to that explains it, step by step, so that you can reproduce it on your own installation.
Check a figure in QA, then in production
Run the query on QA, then / PROD: it runs once on the production connection of the same
application, and you stay on QA. No retyping, no switching.
WORLD-QA> SELECT COUNT(*) AS CITIES FROM CITY WHERE COUNTRYCODE = 'FRA';
|--------------------|
|CITIES |
|--------------------|
|41 |
|--------------------|
1 rows fetched in 5 ms.
WORLD-QA> / PROD
Running last query on WORLD [PROD]...
|--------------------|
|CITIES |
|--------------------|
|40 |
|--------------------|
1 rows fetched in 0 ms.
WORLD-QA>
Use a list of values you received
Copy the values from an email, a report or a spreadsheet, one per line, then write
<@clipboard> where the list belongs. BroadSQL quotes and separates them.
<@last:CODE> does the same with the result you just saw, and
<@excel:file:sheet:column> with a spreadsheet column.
SELECT CODE, NAME, POPULATION FROM COUNTRY WHERE CODE IN <@clipboard>;
SELECT COUNTRYCODE, LANGUAGE FROM COUNTRYLANGUAGE WHERE COUNTRYCODE IN <@last:CODE>;
Keep a local working copy fresh
Copy a production table into a local H2 database once; then the same command inserts the new rows, updates the changed ones and counts the others. All or nothing, and every refresh is recorded.
WORLD> DUMP (SELECT CODE, TRIM(NAME) AS NAME, POPULATION FROM COUNTRY) TO WORKCOPY.COUNTRY_FIGURES AS H2 MODE MERGE KEY(CODE);
MERGE into WORKCOPY.COUNTRY_FIGURES: 254 source row(s), 0 inserted, 1 updated, 253 unchanged.
Completed: 2026-10-18 10:15:47 +02:00 (0:00:00).
Load a spreadsheet: preview, then insert
Save the sheet as CSV, and LOAD ... PREVIEW checks every row against the table before anything
is written. Then the same command inserts them, in one transaction, after a confirmation.
WORLD> LOAD MY_VISIT my_visits.csv PREVIEW;
LOAD PREVIEW
------------------------------------------------------------
Target : WORLD / PUBLIC.MY_VISIT
Mode : INSERT
Source : c:\temp\my_visits.csv
Input rows : 3
Valid rows : 3
Rejected : 0
Columns:
CITY_ID -> CITY_ID INTEGER
VISIT_DATE -> VISIT_DATE DATE
NOTE -> NOTE VARCHAR
No changes have been made.
Safe by design
What BroadSQL does to keep a terminal pointed at production safe, and what it does not claim to do.
A confirmation before any change to production
On a connection whose Environment is flagged Production, BroadSQL asks before every statement that can change the database. Nothing is sent before you answer, and without a terminal to ask, the change is refused. It protects against mistakes; it is not access control.
WORLD> UPDATE COUNTRY SET POPULATION = 59225800 WHERE CODE = 'FRA';
WARNING: This operation can modify a Production database.
Connection: WORLD (Environment PROD, Production)
Statement: UPDATE COUNTRY SET POPULATION = 59225800 WHERE CODE = 'FRA'
Why: it is an UPDATE
Execute? [yes/no]: yes
1 row(s) updated.
Encrypted, local credentials
Every saved connection, its URL and password, lives in an AES-encrypted local database, unlocked by a
master password. Every installation ships with the same default one: change it with
SET MASTER PASSWORD before adding real connections. See Security.
No phoning home
BroadSQL only talks to the databases and APIs you connect it to. It does not collect usage telemetry or contact any BroadSQL/UpAndCoding server during normal operation. See Security.
No hidden AI
BroadSQL includes no AI functionality today, and does not send database data, SQL, metadata, credentials, or query results to an AI service. AI-assisted tools may be used to help build BroadSQL, but that's separate from the software you run. See AI and BroadSQL.
Published, auditable source
The core of BroadSQL that parses your commands and talks to your databases is published openly, with its own test suite, at github.com/lico/broadsql-source. Read it yourself instead of taking it on faith.
What else it does
Export with one syntax
DUMP writes a table, a query or what is on screen to Excel,
OpenDocument, CSV, JSON, Markdown, HTML or a local H2 table. See the export guide.
Scripts you run by name
Save a query in the Scripts Library with typed parameters, run it with
@name, export its result only when it succeeds. Start from the Scripts Gallery.
Explore any database
SHOW TABLES, DESCR, SHOW FK, FIND COLUMN and
COMPARE TABLE STRUCTURE read the standard JDBC metadata, so they work the same everywhere. See
Exploring a database.
Watch a value
REPEAT EVERY 30s runs a query again and again, and can
append every run to a CSV file: a timeline of a queue, a job, a count.
Logic when you need it Experimental
A short JavaScript file can hold several connections open, loop and branch
(JS RUN).
Call the APIs in front of your data Experimental
Import an existing Bruno collection once, then browse and call its endpoints, with whatever authentication it defines, from the same workbench. See Universal API Client.
Who it's for
People who work across many databases as a daily routine, not database design or schema modeling. Four roles get the most direct benefit from it.
- Data steward / data governance analyst: reconciles records between systems and checks that data matches across databases, exports and spreadsheets.
- Application / production support engineer: diagnoses issues under time pressure, across several environments and vendors in the same day.
- Data / business analyst: pulls data for reports and ad hoc questions, without installing or learning a full database IDE.
- Data engineer / analytics engineer: moves and checks data between systems and builds working datasets.
BroadSQL assumes you're comfortable with SQL and a terminal. See the tasks behind each role in Who BroadSQL is for.
Why not just use a GUI?
Graphical SQL clients are excellent for interactive exploration: browsing a schema, building one query, looking at one database.
BroadSQL earns its place once that work needs to be repeated, scripted, shared with a team, or applied consistently across systems and environments: exactly the part a point-and-click session doesn't preserve. It isn't a claim that GUIs are the wrong tool; it's a different job.
Ready to try it?
Download the latest release, then try the WORLD sample database in a few minutes.