Skip to content

Daten exportieren ​

Sie können eine ganze Tabelle, eine Tabelle so, wie das Datenraster sie zeigt, oder das Ergebnis einer Abfrage exportieren. Alle drei nutzen denselben Dialog.

  • Eine Tabelle — Rechtsklick darauf, oder Tabelle → Als CSV/JSON exportieren bei geöffnetem Tabellen-Tab.
  • Was das Datenraster zeigt — Ansicht exportieren in der Werkzeugleiste: aktueller Filter und aktuelle Sortierung, oder nur die markierten Zeilen. Siehe Aus dem Datenraster exportieren.
  • Ein Abfrageergebnis — Ergebnisse exportieren im SQL-Editor. Da Ergebnisse zwischengespeichert sind, führt der Export die Abfrage nicht erneut aus. Siehe Ein Abfrageergebnis exportieren.

Formate ​

FormatHinweise
CSVTrennzeichen standardmäßig Komma
TXTTrennzeichen standardmäßig Tabulator
JSONArray von Objekten
XLSXExcel-Arbeitsmappe
ODSOpenDocument-Tabelle
XMLEin Element je Zeile
SQLINSERT-Anweisungen — nur Struktur oder Struktur und Daten

Format wählen, Dateipfad setzen, Exportieren klicken. Der Dialog meldet, wohin gespeichert wurde und — außer beim SQL-Export einer ganzen Tabelle — wie viele Zeilen die Datei enthält.

Aus dem Datenraster exportieren ​

Ansicht exportieren in der Werkzeugleiste des Datenrasters exportiert die Tabelle so, wie Sie sie gerade sehen: Filter, Spaltenfilter, Suchfeld und Sortierung gelten. Der Dialog nennt den Filter und die Sortierung, die er verwendet, sodass Sie beides vor dem Export prüfen können.

Unter Was exportiert wird:

OptionWas in die Datei kommt
Alle Zeilen, die dem Filter entsprechenJede Zeile, auf die der Filter passt — aus der ganzen Tabelle, nicht nur von der geladenen Seite — vom Server in der Sortierung des Rasters gelesen. Heißt Alle Zeilen, wenn kein Filter gesetzt ist
Nur ausgewählte ZeilenNur die im Raster markierten Zeilen. Wird nur angeboten, wenn Zeilen markiert sind, und ist dann vorausgewählt
Nur sichtbare SpaltenLässt die über Spalten ausgeblendeten Spalten weg. Wird nur angeboten, wenn welche ausgeblendet sind; standardmäßig an

Zeilen markieren Sie per Klick auf die Zeilennummer; Shift+Klick auf eine andere Zeilennummer erweitert die Auswahl auf alles dazwischen. Ein erneuter Klick auf dieselbe Zeilennummer hebt die Auswahl auf.

Markierte Zeilen werden so geschrieben, wie das Raster sie hält

Die markierten Zeilen stammen von der geladenen Seite, nicht aus einem neuen Lesen der Tabelle. Deshalb:

  • ungespeicherte Änderungen stehen nicht in der Datei, ebenso wenig neue, noch nicht gespeicherte Zeilen — drücken Sie zuerst Ctrl+S;
  • Binärspalten sind im Raster Platzhalter der Form <binary N bytes>, und genau das landet in der Datei. Für den echten Inhalt verwenden Sie Alle Zeilen, die dem Filter entsprechen im Format SQL, mit einem Filter, der dieselben Zeilen trifft — es schreibt Binärspalten Byte für Byte als Hex-Literale. Die Textformate behalten den Platzhalter.

Im SQL-Format legen Sie außerdem den Tabellenname in INSERT-Anweisungen fest — standardmäßig die aktuelle Tabelle; ändern Sie ihn, um die Zeilen in eine andere Tabelle zu laden. Mit Alle Zeilen, die dem Filter entsprechen stellt Struktur einschließen (CREATE TABLE) die Tabellendefinition vor die INSERTs. Fremdschlüssel und Trigger bleiben außen vor, weil die Datei nur einen Teil der Zeilen enthält — für eine vollständige Kopie einer Tabelle nehmen Sie Dump SQL file, unten beschrieben.

