Database queries

CSV bestanden importeren

Soms heb je al een database structuur, maar krijg je later nieuwe nieuwe data die je aan een tabel toe wilt voegen. Het kan gaan om data uit Excel-bestanden of data uit een IoT omgeving. In dit hoofdstuk kun je zien hoe je de bestaande data uit een tabel kunt verwijderen en hoe je nieuwe data toevoegd.

Voorbeeld

Eerder is er gebruik gemaakt van een database school. De database bevat 4 tabellen...

MariaDB [(none)]> use school;
Database changed
MariaDB [school]> show tables;
+------------------+
| Tables_in_school |
+------------------+
| c_regel |
| cursist |
| cursus |
| docent |
+------------------+
4 rows in set (0.010 sec)

Stel er wordt nieuwe data aangeleverd (bijv. de gegevens van een andere school). Welke handelingen moet je doen om de database te legen en de nieuwe data te importeren.


MariaDB [school]> show fields from c_regel;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| curs_code | varchar(8) | YES | | NULL | |
| cursistnr | varchar(4) | YES | | NULL | |
| cijfer | decimal(2,0) | YES | | NULL | |
| betaald | decimal(6,2) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
4 rows in set (0.042 sec)

Voer de volgende queries uit:

truncate c_regel;
truncate docent;
truncate cursist;
truncate cursus;

NB: truncate verwijdert alle records uit een tabel. De identity ('id') wordt ook gereset en begint weer bij 1. delete from c_regel verwijdert ook alle records uit de tabel, maar als er weer nieuwe records worden toegevoegd zal het oorspronkelijke id weer worden opgehoogd. (hoogste id was bijv. 100, nieuwe records invoegen starten bij 101...).

CSV-data importeren

voorbeeld 1:

id,title,firstname,lastname,email,jobtitle
1,mevr.,Liam,Polat,l.polat@superduper-markets.com,verkoopassistent
2,dhr.,Ian,van der Horst,i.vanderhorst@superduper-markets.com,magazijnmedewerker
3,mevr.,Riley,Yüksel,r.yüksel@superduper-markets.com,medewerker administratie
voorbeeld 2:

"1";"mevr.";"Liam";"Polat";"l.polat@superduper-markets.com";"verkoopassistent"
"2";"dhr.";"Ian";"van der Horst";"i.vanderhorst@superduper-markets.com";"magazijnmedewerker"
"3;"mevr.";"Riley";"Yüksel";"r.yüksel@superduper-markets.com";"medewerker administratie"

Om CSV-data op de juiste manier te importeren moet je rekening houden met de verschillende verschijningsvormen.

Data import voorbeeld 1:

LOAD DATA INFILE "C:/Users/jsiewers/Downloads/school/cursus.csv" \
INTO TABLE cursus \
COLUMNS TERMINATED BY ',' \
LINES TERMINATED BY '\n' \
IGNORE 1 LINES;
Data import voorbeeld 2:

LOAD DATA INFILE "C:/Users/jsiewers/Downloads/school/cursus.csv" \
INTO TABLE cursus \
COLUMNS TERMINATED BY ';' \
ENCLOSED BY '"' \
LINES TERMINATED BY '\n' \
IGNORE 0 LINES;