The sidebar of a connection tab is where you pick a database and a table; the Structure tab is where you change them. The words follow the engine — collection on MongoDB, index on Elasticsearch, file for a SQLite folder — and Redis has keys instead of tables (see Redis and Valkey).
The sidebar header
The connection’s engine logo and name, its PROD or READ-ONLY badge, the server version, and Disconnect (closes the connection and any SSH tunnel).
The database picker
Click the database name, or press Database → Choose Database… (mod+P).
- Search — Search N databases; the count shows matches (3 of 124) and the matched part is bold.
- Keys — ↑ / ↓, PgUp / PgDn, enter to open, Esc to close.
- ★ Star — Star: keep at the top. Starred and Recent databases are grouped first, per connection.
- Your databases come next, then System — the server’s own, with a built in badge, folded when there are many.
| Engine | System databases |
|---|---|
| MySQL / MariaDB | information_schema, mysql, performance_schema, sys |
| PostgreSQL | postgres, template0, template1 |
| MongoDB | admin, config, local |
Next to the picker:
- ↻ — Reload the databases and tables (mod+R, Database → Refresh).
- + — create a database (below). Not for Redis, Valkey or Elasticsearch, and off on a Read-only connection.
On Redis and Valkey the picker lists db0 … dbN with their key counts. On Elasticsearch the “database” is the
cluster itself. A SQLite folder lists each file as a database.
The table list
- Filter tables narrows the list.
- The count’s tooltip says N of your own, M built in.
- + New creates a table.
- Each row shows the table’s rows, short (1.2k); hover for rows and size.
- Views and materialized views are listed as views. PostgreSQL tables outside
publicshow asschema.table.
Your own tables come first. System tables are grouped apart, folded, with a built in badge:
information_schema, performance_schema and sys, the server’s tables in mysql, sqlite_* tables, MongoDB’s
system.* collections and Elasticsearch’s dot indices.
The table menu
Right-click a table:
- Show Data (mod+1) · Show Structure (mod+2)
- Copy Name · Copy CREATE Statement
- Export Table…
- Rename Table… — the Rename <table> prompt asks for a New name. MongoDB renames the collection.
- Duplicate Table… (Duplicate Collection… / Duplicate Index… on MongoDB and Elasticsearch; not for views) —
Duplicate <table> asks for a New name (
<table>_copyto start with) and has Copy the rows too, on by default. SQL tables keep their columns, keys and indexes; foreign keys and triggers stay with the original. An Elasticsearch index keeps its mappings and analysis settings, a MongoDB collection its indexes. On a Production connection it asks first, like any write. - Truncate Table… — not for views.
- Drop Table…
The same actions are in the Table menu of the menu bar. Truncate and drop ask you to type the table’s name — see Dropping and emptying.
Select several tables
- ⌘-clickCtrl-click adds or removes a table.
- ⇧-clickShift-click picks a range.
- mod+A (Edit → Select All, with the list focused) picks every table shown.
- Esc clears the selection.
A bar appears: N selected · right-click for actions, with ✕ to clear.
Bulk actions on several tables
Right-click the selection for the menu titled N Tables Selected:
| Action | What it does |
|---|---|
| Export N Tables… | Opens Export with those tables ticked. |
| Copy Names | Copies the table names. |
| Copy CREATE Statements | SQL engines only. |
| Count Rows | Opens a new Query editor with a UNION ALL of COUNT(*) per table, so you get exact counts. |
| Optimize N Tables… | OPTIMIZE TABLE (MySQL / MariaDB), VACUUM (ANALYZE) (PostgreSQL) or ANALYZE (SQLite) — run through Run, so the usual checks apply. |
| Truncate N Tables… | Empties them. |
| Drop N Tables… | Drops them. |
On a Read-only connection the writes are greyed out, marked Read-only connection.
Truncate and drop go child-first, so tables that point at others are handled before the tables they point at. You type the database’s name to confirm — or the connection’s name on Production.
Force — disable integrity checks lets them go through when foreign keys are in the way:
| Engine | What Force does |
|---|---|
| MySQL / MariaDB | FOREIGN_KEY_CHECKS = 0 for the operation. |
| PostgreSQL | CASCADE — dependent constraints and views go too, and a truncate also empties the tables that reference them. |
| SQLite | foreign_keys = OFF for the operation. |
Without Force, a table outside your pick that points at one of them makes DBCatz refuse.
The sidebar foot
| Button | Shortcut | What it does |
|---|---|---|
| Query (Redis: Command) | mod+T | A new query editor. |
| Logs | mod+L | The Logs tab. |
| Export | mod+E | Export… |
| Import | mod+I | Import… |
| ↻ | mod+R | Reload the databases and tables. |
Above the view sits the breadcrumb — db › table and the row count — and the view tabs Data · Structure · Query · Logs (Redis / Valkey: Keys · Command · Logs).
The Structure tab
Table → Show Structure (mod+2). The sections depend on the engine.
Columns
SQL engines show Columns. MongoDB shows Fields (from a sample of documents) — read from the first 100 documents, since a collection has no fixed columns. Elasticsearch shows the index’s Mapping.
| Column | What it shows |
|---|---|
| Name | With PK, UQ and FK badges. |
| Type | The column type. |
| Null | Whether it allows NULL. |
| Default | The default value. |
| Extra | Auto increment, other extras, the collation and the comment. |
| Change and Drop. |
Add or change a column
+ Column adds one; Change edits one — including its name, since renaming happens there.
- Name.
- Type — a type picker: a grouped dropdown of the engine’s types, then length or precision and scale, the values
of an
ENUMorSET, and modifiers such asUNSIGNED. - Default — empty = none; expressions like CURRENT_TIMESTAMP work.
- Allows NULL.
- Auto increment — when adding.
- Character set, Collation and Comment.
- Unique.
Every change goes through the structure checks before the
ALTER runs.
Per engine:
- SQLite — changing an existing column is not possible: the dialog says SQLite cannot change a column. Its collations are
BINARY,NOCASEandRTRIM, and it has no column comments. - PostgreSQL comments are set with
COMMENT ON COLUMN.
Column display order
Drag ⠿ to set the order columns are shown in, here and in the Data grid. It is a view setting for you — not an
ALTER; the table is untouched. Reset order puts it back.
Indexes
For SQL engines and MongoDB: Name, Columns and Kind (primary, unique, index), with Drop primary key or Drop index.
+ Index opens Add index: a Name (optional), Columns (in order) with + Column, and Unique.
Foreign keys
For SQL engines: Name, Columns, References, On delete and On update. This list is read-only —
foreign keys cannot be added from the Structure tab; write the ALTER TABLE … ADD FOREIGN KEY in the
Query tab.
CREATE statement
The table’s CREATE statement (SQL) or its Definition (other engines), with Copy.
Create a table
Table → Create Table… (mod+shift+T), + New in the table list, or Create table on an empty database. The dialog is
Create Each column row has Name, Type, Null, Default, PK, Auto (auto increment), UQ, ⋯ for
character set, collation and comment, and ✕ to remove it. Below: + Column, and + Timestamps (SQL engines) to add
Database → Create Database… (mod+shift+N) or + next to the picker. Give it a Name, and: There is no Create database on Redis, Valkey or Elasticsearch. Database → Drop Database… asks you to type the
name. Last updated 2026-11-03 in <db>.
created_at and updated_at columns in one go.
Create a database
utf8mb4 / utf8mb4_unicode_ci by default. The hints
tell you which collations are case-insensitive, binary or case-sensitive.LC_COLLATE and LC_CTYPE). Values
other than the default use template0.