Mange databaseverktøy, f.eks. phpMyAdmin, MySQL Workbench og Access har menyvalg for import og eksport av CSV-filer (blir ikke forklart her). Slike interaktive løsninger er enkle å bruke, men kan ha restriksjoner når det gjelder størrelse på datasettet.
For MySQL og MariaDB kan kommandolinjeverktøyet være et alternativ for import og eksport av større datasett. Eksemplene under er testet med MariaDB.
MariaDB: Kommandolinje ★ Import ★ Eksport
MySQL: Kommandolinje ★ Import ★ Eksport
Hvordan man starter opp kommandolinjeverktøyet varierer litt med hvilket operativsystem man har, og hvordan man har installert MariaDB/MySQL.
Her er det forutsatt at MariaDB er installert som del av XAMPP, installert på mappe c:\xampp under Windows.
Først starter man DOS kommandolinjeverktøy og navigerer til undermappe \xampp\mysql\bin:
cd \xampp\mysql\bin
Hvis man har gjort en standard installasjon, uten å sette passord på root (som er lettvint for testing, men som man ikke bør gjøre for en database i produksjon), kan man logge på og gå til databasen testdb slik:
mysql --user=root testdb
Nå kan man skrive SQL-kommandoer, f.eks. SELECT. For å avslutte:
exit;
Skjermdumpen under viser et eksempel på en dialog, der vi ser at kommandoer skal avsluttes med semikolon og at kommandoen help viser en hjelpetekst.
Tips 1: Bruk piltastene (opp og ned) for å bla i "kommandohistorikken", det er nyttig hvis du vil gjenta en tidligere kommando.
Tips 2: Hvis man bruker kommandolinjeverktøyet ofte, bør man legge bin-mappen inn i PATH.
Databasen Bilsalg til øvingsoppgavene i kapittel 3 inneholder følgende tabell med drøye 200 000 rader:
For å eksportere denne tabellen til en CSV-fil bilsalg.csv kan vi bruke SELECT ... INTO OUTFILE, slik:
SELECT Bilmerke, Bilmodell, KommuneNr, År, Måned, Antall
INTO OUTFILE 'bilsalg.csv'
FIELDS TERMINATED BY ';'
ENCLOSED BY ''
LINES TERMINATED BY '\n'
FROM Bilsalg;
Vi bruker semikolon som skilletegn (FIELDS TERMINATED BY) og omslutter ikke tekstverdier av apostrofer eller lignende (ENCLOSED BY er satt til tom tekst). Hver rad er satt på en egen linje (LINES TERMINATED BY).
For å importere den samme CSV-filen til tabellen Bilsalg (nå forutsetter vi at tabellen er tom), kan man bruke LOAD-kommandoen:
LOAD DATA INFILE 'bilsalg.csv'
INTO TABLE Bilsalg
CHARACTER SET 'utf8'
COLUMNS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(Bilmerke, Bilmodell, KommuneNr, År, Måned, Antall);