I comandi:

Per esportare una tabella o una query in CSV usare uno dei seguenti comandi:

Per l’esportazione lato client:

\copy to '' csv header

Per l’esportazione lato server:

COPY to '' csv header;

Esempio Percorso assoluto: ‘/Users/matt/Desktop/filename.csv’

Percorso relativo d’esempio: ‘Desktop/filename.csv’

Parole chiave:

  • csv: questo dice al comando di copia che il file creato deve essere un file CSV.
  • header: questo dice al comando copy di includere le intestazioni in cima al documento.

Utilizzo dei comandi

I file CSV (Comma Separated Value) sono un formato utile per memorizzare dati. Molti strumenti supportano l’importazione di dati da file CSV perché è un formato facile da leggere che è testo semplice e non dipende dai metadati.

In psql ci sono due comandi che possono fare questo, entrambi leggermente diversi.

Il primo è il meta-comando \copy che è usato per generare un file CSV client. Questo comando prende la tabella specificata o i risultati della query e li scrive sul computer del cliente.

Il secondo comando, COPY, genera un file CSV sul server dove il database è in esecuzione.

Il comando \copy

Il meta-comando \copy è usato per esportare su un computer client. È utile per copiare un database che può avere un accesso limitato e per creare una copia personale dei dati. Per esempio, un utente potrebbe voler generare un csv per poter analizzare i dati finanziari in excel. Il formato di una \copia in csv è il seguente:

\copy to csv header

La sezione può essere riempita con una tabella o una query. Per esempio, per copiare tutte le voci da una tabella, il nome della tabella può essere messo qui. Per copiare tutte le voci che contengono “saw” nei loro nomi dalla tabella degli strumenti ad un csv, si potrebbero eseguire i seguenti comandi:usando \copy con una subquery per selezionare le voci che hanno 'saw' in esse'saw' in them

Il percorso da dove psql sta attualmente salvando i file a dove si vuole salvare il file. La posizione che psql sta attualmente salvando può essere trovata usando il comando \! pwd.

Nota: Il meta-comando \! prende qualsiasi argomento che gli viene dato e lo esegue come un comando bash all’interno di psql.

Il comando pwd stampa la directory di lavoro corrente. I meta-comandi \! pwd e \! ls sono mostrati in uso qui sotto:usando ! per eseguire ls e pwd

Questo significa che se il nome del file “myTools.csv” è usato come il , sarà salvato in /Users/matt/ come si può vedere qui sotto:

Mostra \copia in esecuzione e il file corrispondente che è stato creato

Il file può anche essere salvato altrove inserendo un percorso relativo specifico. Per esempio, se viene inserito ‘/Desktop/.csv’ come percorso, il file verrà salvato sul desktop.

Seguendo il percorso relativo nel comando c’è il testo ‘csv header;’ Questo testo fa due cose. Il ‘csv’ specifica che i dati devono essere memorizzati nel formato CSV. Altri formati possibili sono ‘text’ e ‘Binary.

L”header’ specifica che, quando i dati sono copiati in un file csv, i nomi di ogni colonna dovrebbero essere salvati sulla prima linea come mostrato qui:

confronto di un csv con e senza un header

Il comando COPY

Anche il comando COPY richiede all’utente di specificare una Tabella/Query da copiare. A differenza di \copy però, il comando COPY richiede un percorso assoluto. Questo perché COPY serve a copiare un database da un server ad un’altra posizione sullo stesso server, non ad un computer client. Il pwd è molto utile per trovare il percorso assoluto se non sai dove salvare il file. Per salvare sul desktop usando \copy verrebbe usato ‘Desktop/.csv’. Per fare questo con COPY, dovrebbe essere usato ‘/Users//Desktop/.csv’ come mostrato sotto:

Mostra l'uso di COPY per copiare un file csv

Sommario

  • Per copiare una tabella o una query in un file csv, usa il comando \copy o il comando COPY.
  • \copy dovrebbe essere usato per una copia sui sistemi locali
    • \copy usa un percorso relativo
  • COPY dovrebbe essere usato per creare un csv dalla parte del server.
    • COPY usa un percorso assoluto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *