Komendy:

W celu wyeksportowania tabeli lub zapytania do csv należy użyć jednego z poniższych poleceń:

Dla Client-Side Export:

\copy to '' csv header

Dla Server-Side Export:

COPY to '' csv header;

Przykładowa ścieżka bezwzględna: '/Users/matt/Desktop/filename.csv'

Przykładowa ścieżka względna: 'Desktop/filename.csv'

Słowa kluczowe:

  • csv: to mówi poleceniu kopiowania, że tworzony plik powinien być plikiem CSV.
  • header: to mówi poleceniu kopiowania, aby dołączyło nagłówki na górze dokumentu.

Używanie poleceń

Pliki CSV (Commomma Separated Value) są użytecznym formatem przechowywania danych. Wiele narzędzi wspiera import danych z plików CSV, ponieważ jest to łatwy do odczytania format, który jest czystym tekstem i nie jest zależny od metadanych.

W psql są dwa polecenia, które mogą to zrobić, oba nieco się różnią.

Pierwszym jest meta-polecenie \copy, które jest używane do generowania pliku CSV klienta. Polecenie to pobiera określoną tabelę lub wyniki zapytania i zapisuje je na komputerze klienta.

Drugie polecenie, COPY, generuje plik CSV na serwerze, na którym działa baza danych.

Komenda \copy

Metakomenda \copy służy do eksportu na komputer klienta. Jest ono przydatne do kopiowania bazy danych, do której dostęp może być ograniczony oraz do tworzenia osobistej kopii danych. Na przykład, użytkownik może chcieć wygenerować csv, aby móc analizować dane finansowe w Excelu. Format kopii do csv jest następujący:

\copy to csv header

W sekcji można wpisać tabelę lub zapytanie. Na przykład, aby skopiować wszystkie wpisy z tabeli, nazwa tabeli może być umieszczona tutaj. Aby skopiować wszystkie wpisy zawierające w nazwie słowo „piła” z tabeli narzędzi do csv, można wykonać następujące polecenia:używając polecenia \copy z podzapytaniem wybierającym wpisy zawierające 'piłę''saw' in them

The jest ścieżką od miejsca, w którym psql aktualnie zapisuje pliki do miejsca, w którym chcesz zapisać plik. Lokalizację, w której psql aktualnie zapisuje pliki, można znaleźć za pomocą polecenia \! pwd.

Uwaga: Meta-polecenie \u0026apos; pobiera wszystkie podane argumenty i uruchamia je jako polecenie bash w psql.

Polecenie pwd wypisuje bieżący katalog roboczy. Meta-polecenia pwd i ls są pokazane poniżej:użycie ! do uruchomienia ls i pwd

To oznacza, że jeśli nazwa pliku „myTools.csv”, zostanie on zapisany w /Users/matt/, jak widać poniżej:

Pokazuje uruchomione kopiowanie i odpowiadający mu plik, który został utworzony

Plik może być również zapisany w innym miejscu poprzez podanie określonej ścieżki względnej. Na przykład, jeżeli jako ścieżka zostanie podana '/Desktop/.csv', plik zostanie zapisany na pulpicie.

Po ścieżce względnej w poleceniu znajduje się tekst 'csv header;' Tekst ten robi dwie rzeczy. Tekst 'csv' określa, że dane powinny być zapisane w formacie CSV. Inne możliwe formaty to 'text' i 'Binary'.

Nagłówek' określa, że gdy dane są kopiowane do pliku csv, nazwy każdej kolumny powinny być zapisane w pierwszym wierszu, jak pokazano tutaj:

porównanie csv z nagłówkiem i bez nagłówka

KOPIUJ

Kopiuj również wymaga od użytkownika określenia tabeli/ zapytania do skopiowania. Jednak w przeciwieństwie do kopiowania, polecenie COPY wymaga podania ścieżki bezwzględnej. Dzieje się tak, ponieważ COPY służy do kopiowania bazy danych z serwera do innej lokalizacji na tym samym serwerze, a nie na komputer klienta. Polecenie pwd jest bardzo przydatne do znalezienia bezwzględnej ścieżki, jeśli nie wiesz, gdzie zapisać plik. Aby zapisać plik na pulpicie przy użyciu \copy 'Desktop/.csv' zostanie użyty. Aby zrobić to za pomocą polecenia COPY, należałoby użyć '/Users//Desktop/.csv', jak pokazano poniżej:

Pokazuje użycie polecenia COPY do skopiowania pliku csv

Podsumowanie

  • Aby skopiować tabelę lub zapytanie do pliku csv, użyj polecenia ™copy lub polecenia COPY.
  • Copy powinno być używane do kopiowania do systemów lokalnych
    • Copy używa względnej ścieżki
  • COPY powinno być używane do tworzenia csv po stronie serwera.
    • COPY używa ścieżki bezwzględnej.

Dodaj komentarz

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