Podsumowanie: W tym poradniku pokażemy różne sposoby importu pliku CSV do tabeli PostgreSQL.
Po pierwsze, utwórz nową tabelę o nazwie persons
z następującymi kolumnami:
-
id
: id osoby -
first_name
: imię i nazwisko -
last_name:
nazwisko -
dob
data urodzenia -
email
: adres e-mail
Code language: SQL (Structured Query Language) (sql)CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), dob DATE, email VARCHAR(255), PRIMARY KEY (id))
Po drugie, przygotuj plik danych CSV o następującym formacie:
Ścieżka do pliku CSV jest następująca: C:\sampledb\persons.csv
Downlo osób.csv
Import pliku CSV do tabeli przy użyciu instrukcji COPY
Aby zaimportować ten plik CSV do tabeli persons
, należy użyć instrukcji COPY
w następujący sposób:
Code language: SQL (Structured Query Language) (sql)COPY persons(first_name, last_name, dob, email)FROM 'C:\sampledb\persons.csv'DELIMITER ','CSV HEADER;
PostgreSQL zwraca następujący komunikat:
Code language: Shell Session (shell)COPY 2
To oznacza, że dwa wiersze zostały skopiowane. Sprawdźmy tabelę persons
Code language: SQL (Structured Query Language) (sql)SELECT * FROM persons;
Działa zgodnie z oczekiwaniami.
Zanurzmy się w instrukcji COPY bardziej szczegółowo.
Po pierwsze, określamy tabelę z nazwami kolumn po słowie kluczowym COPY
. Kolejność kolumn musi być taka sama jak w pliku CSV. W przypadku, gdy plik CSV zawiera wszystkie kolumny tabeli, nie trzeba ich podawać, na przykład:
Code language: SQL (Structured Query Language) (sql)COPY sample_table_nameFROM 'C:\sampledb\sample_data.csv' DELIMITER ',' CSV HEADER;
Po drugie, ścieżkę do pliku CSV umieszczamy po słowie kluczowym FROM
. Ponieważ używany jest format pliku CSV, należy podać zarówno klauzule DELIMITER
, jak i CSV
.
Po trzecie, należy podać słowo kluczowe HEADER
, aby wskazać, że plik CSV zawiera nagłówek. Kiedy polecenie COPY
importuje dane, ignoruje nagłówek pliku.
Zauważ, że plik musi być odczytany bezpośrednio przez serwer PostgreSQL, a nie przez aplikację kliencką. Z tego powodu musi być on dostępny na serwerze PostgreSQL. Ponadto, aby poprawnie wykonać instrukcję COPY
musisz mieć dostęp do superużytkownika.
Import pliku CSV do tabeli za pomocą pgAdmin
Jeśli chcesz zaimportować plik CSV z komputera do tabeli na serwerze bazy danych PostgreSQL, możesz użyć pgAdmin.
Poniższe polecenie obcina persons
tabelę, dzięki czemu możesz ponownie zaimportować dane.
Code language: SQL (Structured Query Language) (sql)TRUNCATE TABLE persons RESTART IDENTITY;
Najpierw kliknij prawym przyciskiem myszy tabelę persons
i wybierz element menu Import/Eksport…:
Po drugie, (1) przełączyć na import, (2) przeglądamy plik importu, (3) wybieramy format jako CSV, (4) wybieramy delimiter jako przecinek (,
):
Po trzecie, klikamy zakładkę kolumny, odznaczamy kolumnę id i klikamy przycisk OK:
Na koniec należy poczekać na zakończenie procesu importu. Poniżej pokazane jest okno dialogowe informujące o postępie importu:
W tym tutorialu dowiedziałeś się, jak zaimportować dane z pliku CSV do tabeli na serwerze bazy danych PostgreSQL za pomocą instrukcji COPY
oraz narzędzia pgAdmin.
- Czy ten tutorial był pomocny?
- TakNie