Table Mode
Browse, filter, and navigate your tables without writing SQL.
For: everyone. Especially useful for analysts and people new to SQL.
Table Mode opens a table the way a spreadsheet does. You see the rows, you can sort, filter, scroll, and jump between related tables by clicking foreign keys. No SQL needed.
Open a table
Three ways:
- Double-click a table name in the sidebar tree.
Cmd+K→ start typing the table name → pressEnter.- Right-click →
Open Table.
Each opened table is a tab at the top of the window. You can have many open at once, switch with Cmd+1 through Cmd+9.
The six tabs of a table
When a table is open you get six tabs, each showing a different angle of the same object:
| Tab | What it shows |
|---|---|
| Data | Rows, filters, sort, FK navigation, inline editing |
| Structure | Columns: name, type, default, nullable, primary key |
| Indexes | Index name, type (btree, hash, gin, gist), columns, unique flag |
| Foreign Keys | FK name, source column, referenced table.column, ON DELETE and ON UPDATE rules |
| Triggers | Trigger name, event, timing (BEFORE/AFTER), function called |
| DDL | The full CREATE TABLE statement, copyable |
The default tab is Data. You can change the default in Settings → Editor.
Filter the rows
The toolbar above the data grid has a filter field per column. Click Add Filter to expose them.
| Operator | Example |
|---|---|
= | status = 'active' |
!= | country != 'FR' |
<, <=, >, >= | created_at >= '2026-01-01' |
LIKE, ILIKE | email ILIKE '%@gmail.com' |
IN | status IN ('active', 'trial') |
BETWEEN | amount BETWEEN 10 AND 100 |
IS NULL, IS NOT NULL | deleted_at IS NULL |
Filters combine with AND. To do an OR filter, write a query in the editor instead.
Cmd+L jumps the cursor straight to the filter field — handy when you're already scrolling.
Sort
Click any column header to sort ascending. Click again for descending, again to remove the sort. Multi-column sort: hold Shift while clicking subsequent headers.
The sort is sent to the database as ORDER BY, so it scales to large tables.
Foreign key navigation
If a column has a foreign key, the cell value becomes a clickable link in the grid. Click it to open the referenced row in a new tab.
Example: clicking a user_id value in the orders table opens the matching row in users. The reverse direction works too — open a users row, then use the FK panel on the right to jump to its orders.
This only works for foreign keys declared at the database level. If your schema has FKs at the application level (some ORMs and frameworks do this), QueryDeck won't see them. Run the application's migrations with actual REFERENCES clauses if you want this in QueryDeck. Or trace the FK manually in queries.
Pagination and large tables
By default, Table Mode loads the first 1,000 rows. Scroll down and the grid loads the next page automatically. To change the default page size, Settings → Editor → Table Mode page size.
For very large tables (10M+ rows), Table Mode is fine if you filter first. Without a filter, scrolling to the end means scanning the whole table — slow on the server. Add a WHERE filter or open the table from a query result instead.
Column types in the grid
| Type | Rendered as |
|---|---|
| Text, varchar | Plain text |
| Integer, bigint, numeric | Right-aligned number |
| Boolean | Checkbox |
| Date, timestamp | Localized format with timezone hint |
| JSON, JSONB | Expandable inline viewer |
| UUID | Monospace text |
| Array | [a, b, c] inline, expandable |
bytea / BLOB | <binary> placeholder, click to preview hex |
| NULL | Gray "NULL" badge |
| Enum | Dropdown when editing, plain text when reading |
Refresh
Cmd+R re-runs the query that populated the grid. Use it after a teammate or a migration changed the data underneath you.
What's next
- Edit rows in place — insert, update, delete with a preview before commit
- Export the visible rows — CSV, JSON, SQL, Excel
- Run a custom query when filters aren't enough