Esportare dati
Puoi esportare un'intera tabella, una tabella così come la mostra la griglia dati, o il risultato di una query. Tutti e tre usano la stessa finestra.
- Una tabella — clic destro su di essa, o Tabella → Esporta come CSV/JSON con la scheda della tabella aperta.
- Ciò che mostra la griglia dati — Esporta vista nella barra degli strumenti: filtro e ordinamento correnti, oppure solo le righe selezionate. Vedi Esportare dalla griglia dati.
- Il risultato di una query — Esporta risultati nell'editor SQL. Poiché i risultati sono in cache, l'esportazione non riesegue la query. Vedi Esportare il risultato di una query.
Formati
| Formato | Note |
|---|---|
| CSV | Delimitatore predefinito: virgola |
| TXT | Delimitatore predefinito: tabulazione |
| JSON | Array di oggetti |
| XLSX | Cartella di lavoro Excel |
| ODS | Foglio di calcolo OpenDocument |
| XML | Un elemento per riga |
| SQL | Istruzioni INSERT — solo struttura, oppure struttura e dati |
Scegli il formato, imposta il percorso, clicca Esporta. La finestra indica dove il file è stato salvato e — tranne che per l'esportazione SQL di un'intera tabella — quante righe contiene.
Esportare dalla griglia dati
Esporta vista nella barra degli strumenti della griglia dati esporta la tabella così come la stai guardando: valgono il filtro, i filtri di colonna, la casella di ricerca e l'ordinamento. La finestra riporta il filtro e l'ordinamento che userà, così puoi controllarli prima di esportare.
In Cosa esportare:
| Opzione | Cosa finisce nel file |
|---|---|
| Tutte le righe che soddisfano il filtro | Ogni riga che soddisfa il filtro — dell'intera tabella, non solo della pagina caricata — letta dal server nell'ordinamento della griglia. Si chiama Tutte le righe quando non c'è un filtro |
| Solo righe selezionate | Solo le righe selezionate nella griglia. Proposta solo quando ci sono righe selezionate, e in quel caso scelta per impostazione predefinita |
| Solo colonne visibili | Esclude le colonne nascoste con Colonne. Proposta solo quando qualcuna è nascosta; attiva per impostazione predefinita |
Per selezionare le righe, clicca il numero di una riga; Shift+clic sul numero di un'altra estende la selezione a tutte quelle in mezzo. Un nuovo clic sullo stesso numero di riga annulla la selezione.
Le righe selezionate vengono scritte come le tiene la griglia
Le righe selezionate provengono dalla pagina caricata, non da una nuova lettura della tabella. Quindi:
- le modifiche non salvate non sono nel file, e nemmeno le nuove righe non ancora salvate — premi prima
Ctrl+S; - le colonne binarie nella griglia sono segnaposto
<binary N bytes>, ed è questo che finisce nel file. Per il contenuto reale usa Tutte le righe che soddisfano il filtro in formato SQL, con un filtro che prenda le stesse righe — scrive le colonne binarie byte per byte come letterali esadecimali. I formati di testo mantengono il segnaposto.
Nel formato SQL imposti anche il Nome tabella nelle istruzioni INSERT — per impostazione predefinita la tabella corrente; cambialo per caricare le righe in un'altra tabella. Con Tutte le righe che soddisfano il filtro, Includi struttura (CREATE TABLE) mette la definizione della tabella prima degli INSERT. Chiavi esterne e trigger restano fuori perché il file contiene solo parte delle righe — per una copia completa della tabella usa Dump SQL file, descritto più avanti.
Esportare il risultato di una query
Esporta risultati nell'editor SQL scrive il risultato che hai sullo schermo — con più istruzioni, quello la cui scheda è selezionata. Le righe arrivano dalla cache dei risultati nell'ordine in cui è ordinata la griglia, quindi ottieni ciò che vedi, senza rieseguire la query.
Scrive sempre il risultato intero: selezionare righe nella griglia dei risultati non lo restringe. Per esportare solo alcune righe, restringi la query stessa (WHERE, LIMIT) ed eseguila di nuovo.
Nel formato SQL, il Nome tabella nelle istruzioni INSERT viene compilato con la tabella da cui legge la query quando NabuSQL riesce a determinarla, altrimenti con query_result.
Esportazioni SQL
L'esportazione SQL di un'intera tabella ha una scelta in più: solo DDL oppure DDL + dati. Solo DDL produce l'istruzione CREATE TABLE, che è quello che serve quando sposti la struttura in un altro ambiente.
Per un intero database la barra laterale offre una via più rapida: clic destro sul database → Dump SQL file ▸ Struttura e dati oppure Solo struttura. Lo stesso sottomenu esiste su una singola tabella e su più tabelle selezionate, che finiscono in un unico file. Il dump funziona su MySQL, MariaDB, PostgreSQL, SQL Server e SQLite.
Cosa contiene un dump
La struttura di ogni tabella — colonne e tipi, valori predefiniti, chiavi primarie e univoche, vincoli CHECK e indici — poi le sue righe, poi i suoi trigger. L'ordine nel file è scelto perché il ripristino vada liscio:
- le tabelle e le loro righe;
- le chiavi esterne, quando tutte le tabelle esistono, così le tabelle si possono caricare in qualsiasi ordine;
- nel dump dell'intero database, funzioni, procedure e viste — le viste in ordine di dipendenza, così una vista costruita su un'altra vista viene dopo di essa;
- i trigger, per ultimi — creati prima, scatterebbero su ogni riga ripristinata e modificherebbero i dati in ingresso.
Per motore:
| Motore | Nel dump c'è anche |
|---|---|
| MySQL / MariaDB | SHOW CREATE TABLE come lo riporta il server, con un default NEXTVAL che punta alla sequenza del database in cui il file viene ripristinato; colonne binarie come letterali esadecimali (X'…'), byte per byte; trigger in blocchi DELIMITER ;; con ordine di esecuzione e sql_mode. Un dump dell'intero database su MariaDB inizia con le sue sequenze, impostate per continuare da dove era arrivata l'origine |
| PostgreSQL | Sequenze serial e colonne identity — ripartono dal valore più alto ripristinato — colonne generate, tipi enum e domini usati dalla tabella, commenti, funzioni dei trigger; i trigger disattivati restano disattivati |
| SQL Server | Schemi, IDENTITY con seed e incremento, colonne calcolate, collation delle colonne, indici filtrati con INCLUDE; batch separati da GO |
| SQLite | La tabella come è salvata in sqlite_master, i suoi indici e trigger |
Le colonne generate, calcolate e rowversion sono escluse dagli INSERT — le riempie il server.
Viste, procedure e funzioni sono nel dump dell'intero database — clic destro sul database o backup — ma non nel dump delle tabelle selezionate. Su PostgreSQL questo comprende le viste materializzate (con i loro indici, popolate al ripristino) e le opzioni delle viste come security_barrier; gli oggetti che appartengono a un'estensione li ricrea CREATE EXTENSION. Gli eventi MySQL non vengono esportati. Le routine il cui sorgente è nascosto — cifrate su SQL Server o non visibili al tuo account MySQL — compaiono come commento.
Ripristino su tabelle esistenti
Ogni tabella viene eliminata prima di essere creata. Su PostgreSQL è DROP TABLE … CASCADE, e su SQL Server vengono prima eliminate le chiavi esterne che puntano alla tabella — quindi il ripristino di una parte del database rimuove le chiavi esterne dalle tabelle che non sono nel file. Un backup completo rimette tutte le chiavi.
Dump con un campione dei dati
Struttura + campione di dati… nello stesso sottomenu scrive la struttura completa ma solo una parte delle righe — abbastanza per un database di test o di sviluppo, senza copiare la produzione.
| Opzione | Effetto |
|---|---|
| Righe per tabella selezionata | Quante righe fornisce ogni tabella selezionata (predefinito 100) |
| Dall'inizio / Dalla fine | Le prime o le ultime righe per chiave primaria. Dalla fine con 100 dà le 100 righe più recenti quando la chiave è un ID auto-increment |
| Includi le righe collegate delle tabelle padre (chiavi esterne) | Esporta anche ogni riga a cui il campione fa riferimento (attivo per impostazione predefinita) |
Le tabelle senza chiave primaria sono segnate con ⚠ — le loro righe arrivano nell'ordine in cui le restituisce il server, quindi "le ultime 100" hanno senso quanto quell'ordine.
Righe collegate
Con Includi le righe collegate il campione resta coerente: 100 righe d'ordine portano gli ordini a cui appartengono, quegli ordini i loro clienti, i clienti le loro città. La catena viene seguita fin dove arriva, anche in una tabella che punta a se stessa, e le tabelle padre che non hai selezionato vengono aggiunte solo con le righe necessarie. La finestra le elenca prima dell'esportazione, con la tabella che le richiama.
Le righe non vengono mai prese nell'altra direzione: un cliente del campione non porta con sé tutti i suoi ordini, altrimenti il campione crescerebbe fino all'intero database.
Il numero di righe è quindi N per tabella selezionata, più quanto richiedono le chiavi. Dopo l'esportazione una tabella mostra quante righe ha ricevuto ciascuna tabella e quante sono arrivate tramite una chiave. Il file si ripristina con tutte le chiavi esterne attive.
Dump o backup
Tre cose qui si sovrappongono, quindi:
- Esportazione — una tabella o un set di risultati, in uno dei formati sopra. Per consegnare dati a una persona o a un altro sistema.
- Dump SQL file — un file
.sqlcon istruzioniCREATE/INSERTper una tabella o un intero database, direttamente dalla barra laterale. - Backup e ripristino — un dump completo con barra di avanzamento e il lato ripristino con gestione degli errori. Per i backup veri.
Spostare dati su un altro server
Se la destinazione è un altro database e non un file, non esportare per poi reimportare: il trasferimento dati copia tabelle, viste e routine direttamente tra connessioni, anche tra motori diversi.
