Der Punktbefehl.mode ändert das Erscheinungsbild der Tabellen in der Terminalausgabe. Neben der optischen Anpassung haben diese Modi weitere Vorteile. Das ist nützlich, um DuckDB-Ausgabe weiterzuverwenden, indem die Terminal-Ausgabe in eine Datei umgeleitet wird. Der Modus insert erzeugt eine Reihe von SQL-Anweisungen, mit denen die Daten später eingefügt werden können.
Der Modus markdown eignet sich besonders für Dokumentation, der Modus latex für wissenschaftliche Arbeiten.
Warnung Unicode-Behandlung im Windows Terminal
Bei langen Ergebnissen im Windows Terminal wird standardmäßig das Systemprogramm more
zum Scrollen durch die Ergebnisse verwendet. Dieses Programm unterstützt Unicode nur unvollständig;
je nach Ausgabedaten können Unicode-Zeichen verstümmelt dargestellt werden.
Wir empfehlen stattdessen das Drittanbieterprogramm less,
das standardmäßig mit der Installation von Git for Windows mitgeliefert wird.
Es lässt sich folgendermaßen aktivieren:
SQL-INSERT-Anweisungen für ⟨TABLE⟩{:.language-sql .highlight}
json
Ergebnisse als JSON-Array
jsonlines
Ergebnisse als NDJSON
latex
LaTeX-tabular-Umgebungscode
line
Ein Wert pro Zeile
list
Werte durch `
markdown
Markdown-Tabellenformat
quote
Antworten wie für SQL escapen
table
ASCII-Art-Tabelle
tabs
Tabulatorgetrennte Werte
tcl
TCL-Listenelemente
trash
Keine Ausgabe
Ausgabemodus ändern
Mit dem bloßen Punktbefehl .mode fragen Sie das aktuell verwendete Erscheinungsbild ab.
.mode
current output mode: duckbox
Mit dem Punktbefehl .mode und einem Argument setzen Sie das Ausgabeformat.
.mode markdown
SELECT'quacking intensifies'AS incoming_ducks;
| incoming_ducks |
|----------------------|
| quacking intensifies |
Das Erscheinungsbild der Ausgabe lässt sich auch mit dem Befehl .separator anpassen. Bei einem Exportmodus, der auf einem Trennzeichen basiert (z. B. csv oder tabs), wird das Trennzeichen zurückgesetzt, wenn der Modus geändert wird. Zum Beispiel setzt .mode csv das Trennzeichen auf ein Komma (,). Mit .separator "|" wird die Ausgabe anschließend pipe-getrennt.
.mode csv
SELECT1AS col_1, 2AS col_2
UNION ALL
SELECT10AS col1, 20AS col_2;
col_1,col_2
1,2
10,20
.separator "|"
SELECT1AS col_1, 2AS col_2
UNION ALL
SELECT10AS col1, 20AS col_2;
col_1|col_2
1|2
10|20
Paging
Die CLI unterstützt Paging für große Ergebnismengen mit dem Befehl .pager. Ist es aktiviert, werden Ergebnisse, die die Terminalgröße überschreiten, in einem Pager (z. B. less) angezeigt, um die Navigation zu erleichtern.
Der Pager hat drei Modi:
automatic (Standard) – Der Pager wird ausgelöst, wenn das Ergebnis die Zeilen- oder Spaltenschwelle überschreitet.
on – Der Pager wird immer für die Ausgabe verwendet.
off – Der Pager ist deaktiviert.
.pager on
.pager off
.pager automatic
Im automatischen Modus lassen sich die Schwellenwerte für das Auslösen des Pagers konfigurieren:
.pager set_row_threshold 50
.pager set_column_threshold 5
Ein eigener Pager-Befehl lässt sich als Argument übergeben:
.pager less -RS
Der Standard-Pager-Befehl lässt sich auch über die Umgebungsvariablen DUCKDB_PAGER oder PAGER konfigurieren.
Modus duckbox
Standardmäßig stellt DuckDB Abfrageergebnisse im Modus duckbox dar, einem funktionsreichen ASCII-Art-Ausgabeformat.
Der duckbox-Modus unterstützt die Option large_number_rendering für eine gut lesbare Darstellung großer Zahlen. Sie hat drei Stufen:
off – Alle Zahlen werden mit der normalen Formatierung ausgegeben.
footer (Standard) – Große Zahlen werden um die menschenlesbare Form ergänzt. Gilt nur für einzeilige Ergebnisse.
all - Alle großen Zahlen werden durch die menschenlesbare Form ersetzt.
Siehe die folgenden Beispiele:
.large_number_rendering off
SELECTpi() * 1_000_000_000 AS x;
┌───────────────────┐
│ x │
│ double │
├───────────────────┤
│ 3141592653.589793 │
└───────────────────┘
.large_number_rendering footer
SELECTpi() * 1_000_000_000 AS x;
┌───────────────────┐
│ x │
│ double │
├───────────────────┤
│ 3141592653.589793 │
│ (3.14 billion) │
└───────────────────┘
.large_number_rendering all
SELECTpi() * 1_000_000_000 AS x;
┌──────────────┐
│ x │
│ double │
├──────────────┤
│ 3.14 billion │
└──────────────┘
Dies ist eine inoffizielle Website und nicht mit DuckDB verbunden. Offizielle Seite:duckdb.org.duckdb.ubitools.com · Übersetzt und erstellt mit Astro und daisyUI