

Data grid with query results
Sorting
Click a header to cycle through the first direction, its opposite, and off.Shift-click a second header to sort by both. Sorting re-runs the query with a new ORDER BY, so it orders the whole table rather than the page in front of you.
Sort direction in Settings > Data decides which way that first click goes. It is Ascending out of the box; set it to Descending to open on the newest rows and reach them in one click.
To sort on open, set Default row sort to Primary key or First column; out of the box the order is the server’s. That order is marked with a dimmed arrow rather than the solid one a click leaves, so a table you have not sorted does not look sorted. Clicking the same header reverses it, and Don’t Sort in the header menu returns to the server’s order and stays there.
Filtering
The header menu carries two filters that answer different questions.
Filter Values… lists every value in the column with its count, NULL and empty among them. Select the values to keep and click Apply. Filter several columns and a row has to match all of them; Clear Value Filter and Clear All Value Filters are on the same menu.


Filter a column by its values
Columns
Drag a border to resize a column, or double-click it to fit the content; Size to Fit and Size All Columns to Fit on the header menu do the same. A fitted column stops at half the visible grid width. Hide columns from the columns button in the status bar or from the header menu. A hidden column is not fetched, so hiding a large one makes the table load faster; the primary key and the sorted column are fetched either way. On a schemaless store the popover lists every field the grid can draw, including ones that turn up only in later documents. Widths, order, and hidden columns are remembered per table, scoped to the connection, database, and schema; Reset Columns in the popover puts them back. Right-click a header and choose Display As to read a column’s stored values in a different form; Cell and Row Viewers lists the formats.Jump to a column
Cmd+Shift+J, or Edit > Find > Jump to Column, lists every column of the result with its type and its place in the grid. Type part of a name; matching is fuzzy, so crat finds created_at. Return scrolls the selected column into view and puts the cell cursor in it, on the selected row. A hidden column is listed too, marked Hidden, and jumping to it shows it first. Jump to Column at the foot of the columns popover opens the same panel with the popover’s search carried over.


Jump to Column ranking a fuzzy match
Foreign keys
A foreign key cell carries an arrow on its right edge. Click it to open the referenced table filtered to the matching row, or right-click for Preview Referenced Row, which shows that row in a popover.Cmd-click always opens a new tab; otherwise the reference takes over the current tab unless that tab holds a query or unsaved edits.
Double-click a foreign key cell, press Return on it, or open its right-click menu to pick the key rather than type it. The picker lists rows from the referenced table, each key with a label beside it, and narrows as you type. Return in the search field commits the text as typed, which covers a key the search has not turned up. Set NULL appears on a nullable column.
Label at the foot of the picker chooses the column that reads as the row’s name. The choice is remembered for the referenced table, so every column pointing at it shows the same one. A search fetches the first 50 matches, which keeps the list quick on a large table.
A column of a foreign key that spans several columns keeps the text editor. The picker sets one column, and a key it offered might not pair with the values the row holds in the constraint’s other columns. Type the key, or open the referenced table and read the pair off it.


Every artist the key can point at, with its name
Ctrl+Cmd+[) and View > Forward (Ctrl+Cmd+]). Back restores the table you came from as you left it: same filters, sort, page, and selected row. Each tab keeps its own history, Back never closes a tab, and it is unavailable while a tab holds unsaved edits.


Foreign key lookup
Inspector
PressCmd+Option+I, or click the button at the trailing end of the toolbar, to open the inspector beside the grid. Its header names the table and which row of how many is selected, and a Fields / JSON control switches between two renderings of that row. Cell and Row Viewers covers both. Turn on Auto-show inspector on row select in Settings > Data to open it whenever a row is picked, in a query result as well as a table.
Short values sit on one line, label leading and value trailing. Long text, JSON, PHP, binary and images take the full width. Long text and JSON carry a resize handle; PHP, binary and images draw at a fixed height. Tab and Shift+Tab move between fields; the menu at the trailing edge of each field carries Set NULL, Set DEFAULT, Set EMPTY and SQL Functions, with Ctrl+Option+N and Ctrl+Option+D as shortcuts for the first two. Search filters the list by column name or stored value, and the pencil button narrows it to fields already edited.
With no row selected and a table open, the inspector shows that table’s size, row count, engine, collation and timestamps, as far as the database reports them.


A Track row with its scalar columns on one line each
Find in the loaded rows
Cmd+F opens the find bar above the grid. Return and Cmd+G step forward, Cmd+Shift+G back, Escape clears the term and then closes the bar. Matching ignores case and accents and runs over the text as displayed; spatial columns are skipped, and so is a binary column still showing hex. The counter says which rows were searched:
Search All Rows turns the term into a filter that runs at the database, covering the whole table. It replaces the tab’s filters, so it appears only when none are applied; with a filter set, add the term to the filter bar instead.
Pages and row counts
A table tab pages. The status bar offers 5, 10, 20, 100, 500 or 1,000 rows per page, Custom… up to 1,000,000, and All rows…, plus First, Previous, Next and Last;Cmd+[ and Cmd+] step pages, and clicking the page indicator (3 / 12) jumps to a page number. The size a table opens with is a data setting.
A large table shows an estimated total prefixed with ~ instead of running a slow COUNT(*). Count Exactly beside it runs the real count in the background, and Cmd+. cancels that. While a total is an estimate, Last and All rows… stay unavailable and Next works as long as the last page came back full.
A query tab does not page. It stops at the row cap instead and offers Fetch All to load the rest, and a query carrying its own LIMIT, FETCH FIRST, or TOP is never capped. Cmd+. cancels a running query or a Fetch All.
Copying
Click a cell to select it, drag orShift-click for a range, and click a row number for a whole row. The row-number gutter stays at the left edge on a table wider than the window, so whole rows are still selectable when the columns have scrolled past it. Shift+Space widens whatever is selected to every row it touches. Copy acts on the whole selection.
Right-click and open Copy as for CSV, CSV with Headers, Markdown, and IN Clause, which writes
('a', 'b', 'c') for a WHERE col IN (…). INSERT Statement(s) and UPDATE Statement(s) appear when the result comes from a single table, and never on MongoDB or Redis. Copy Column Values on the header menu copies one column, one value per line.
Every copy follows the grid as shown: hidden columns are left out, columns keep their current order, and over a cell selection only those columns go out. UPDATE keys its WHERE clause on the primary key even when that cell is outside the selection.
View modes
Switch between Data, Structure, JSON, and Chart with the switcher at the leading edge of the status bar, or from View > Result View. Query tabs have no Structure mode, the mode is remembered per tab, and Cell and Row Viewers covers JSON mode.Chart mode
Needs a Starter license.
Editing and display
Double-click a cell to edit it. A long value stays on one line and scrolls sideways rather than wrapping into the column’s width. Nothing reaches the database until you save, and Change Tracking covers the type-specific editors, the row operations, and what a Save runs. NULL renders as styledNULL text. That text, the date format, row height, row numbers, and alternate row backgrounds are data settings. Every shortcut the grid answers to, and how to rebind it, is in Keyboard Shortcuts.
