Everything you need, nothing you don't

TabulaSQL covers the full loop of working with MySQL & MariaDB: connecting, browsing, querying, editing, and managing schema, in one focused desktop app. Below is a real walkthrough of the UI, not mockups.

MySQL and MariaDB, end to end

Minimum versions: MySQL 5.7+ / MariaDB 10.4+. Developed and tested against MySQL 8.4, MySQL 9.7, and MariaDB 11.

MySQL

Connect to MySQL 5.7 and newer. Works with local installs, remote servers, and cloud-hosted MySQL that speak the standard protocol.

MariaDB

First-class MariaDB support from 10.4 up. Same connection flow, explorer, editor, and schema tools as MySQL.

A 40-second tour of the real app

Browse tables, open context menus, manage indexes and foreign keys, follow relations, filter and resize columns, create a connection, export credentials, run a JOIN with a stored function, and check EXPLAIN, all without leaving the keyboard path you already know.

One window for your whole database workflow

Connections on the left, an object explorer for the active server, a multi-tab SQL editor in the middle, and a results panel underneath for table data, query output, messages, and schema info. No modal maze: the tools stay where you left them.

Add a server in seconds, then move it between machines just as fast

Every MySQL or MariaDB server you work with lives in one sidebar. Double-click to connect, see a live open badge when a session is active, and colour-code connections so staging never looks like production. Passwords are stored encrypted on your machine.

New connection form

Name the connection, pick a colour, set host/port/username/password, and optionally restrict the tree to a single database. There's a Test connection button before you save, and an SSH tunnel option with key or password auth when you need it. Credentials stay on your machine.

Export credentials safely

Export selected connections as a .dbmconn file with an optional passphrase, or as plain JSON. Perfect for onboarding a new laptop without retyping every password.

Import on the other machine

Drop in a .dbmconn or .json export, unlock encrypted files with your passphrase, preview what will be imported, and choose how each connection is handled. No cloud account required, just a file.

  • Encrypted transfer with a passphrase you choose
  • Preview before anything is written
  • Works offline: credentials never leave your devices

See the whole schema at a glance

Expand a database and TabulaSQL lists tables, views, procedures, functions, triggers, and events in one tree. Filter with plain text or regex, multi-select objects for bulk copy, and refresh when the schema changes under you.

  • Click a table to load its data into the grid instantly
  • Regex filter for large schemas
  • Keyboard navigation between tables

Routines belong in the tree too

Stored procedures, functions, triggers, and events aren't second-class. Open their DDL in the editor to create, review, alter, or drop them yourself, using the same “edit the SQL” approach you already use for tables, instead of fighting a half-baked visual designer.

Write real SQL with results that keep up

CodeMirror 6 editing with syntax highlighting, schema-aware autocomplete, multi-tabs, and multiple statements per run. Shortcuts match how you already work: Ctrl+Enter to run, Ctrl+Shift+Enter for a selection, Ctrl+Space for autocomplete.

A real JOIN across orders and customers, calling the database function order_total(). Results land in the Table Data tab with timing and row counts.

Query history per connection

Every statement you run is kept locally per connection. Open the history drawer, search past queries, and insert one back into the editor when you need that JOIN you wrote last Tuesday.

EXPLAIN before you ship

Hit Explain to inspect the plan without changing your SQL. Spot missing indexes and expensive scans while the statement is still in the editor, not after it hits production.

The same workspace after a clean query run: editor on top, spreadsheet-style results below, database context always visible.

Browse and edit like a spreadsheet

Open a table and you get a full grid: sort by clicking headers, page with first-row / row-count controls, filter with a dedicated dialog, resize columns when a VARCHAR is too wide, and edit cells in place. Pending changes highlight in amber until you save or cancel.

Fast table browsing

Click any table in the explorer and the grid fills with live data, row counts, and timing. Limit rows when you only need a sample. Leave it wide open when you don't.

Readable columns, real data

NULLs are marked clearly, long text truncates with a viewer for the full value, and the toolbar stays out of your way until you need Filter, + Row, or Save Changes.

Custom filters

