Skip to content

Exporter des données ​

Vous pouvez exporter une table entière, une table telle que la grille de données l’affiche, ou le résultat d’une requête. Les trois utilisent la même boîte de dialogue.

  • Une table — clic droit dessus, ou Table → Exporter en CSV/JSON avec l’onglet de la table ouvert.
  • Ce qu’affiche la grille de données — Exporter la vue dans la barre d’outils de la grille : le filtre et le tri actuels, ou seulement les lignes sélectionnées. Voir Exporter depuis la grille de données.
  • Un résultat de requête — Exporter les résultats dans l’éditeur SQL. Les résultats étant mis en cache, l’export ne réexécute pas la requête. Voir Exporter un résultat de requête.

Formats ​

FormatRemarques
CSVSéparateur par défaut : virgule
TXTSéparateur par défaut : tabulation
JSONTableau d’objets
XLSXClasseur Excel
ODSClasseur OpenDocument
XMLUn élément par ligne
SQLInstructions INSERT — structure seule, ou structure et données

Choisissez le format, indiquez le chemin du fichier, cliquez sur Exporter. La boîte de dialogue indique où le fichier a été enregistré et — sauf pour un export SQL d’une table entière — combien de lignes il contient.

Exporter depuis la grille de données ​

Exporter la vue dans la barre d’outils de la grille de données exporte la table telle que vous la voyez : le filtre, les filtres de colonnes, le champ de recherche et le tri s’appliquent tous. La boîte de dialogue indique le filtre et le tri qu’elle va utiliser, pour que vous puissiez les vérifier avant l’export.

Sous Quoi exporter :

OptionCe qui va dans le fichier
Toutes les lignes correspondant au filtreToutes les lignes correspondant au filtre — toute la table, pas seulement la page chargée — lues depuis le serveur dans l’ordre de tri de la grille. S’appelle Toutes les lignes lorsqu’aucun filtre n’est appliqué
Lignes sélectionnées uniquementUniquement les lignes sélectionnées dans la grille. Proposé seulement lorsque des lignes sont sélectionnées, et alors choisi par défaut
Colonnes visibles uniquementOmet les colonnes masquées avec Colonnes. Proposé seulement si certaines sont masquées ; activé par défaut

Pour sélectionner des lignes, cliquez sur un numéro de ligne ; Maj+clic sur un autre numéro de ligne étend la sélection à tout ce qui se trouve entre les deux. Cliquer à nouveau sur le même numéro de ligne annule la sélection.

Les lignes sélectionnées sont écrites telles que la grille les contient

Les lignes sélectionnées proviennent de la page chargée, pas d’une nouvelle lecture de la table. Donc :

  • les modifications non enregistrées ne sont pas dans le fichier, pas plus que les nouvelles lignes pas encore enregistrées — appuyez d’abord sur Ctrl+S ;
  • les colonnes binaires sont des espaces réservés <binary N bytes> dans la grille, et c’est ce que reçoit le fichier. Pour le contenu réel, utilisez Toutes les lignes correspondant au filtre au format SQL, avec un filtre qui retient les mêmes lignes — il écrit les colonnes binaires octet par octet sous forme de littéraux hexadécimaux. Les formats texte conservent l’espace réservé.

Au format SQL, vous définissez aussi le Nom de la table dans les instructions INSERT — la table actuelle par défaut ; modifiez-le pour charger les lignes dans une autre table. Avec Toutes les lignes correspondant au filtre, Inclure la structure (CREATE TABLE) place la définition de la table avant les INSERT. Les clés étrangères et les déclencheurs sont omis, car le fichier ne contient qu’une partie des lignes — pour une copie complète d’une table, utilisez Dump en fichier SQL, décrit ci-dessous.

Exporter un résultat de requête ​

Exporter les résultats dans l’éditeur SQL écrit le résultat affiché à l’écran — avec plusieurs instructions, celui dont l’onglet est sélectionné. Les lignes proviennent du cache de résultats, dans l’ordre de tri de la grille de résultats : ce que vous voyez est ce que vous obtenez, sans réexécuter la requête.

Il écrit toujours le résultat entier : sélectionner des lignes dans la grille de résultats ne le restreint pas. Pour n’exporter que certaines lignes, restreignez la requête elle-même (WHERE, LIMIT) et exécutez-la à nouveau.

Au format SQL, le Nom de la table dans les instructions INSERT est rempli avec la table lue par la requête lorsque NabuSQL peut la déterminer, et query_result sinon.

Exports SQL ​

Exporter une table entière en SQL offre un choix supplémentaire : DDL uniquement ou DDL + données. DDL uniquement vous donne l’instruction CREATE TABLE, ce qu’il vous faut pour transférer une structure vers un autre environnement.

Pour une base entière, la barre latérale offre un chemin plus rapide : clic droit sur la base → Dump en fichier SQL ▸ Structure et données ou Structure uniquement. Le même sous-menu existe sur une seule table et sur une sélection de tables, qui vont dans un seul fichier. Les dumps fonctionnent sur MySQL, MariaDB, PostgreSQL, SQL Server et SQLite.

Contenu d’un dump ​

