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.

Sprawdźmy dane tabeli persons.
Code language: SQL (Structured Query Language) (sql)SELECT*FROMpersons;

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:
Code language: SQL (Structured Query Language) (sql)COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
PostgreSQL eksportuje wszystkie dane ze wszystkich kolumn tabeli persons do pliku persons_db.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
Code language: SQL (Structured Query Language) (sql)COPY persons(first_name,last_name,email) TO 'C:\tmp\persons_partial_db.csv' DELIMITER ',' CSV HEADER;

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.
Code language: SQL (Structured Query Language) (sql)COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;

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:
Code language: SQL (Structured Query Language) (sql)\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
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