Build conditions with operators like =, LIKE, IN, BETWEEN, and IS NULL. Or right-click a cell and filter to “this value” in one move. Active filters show as chips you can clear anytime.

Inline editing with a safety net

Double-click a cell, type, press Enter. Unsaved edits light up amber and the toolbar shows Save Changes / Cancel Changes, so a typo never becomes a silent UPDATE.

Insert rows without leaving the grid

Hit + Row (or use the cell context menu) and fill a form that knows your column types: enums become selects, timestamps stay editable, defaults stay optional.

Resize columns to fit

Drag the column edge when email addresses or JSON specs need more room. Double-click the leading handle to auto-fit every column to its content.

Follow foreign keys without writing a JOIN

Hover an FK cell and jump to the related record, or right-click and choose Show Related Record…. The dialog shows the full parent row, the relationship path (for example orders.customer_id → customers.id), and a button to open that table in the grid. Real foreign-key constraints work, and Laravel-style xxx_id columns are recognised too.

  • Drill further into nested relations
  • Open the related table with one click
  • Works from the cell menu and the inline “…” affordance

Cell context menu = power tools

Right-click any cell for insert/duplicate/delete row, set NULL / empty / default, quick filters, copy as CSV or INSERT, and export the whole result as CSV, JSON, or SQL. The same menu surfaces related-record navigation when you're on a foreign key.

Tables, views, routines, indexes, and foreign keys

Right-click a table for the structural work you do every week: create table, index manager, foreign key manager, or alter via DDL in the editor. The same DDL-in-editor pattern covers create, alter, and drop for views, procedures, functions, triggers, and events. Truncate or empty a database when you need a clean slate without deleting the database itself.

Manage indexes

See existing indexes, uniqueness, and column lists. Add a new index by picking columns and optionally marking it unique. Drop ones you no longer need.

Foreign keys

Inspect constraints with ON DELETE / ON UPDATE behaviour, or add a new FK by choosing local column, referenced table, and referenced column.

Create table

Define columns with type, nullability, default, primary key, and auto-increment. Add or remove rows in the designer, then create, or paste DDL into the editor if you prefer raw SQL.

Export dumps, import SQL, copy between databases

Whether you're backing up a schema, seeding a staging copy, or moving tables and routines between servers, TabulaSQL keeps the wizards short and the options explicit. SQL dumps are generated in pure PHP, so you don't need mysqldump installed.

SQL export wizard

Pick tables and views, choose structure and/or data, optionally emit DROP IF EXISTS and CREATE DATABASE. Download a dump you can re-run anywhere.

Copy between connections

Copy tables, views, procedures, functions, triggers, and events to another connection. Chunked, foreign-key safe, with live progress, and adaptive handling when a row is larger than the target server's max_allowed_packet.

Import SQL files

Point at a .sql file and run it against the active database, with per-statement error reporting. Useful for migrations, seed scripts, and restores without opening a terminal.

Backup from the context menu

Right-click a table → Backup/Export for a SQL dump dialog, or export data directly as CSV or JSON. Result sets from the grid export the same way.

Right-click the object, get the action

Table menus cover open, copy, backup, import, paste SELECT/INSERT/UPDATE/DELETE/CREATE templates, alter DDL, indexes, foreign keys, rename, truncate, and drop. Database menus add create table/view/routine shortcuts plus truncate and empty database. Tabs you leave open come back after a restart. No ribbon full of icons you never click.

Themes and shortcuts that stay out of your way

Pick Auto, Light, Dark, or TabulaSQL Classic. Learn every shortcut from the built-in reference. The app is local-first: no account, no telemetry, credentials stay on disk you control.

Theme picker

Four themes with live swatches. Switch without restarting.

Dark mode that still reads

Editor, grid, and dialogs all follow the theme so late-night debugging doesn't burn your eyes.

Keyboard shortcuts

Run, explain, refresh, filter, edit cells, close dialogs. The cheatsheet lives one click away in the sidebar.

Try it yourself. It's free

macOS, Windows, and Linux. Built for MySQL & MariaDB. MIT licensed. No trial, no “pro” tier, no account.