Eksport tabeli PostgreSQL do pliku CSV

Podsumowanie: W tym poradniku poznasz różne techniki eksportu danych z tabel PostgreSQL do plików CSV.

W poprzednim poradniku pokazaliśmy jak zaimportować dane z pliku CSV do tabeli. My wykorzystamy tabelę persons , którą stworzyliśmy do importu danych z pliku CSV.

posgresql export csv

Sprawdźmy dane tabeli persons.

SELECT*FROMpersons;
Code language: SQL (Structured Query Language) (sql)
posgresql import csv from pgAdmin tool persons table

W tabeli mamy dwa rekordy.

Eksport danych z tabeli do CSV za pomocą instrukcji COPY

Najprostszym sposobem na wyeksportowanie danych z tabeli do pliku CSV jest użycie instrukcji COPY. Na przykład, jeśli chcesz wyeksportować dane tabeli persons do pliku CSV o nazwie persons_db.csv w folderze C:\tmp, możesz użyć następującej instrukcji:

COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

PostgreSQL eksportuje wszystkie dane ze wszystkich kolumn tabeli persons do pliku persons_db.csv.

postgresql export csv

W niektórych przypadkach chcemy wyeksportować dane tylko z niektórych kolumn tabeli do pliku CSV. Aby to zrobić, należy podać nazwy kolumn wraz z nazwą tabeli po słowie kluczowym COPY. Na przykład, poniższe polecenie eksportuje dane z tabel first_namelast_name, i email kolumny tabeli persons do person_partial_db.csv

COPY persons(first_name,last_name,email) TO 'C:\tmp\persons_partial_db.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)
postgresql export csv partially

Jeśli nie chcesz eksportować nagłówka, który zawiera nazwy kolumn tabeli, wystarczy usunąć flagę HEADER w instrukcji COPY. Poniższa instrukcja eksportuje tylko dane z kolumny email tabeli persons do pliku CSV.

COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;
Code language: SQL (Structured Query Language) (sql)
postgresql export csv częściowo bez nagłówka

Zauważ, że nazwa pliku CSV, którą podajesz w poleceniu COPY musi być zapisana bezpośrednio przez serwer. Oznacza to, że plik CSV musi znajdować się na maszynie serwera bazy danych, a nie na maszynie lokalnej użytkownika. Plik CSV musi być również zapisywalny przez użytkownika, jako który działa serwer PostgreSQL.

Eksport danych z tabeli do pliku CSV za pomocą polecenia kopiuj

W przypadku, gdy masz dostęp do zdalnego serwera bazy danych PostgreSQL, ale nie masz wystarczających uprawnień do zapisu do pliku na nim, możesz skorzystać z wbudowanego w PostgreSQL polecenia \copy.

Komenda \copy w zasadzie uruchamia powyższą instrukcję COPY. Jednak zamiast zapisywania pliku CSV przez serwer, psql zapisuje plik CSV, przenosząc dane z serwera do lokalnego systemu plików. Aby użyć \copy polecenia, wystarczy mieć wystarczające uprawnienia do lokalnego komputera. Nie wymaga to uprawnień superużytkownika PostgreSQL.

Na przykład, jeśli chcesz wyeksportować wszystkie dane z tabeli persons do pliku persons_client.csv , możesz wykonać polecenie \copy z poziomu klienta psql w następujący sposób:

\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
Code language: SQL (Structured Query Language) (sql)

W tym poradniku pokazaliśmy, jak używać COPY statement i \copy polecenia do eksportu danych z tabeli do plików CSV.

  • Czy ten poradnik był pomocny?
  • TakNie

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *