Samenvatting: in deze tutorial laten we u verschillende manieren zien om een CSV-bestand te importeren in een PostgreSQL tabel.
Eerst maakt u een nieuwe tabel met de naam persons
met de volgende kolommen:
-
id
: de persoon id -
first_name
: voornaam -
last_name:
achternaam -
dob
geboortedatum -
email
: het e-mailadres
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))
Ten tweede, bereid een CSV-gegevensbestand voor met de volgende opmaak:
Het pad van het CSV-bestand is als volgt: C:\sampledb\persons.csv
Downlo de personen.csv-bestand
Een CSV-bestand in een tabel importeren met behulp van COPY-instructie
Om dit CSV-bestand in de persons
tabel te importeren, gebruikt u COPY
-instructie als volgt:
Code language: SQL (Structured Query Language) (sql)COPY persons(first_name, last_name, dob, email)FROM 'C:\sampledb\persons.csv'DELIMITER ','CSV HEADER;
PostgreSQL geeft de volgende melding terug:
Code language: Shell Session (shell)COPY 2
Dit betekent dat er twee rijen zijn gekopieerd. Laten we de persons
tabel eens controleren.
Code language: SQL (Structured Query Language) (sql)SELECT * FROM persons;
Het werkt zoals verwacht.
Laten we eens wat dieper ingaan op het COPY-instructie.
Eerst specificeert u de tabel met kolomnamen na het COPY
sleutelwoord. De volgorde van de kolommen moet dezelfde zijn als die in het CSV-bestand. Als het CSV-bestand alle kolommen van de tabel bevat, hoeft u ze niet expliciet op te geven, bijvoorbeeld:
Code language: SQL (Structured Query Language) (sql)COPY sample_table_nameFROM 'C:\sampledb\sample_data.csv' DELIMITER ',' CSV HEADER;
Ten tweede zet u het CSV-bestandspad na het FROM
sleutelwoord. Omdat de CSV-bestandsindeling wordt gebruikt, moet u zowel DELIMITER
als CSV
-clausules opgeven.
Ten derde geeft u het HEADER
-sleutelwoord op om aan te geven dat het CSV-bestand een koptekst bevat. Wanneer het COPY
commando gegevens importeert, negeert het de header van het bestand.
Merk op dat het bestand direct door de PostgreSQL server moet worden gelezen, niet door de client applicatie. Daarom moet het toegankelijk zijn voor de PostgreSQL server machine. Ook moet u superuser toegang hebben om het COPY
statement succesvol te kunnen uitvoeren.
Porteer CSV bestand in een tabel met pgAdmin
In het geval dat u een CSV bestand van uw computer moet importeren in een tabel op de PostgreSQL database server, kunt u pgAdmin gebruiken.
Het volgende statement maakt de persons
tabel onvolledig, zodat u de gegevens opnieuw kunt importeren.
Code language: SQL (Structured Query Language) (sql)TRUNCATE TABLE persons RESTART IDENTITY;
Klik eerst met de rechtermuisknop op de persons
tabel en selecteer het Import/Export… menu-item:
Tweede, (1) schakel over naar importeren, (2) blader naar het importbestand, (3) selecteer het formaat als CSV, (4) selecteer het scheidingsteken als komma (,
):
Ter derde klikt u op het tabblad kolommen, verwijdert u het vinkje bij de kolom id en klikt u op de knop OK:
Wacht ten slotte tot het importproces is voltooid. Hieronder ziet u het dialoogvenster dat u informeert over de voortgang van de import:
In deze tutorial hebt u geleerd hoe u gegevens uit een CSV-bestand kunt importeren in een tabel op de PostgreSQL-databaseserver met behulp van het COPY
statement en het pgAdmin-hulpprogramma.
- Was deze handleiding nuttig?
- Ja/Nee