La structure de chaque table — colonnes et types, valeurs par défaut, clés primaires et uniques, contraintes CHECK et index — puis ses lignes, puis ses déclencheurs. L’ordre dans le fichier est choisi pour que la restauration se passe proprement :

  1. les tables et leurs lignes ;
  2. les clés étrangères, une fois que toutes les tables existent, afin que les tables puissent se charger dans n’importe quel ordre ;
  3. dans un dump de la base entière, les fonctions, procédures et vues — les vues dans l’ordre de leurs dépendances, de sorte qu’une vue construite sur une autre vue vienne après elle ;
  4. les déclencheurs, en dernier — créés plus tôt, ils se déclencheraient sur chaque ligne restaurée et modifieraient les données à leur arrivée.

Par moteur :

MoteurÉgalement dans le dump
MySQL / MariaDBSHOW CREATE TABLE tel que le serveur le renvoie, avec une valeur par défaut NEXTVAL pointant vers la séquence de la base dans laquelle le fichier est restauré ; colonnes binaires sous forme de littéraux hexadécimaux (X'…'), octet par octet ; déclencheurs dans des blocs DELIMITER ;; avec leur ordre de déclenchement et leur sql_mode. Un dump de base entière sur MariaDB commence par ses séquences, réglées pour reprendre là où la source en était
PostgreSQLSéquences serial et colonnes identity — elles reprennent après la plus grande valeur restaurée —, colonnes générées, types enum et domaines utilisés par la table, commentaires, fonctions de déclencheurs ; les déclencheurs désactivés restent désactivés
SQL ServerSchémas, IDENTITY avec sa valeur initiale et son incrément, colonnes calculées, collations de colonnes, index filtrés avec INCLUDE ; lots séparés par GO
SQLiteLa table telle que stockée dans sqlite_master, ses index et déclencheurs

Les colonnes générées, calculées et rowversion sont omises des INSERT — le serveur les remplit.

Les vues, procédures et fonctions figurent dans un dump de la base entière — clic droit sur la base, ou Sauvegarde — mais pas dans un dump de tables sélectionnées. Sur PostgreSQL, cela inclut les vues matérialisées (avec leurs index, remplies à la restauration) et les options de vue comme security_barrier ; les objets appartenant à une extension sont laissés à CREATE EXTENSION. Les événements MySQL ne sont pas exportés. Les routines dont le source est masqué — chiffré sur SQL Server, ou non visible pour votre compte MySQL — sont indiquées sous forme de commentaire.

Restaurer par-dessus des tables existantes

Chaque table est supprimée avant d’être créée. Sur PostgreSQL, c’est DROP TABLE … CASCADE, et sur SQL Server, les clés étrangères pointant vers la table sont supprimées d’abord — donc restaurer une partie d’une base supprime les clés étrangères de tables qui ne sont pas dans le fichier. Une sauvegarde complète remet toutes les clés en place.

Dump d’un échantillon de données ​

Structure + échantillon de données… dans le même sous-menu écrit la structure complète, mais seulement une partie des lignes — assez pour une base de test ou de développement, sans copier la production.

OptionEffet
Lignes par table sélectionnéeNombre de lignes fournies par chaque table sélectionnée (100 par défaut)
Depuis le début / Depuis la finLes premières ou les dernières lignes selon la clé primaire. Depuis la fin avec 100 donne les 100 lignes les plus récentes lorsque la clé est un ID auto-incrémenté
Inclure les lignes liées des tables parentes (clés étrangères)Exporte aussi chaque ligne référencée par l’échantillon (activé par défaut)

Les tables sans clé primaire sont marquées ⚠ — leurs lignes arrivent dans l’ordre renvoyé par le serveur, donc « les 100 dernières » n’a de sens que dans la mesure où cet ordre en a.

Lignes liées ​

Avec Inclure les lignes liées activé, l’échantillon reste cohérent : 100 lignes de commande amènent les commandes auxquelles elles appartiennent, ces commandes amènent leurs clients, les clients leurs villes. La chaîne est suivie aussi loin qu’elle va, y compris une table qui pointe vers elle-même, et les tables parentes que vous n’avez pas sélectionnées sont ajoutées avec uniquement les lignes nécessaires. La fenêtre les liste avant l’export, avec la table qui entraîne chacune d’elles.

Les lignes ne sont jamais tirées dans l’autre sens : un client échantillonné n’amène pas toutes ses commandes, sinon un échantillon grossirait jusqu’à la base entière.

Le nombre de lignes est donc N par table sélectionnée, plus ce dont les clés ont besoin. Après l’export, un tableau indique combien de lignes chaque table a reçues et combien sont arrivées via une clé. Le fichier se restaure avec toutes les clés étrangères actives.

Dump ou sauvegarde ​

Trois fonctions se recoupent ici, donc :

  • Export — une table ou un jeu de résultats, dans l’un des formats ci-dessus. Pour remettre des données à une personne ou à un autre système.
  • Dump en fichier SQL — un fichier .sql d’instructions CREATE/INSERT pour une table ou une base entière, directement depuis la barre latérale.
  • Sauvegarde et restauration — un dump complet de la base avec une barre de progression, plus la restauration avec gestion des erreurs. Pour de vraies sauvegardes.

Déplacer des données vers un autre serveur ​

Si la destination est une autre base plutôt qu’un fichier, n’exportez pas pour réimporter — le transfert de données copie tables, vues et routines directement entre connexions, y compris entre moteurs différents.