Do tej pory dane do bazy dodawane zostały przy pomocy polecenia Insert. Czy jest ono złe? No cóż, nie jednak czy widzisz siebie wpisującego 10 000 rekordów do bazy ręcznie? Raczej nie bardzo. Dlatego warto wiedzieć, w jaki sposób wcześniej przygotowane dane dodać do bazy (hurtem) oraz w jaki sposób wyciągnąć je do edycji dla użytkownika.
Dlatego też w tym wpisie nieco dłuższym niż zwykle przedstawię dwie umiejętności: Import oraz Export danych. Dane będą przechowywane w pliku .csv.
Import danych do bazy PostgreSQL
Dane do bazy można dodać na dwa sposoby: z poziomu SQL oraz przy pomocy opcji Import/Export pgAdmina.
Jednak na początek należy utworzyć nową tabelę, która będzie nazywała się persons (osoby). Użyj poniższego zapytania do jej utworzenia.
Tabela zawiera następujące dane: Imię, Nazwisko, Datę urodzenia, Adres email.
1 2 3 4 5 6 7 8 9 |
CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), dob DATE, email VARCHAR(255), PRIMARY KEY (id) ) |
Podejście SQL
Przykładowy plik z danymi możesz pobrać z tego miejsca. Zapisz go najlepiej na dysku C:\dane (nadaj odpowiednie uprawnienia do katalogu, aby był dostępny do importu).
Mając już nową tabelę oraz przykładowe dane w pliku .csv możesz przystąpić do działania.
Na początek otwórz nowe okno Query Tool w pgAdmin.
1 2 3 4 |
COPY persons(first_name, last_name, dob, email) FROM 'C:\dane\persons.csv' DELIMITER ',' CSV HEADER; |
W odpowiedzi otrzymasz COPY 2, ponieważ w pliku .cvs znajdują się dwie testowe osoby. Jeżeli wszystko pójdzie dobrze, do tabeli zostaną dodane testowe dane.
Teraz do ich wypisania wystarczy użyć.
1 |
SELECT * from persons; |
W odpowiedzi pojawią się te dane.
Podejście GUI pgAdmin
Teraz czas na jeszcze wygodniejszy sposób dodawania danych. Na początek warto usunąć lub wyczyścić dane w tabeli persons.
Przed zaimportowaniem danych należy wykonać jeszcze jedna zapytanie, które pozwoli bez żadnych błędów zaimportować dane z pliku .csv, w przeciwnym wypadku pojawi się błąd Oid. Otwórz Query Tool dla tabeli persons.
1 2 |
<strong>TRUNCATE</strong> <strong>TABLE</strong> persons RESTART <strong>IDENTITY</strong>; |
Teraz czas na import danych wprost z pliku.
W kolejnym oknie musisz wybrać kilka opcji, które zostały zaznaczone na czerwono, czyli:
- Import,
- Ścieżkę do pliku .csv,
- Format – csv,
- Header – Yes,
- Delimiter – czyli przecinek (,), jako znak rozdzielający dane w pliku
Następnie przejść na zakładkę Columns i usuń kolumnę id (poprzez najechanie na znak x, obok niego).
Następnie zatwierdź pozostałe kolumny poprzez OK.
Dane zostaną poprawnie zaimportowane i będą widoczne, identycznie jak miało to miejsce w poprzednim podejściu.
Export danych
Dane również możesz eksportować na kilka sposobów. O czym w tej części.
Podejście SQL
Mając testowe dane w tabeli persons, możesz je wyciągnąć do pliku .csv.
Najprostsze podejście to pobranie wszystkie co znajduje się w tabeli. Dane zostaną zapisanie w pliku persons_backup1.csv, jako separator użyj ponownie przecinka (,). W pliku wynikowym znajdują się wszystkie nazwy kolumn (łącznie z id).
1 |
COPY persons TO 'C:\dane\persons_backup1.csv' DELIMITER ',' CSV HEADER; |
Możesz również wyeksportować tylko konkretne kolumny, w tym przypadku nazwisko oraz adres email osoby.
1 |
COPY persons(last_name,email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV; |
Podejście GUI pgAdmin
Teraz podejście przy pomocy GUI.
W nowym oknie wybierz taką konfigurację.
Następnie przejdź na zakładkę Columns. Usuń kolumny, których nie chcesz wyeksportować, pozostałe znajdą się w pliku.
Dane zostały wyeksportowane we wskazane miejsce.
Podsumowanie
W tym wpisie to tyle, import lub export danych jest stosunkowo prosty, na pewno wygodniej wykonuje się go z poziomu GUI niż przy pomocy Query Tool, ale zawsze dobrze mieć wybór.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).