Ein Abfrageergebnis exportieren ​

Ergebnisse exportieren im SQL-Editor schreibt das Ergebnis, das auf dem Bildschirm steht — bei mehreren Anweisungen das, dessen Tab ausgewählt ist. Die Zeilen kommen aus dem Ergebnis-Cache in der Reihenfolge, in der das Ergebnisraster sortiert ist: Sie bekommen, was Sie sehen, ohne dass die Abfrage erneut läuft.

Geschrieben wird immer das ganze Ergebnis: Markierte Zeilen im Ergebnisraster schränken es nicht ein. Um nur einige Zeilen zu exportieren, schränken Sie die Abfrage selbst ein (WHERE, LIMIT) und führen sie erneut aus.

Im SQL-Format wird der Tabellenname in INSERT-Anweisungen mit der Tabelle vorbelegt, aus der die Abfrage liest, wenn NabuSQL sie ermitteln kann, sonst mit query_result.

SQL-Exporte ​

Der SQL-Export einer ganzen Tabelle hat eine zusätzliche Wahl: nur DDL oder DDL + Daten. Nur DDL liefert die CREATE TABLE-Anweisung — das, was Sie brauchen, wenn Sie Struktur in eine andere Umgebung bringen.

Für eine ganze Datenbank gibt es in der Seitenleiste den schnelleren Weg: Rechtsklick auf die Datenbank → Dump SQL file ▸ Struktur und Daten oder Nur Struktur. Dasselbe Untermenü gibt es auch an einer einzelnen Tabelle und an mehreren markierten Tabellen, die in eine Datei kommen. Der Dump funktioniert mit MySQL, MariaDB, PostgreSQL, SQL Server und SQLite.

Was ein Dump enthält ​

Die Struktur jeder Tabelle — Spalten und Typen, Standardwerte, Primär- und Unique-Schlüssel, CHECK-Einschränkungen und Indizes — dann ihre Zeilen, dann ihre Trigger. Die Reihenfolge in der Datei ist so gewählt, dass das Einspielen glatt läuft:

  1. die Tabellen und ihre Zeilen;
  2. die Fremdschlüssel, wenn alle Tabellen existieren, sodass die Tabellen in beliebiger Reihenfolge geladen werden können;
  3. im Dump der ganzen Datenbank die Funktionen, Prozeduren und Sichten — Sichten in der Reihenfolge ihrer Abhängigkeiten, sodass eine Sicht auf einer anderen Sicht nach dieser kommt;
  4. die Trigger, zuletzt — früher angelegt, würden sie bei jeder eingespielten Zeile feuern und die Daten auf dem Weg hinein verändern.

Pro System:

SystemAußerdem im Dump
MySQL / MariaDBSHOW CREATE TABLE so, wie der Server es liefert, wobei ein NEXTVAL-Default auf die Sequenz der Datenbank zeigt, in die die Datei eingespielt wird; Binärspalten als Hex-Literale (X'…'), Byte für Byte; Trigger in DELIMITER ;;-Blöcken mit Ausführungsreihenfolge und sql_mode. Ein Dump der ganzen Datenbank unter MariaDB beginnt mit ihren Sequenzen, die dort weiterzählen, wo die Quelle stand
PostgreSQLSerial-Sequenzen und Identity-Spalten — sie laufen nach dem höchsten eingespielten Wert weiter — generierte Spalten, von der Tabelle genutzte Enum-Typen und Domains, Kommentare, Triggerfunktionen; deaktivierte Trigger bleiben deaktiviert
SQL ServerSchemas, IDENTITY mit Startwert und Schrittweite, berechnete Spalten, Spaltenkollationen, gefilterte Indizes mit INCLUDE; Batches durch GO getrennt
SQLiteDie Tabelle, wie sie in sqlite_master steht, ihre Indizes und Trigger

Generierte, berechnete und rowversion-Spalten fehlen in den INSERTs — sie füllt der Server.

