Cursus
Spreadsheets zijn waarschijnlijk een van de meest wezenlijke onderdelen binnen een organisatie (van welke aard dan ook). Vaak zijn er situaties waarin je een belangrijke spreadsheet(s) in een databaseserver wilt importeren, zodat je er effectief query’s op kunt uitvoeren. In deze tutorial leer je hoe je dit doet in PostgreSQL.
Deze tutorial gaat ervan uit dat je al bekend bent met SQL en weet hoe je eenvoudige SQL-query’s in PostgreSQL schrijft. Als je nieuw bent met SQL, dan vind je hieronder enkele bronnen die kunnen helpen:
Deze tutorial is opgedeeld in de volgende twee hoofdsecties:
- Een spreadsheet omzetten naar een .csv-bestand
- Een .csv-bestand importeren in een PostgreSQL-database
Een spreadsheet omzetten naar een .csv-bestand
Om te beginnen heb je een spreadsheet nodig om mee verder te gaan. Je kunt een spreadsheet maken in elke Excel-editor zoals Google Spreadsheets, MS Excel, enzovoort. Wil je de basis van spreadsheets leren, volg dan DataCamp’s cursus Spreadsheet Basics of lees deze beginnershandleiding voor spreadsheets. Om deze tutorial te kunnen volgen, kun je deze spreadsheet gebruiken met de volgende kolommen:
- ID
- Name
- Age
- Percentage Marks
De spreadsheet bevat in totaal 20 records.
Laten we snel een momentopname bekijken (met de eerste 10 rijen) van de spreadsheet - 
De spreadsheet bevat informatie over een paar studenten.
We kunnen de waarschijnlijke datatypes van de kolommen afleiden uit de momentopname:
- ID, Age en Percentage Marks zijn numerieke kolommen. Meer specifiek: ID en Age kunnen van het type integer zijn en de kolom
Percentage Markskan van het type float zijn. - De kolom
Nameis van het type tekenreeks.
De eenvoudigste manier om deze spreadsheet (je kunt het ook dataset noemen) in een PostgreSQL-database te importeren, is door de spreadsheet eerst naar een .csv-bestand om te zetten en dit vervolgens in een PostgreSQL-database te importeren. CSV staat voor comma-separated values. Dit heeft twee belangrijke voordelen:
- .csv-bestanden zijn veel lichter dan spreadsheets en daarom in omgevingen met weinig geheugen makkelijker te verwerken.
- Er zijn veel ingebouwde hulpprogramma’s in PostgreSQL om .csv-bestanden efficiënt te verwerken.
Elke Excel-editor laat je een spreadsheet omzetten naar een .csv-bestand. In Google Spreadsheets kan dat via: Bestand -> Downloaden als -> Door komma’s gescheiden waarden.
Een .csv-bestand importeren in een PostgreSQL-database
Om het zojuist gemaakte .csv-bestand in een PostgreSQL-database te kunnen importeren, heb je eerst een PostgreSQL-database nodig. Laten we er snel een aanmaken via de pgAdmin-interface.
Je kunt een database aanmaken met een naam naar keuze. Als dat gelukt is, moet je in die database een tabel maken die de records uit het te importeren .csv-bestand gaat bevatten. Laten we een tabel met de naam Student_Records maken in de database die je zojuist hebt aangemaakt.
CREATE TABLE Student_Records
(
ID serial NOT NULL,
Name varchar(50),
Age SMALLINT,
Percentage_Marks float8
);
Je hebt de datatypes van de kolommen aangehouden zoals hierboven besproken. Voor het gemak heb je de kolomnamen ook hetzelfde gehouden. Navigeer nu in pgAdmin naar de zojuist gemaakte tabel, klik met de rechtermuisknop op de tabel en kies Import uit de opties. Ter referentie - https://www.loom.com/share/2eeb1a2c94bf4f928c3ffa5b1b72eef4.
Je kunt de fouten die tijdens het importeren optraden, zoals in de screencast te zien is, negeren. Je kunt verifiëren of de records correct zijn geïmporteerd door een select-query uit te voeren.
Laten we nu bekijken hoe je het bovenstaande doet via de psql-prompt. Laten we daarvoor eerst de tabel Student_Records leegmaken met de query truncate table Student_Records;.
Open nu een psql-prompt die er ongeveer zo uitziet - 
Schakel nu over naar de database die je aanvankelijk hebt gemaakt voor het importeren van de spreadsheet. Je kunt in PostgreSQL naar een database overschakelen met het volgende commando:
\c database_name
Als dit is gelukt, verandert de psql-prompt naar de naam van de door jou opgegeven database. Je kunt nu het volgende commando uitvoeren om het .csv-bestand te importeren in de tabel Students_Records -
COPY Student_Records(ID,Name,Age,Percentage_Marks) FROM 'D:\Students.csv' DELIMITER ',' CSV HEADER;
Voer nu een select-query uit om te controleren of de import correct is uitgevoerd.
Je kunt meer te weten komen over het Copy-commando via deze link en met de verschillende opties experimenteren.
Conclusie
Dat was het voor deze tutorial. Je kunt nu een spreadsheet in PostgreSQL importeren en je analyses uitvoeren, net zoals je dat met standaard SQL-tabellen doet.