Sichten, Prozeduren und Funktionen stehen im Dump der ganzen Datenbank — Rechtsklick auf die Datenbank oder Sicherung —, nicht aber im Dump markierter Tabellen. Unter PostgreSQL gehören dazu materialisierte Sichten (mit ihren Indizes, beim Einspielen gefüllt) und Sichtoptionen wie security_barrier; Objekte, die zu einer Extension gehören, stellt CREATE EXTENSION wieder her. MySQL-Events werden nicht exportiert. Routinen mit verborgenem Quelltext — unter SQL Server verschlüsselt oder für Ihr MySQL-Konto nicht sichtbar — erscheinen als Kommentar.

Einspielen über bestehende Tabellen

Jede Tabelle wird vor dem Anlegen gelöscht. Unter PostgreSQL ist das DROP TABLE … CASCADE, und unter SQL Server werden zuerst die Fremdschlüssel gelöscht, die auf die Tabelle zeigen — das Einspielen eines Teils der Datenbank entfernt also Fremdschlüssel aus Tabellen, die nicht in der Datei stehen. Eine vollständige Sicherung stellt alle Schlüssel wieder her.

Dump mit einer Stichprobe der Daten ​

Struktur + Beispieldaten… im selben Untermenü schreibt die vollständige Struktur, aber nur einen Teil der Zeilen — genug für eine Test- oder Entwicklungsdatenbank, ohne die Produktion zu kopieren.

OptionWirkung
Zeilen pro ausgewählter TabelleWie viele Zeilen jede ausgewählte Tabelle beisteuert (Standard 100)
Vom Anfang / Vom EndeDie ersten oder letzten Zeilen nach Primärschlüssel. Vom Ende mit 100 liefert die 100 neuesten Zeilen, wenn der Schlüssel eine Auto-Increment-ID ist
Verknüpfte Zeilen aus übergeordneten Tabellen einbeziehen (Fremdschlüssel)Exportiert auch jede Zeile, auf die die Stichprobe verweist (standardmäßig an)

Tabellen ohne Primärschlüssel sind mit ⚠ markiert — ihre Zeilen kommen in der Reihenfolge, in der der Server sie liefert, also sind „die letzten 100“ nur so aussagekräftig wie diese Reihenfolge.

Verknüpfte Zeilen ​

Mit Verknüpfte Zeilen … einbeziehen bleibt die Stichprobe stimmig: 100 Bestellpositionen bringen die Bestellungen mit, zu denen sie gehören, diese Bestellungen ihre Kunden, die Kunden ihre Städte. Die Kette wird so weit verfolgt, wie sie reicht, auch bei einer Tabelle, die auf sich selbst verweist, und nicht ausgewählte Elterntabellen kommen nur mit den nötigen Zeilen dazu. Das Fenster listet sie vor dem Export auf, mit der Tabelle, die sie jeweils nachzieht.

Zeilen werden nie in die andere Richtung gezogen: Ein Kunde aus der Stichprobe bringt nicht alle seine Bestellungen mit, sonst würde die Stichprobe zur ganzen Datenbank anwachsen.

Die Zeilenzahl ist daher N pro ausgewählter Tabelle, plus was die Schlüssel brauchen. Nach dem Export zeigt eine Tabelle, wie viele Zeilen jede Tabelle bekommen hat und wie viele davon über einen Schlüssel kamen. Die Datei lässt sich mit allen Fremdschlüsseln in Kraft einspielen.

Dump oder Sicherung ​

Drei Dinge überschneiden sich hier, also:

  • Export — eine Tabelle oder ein Ergebnissatz in einem der obigen Formate. Zum Weitergeben von Daten an eine Person oder ein anderes System.
  • Dump SQL file — eine .sql-Datei mit CREATE/INSERT-Anweisungen für eine Tabelle oder eine ganze Datenbank, direkt aus der Seitenleiste.
  • Sicherung und Wiederherstellung — ein vollständiger Datenbank-Dump mit Fortschrittsanzeige und die Wiederherstellungsseite mit Fehlerbehandlung. Für echte Sicherungen.

Daten auf einen anderen Server bringen ​

Ist das Ziel eine andere Datenbank statt einer Datei, exportieren Sie nicht erst und importieren dann — die Datenübertragung kopiert Tabellen, Sichten und Routinen direkt zwischen Verbindungen, auch zwischen verschiedenen Systemen.