6. diel - SQLite - Import
V predchádzajúcej lekcii, SQLite - Export, sme si ukázali export dát z databázy v SQLite. Naučili sme sa exportovať do rôznych súborov a pred exportom súbory rôzne upravovať.
V dnešnom SQLite tutoriále sa naučíme importovať zálohy databázy z SQL súboru a tabuliek z CSV súboru. Stiahnite si priložené zálohy tabuliek na konci článku.
K importu dát sa dostaneme cez File -> Import:

A ďalej môžeme vybrať jednu z troch možností: Database from SQL file..., Table from CSV file... a Table from CSV data in Clipboard.... Na import tabuľky musíme mať už pripravenú databázu (aj keby prázdnu), avšak na import databázy nemusíme mať nič. Preto začneme importom databázy.
Import z SQL súboru
Zvolíme možnosť Database from SQL file.... Potom vyberieme náš
stiahnutý súbor users.sql a klikneme na Open. Potom sa
nám otvorí nasledujúce okno:

Tu vyberieme, kam sa uloží samotná databáza, s ktorou bude SQLite
pracovať. Dôjde teda v podstate k prekladu a prekopírovaniu .sql
súboru do súboru, s ktorým vie pracovať SQLite (v našom prípade súbor
.db). Tento súbor potom budeme pri úprave obsahu editovať,
medzitým, čo súbor .sql zostane nezmenený.
Ako názov súboru zadáme users.db a takto pomenovanú
databázu uložíme. Tým sa vytvorí súbor users.db a databáza
sa otvorí. Import je tým dokončený. Databázu si nechajme otvorenú.
Môžeme importovať aj súbory s koncovkou .txt,
ak je ich obsah rovnaký ako obsah súboru .sql.
Import tabuľky zo súboru CSV
Teraz, keď máme naimportovanú databázu, môžeme naimportovať tabuľku z
nášho stiahnutého súboru addresses.csv. Tentokrát zvolíme
teda druhú možnosť Table from CSV file.... Potom vyberieme náš
stiahnutý súbor addresses.csv a klikneme na Open.
Zobrazí sa nám okno s možnosťami importu:

Názov tabuľky
V poli Table name máme predvolený názov tabuľky zodpovedajúci názvu súboru, pod ktorým sa tabuľka importuje. Môžeme ho tu meniť, túto voľbu však teraz nevyužijeme.
Názvy stĺpcov v prvom riadku
Otvoríme si importovaný súbor addresses.csv v aplikácii
Poznámkový blok. V prvom riadku vidíme názvy stĺpcov
user_id a address. Máme teda exportovanú tabuľku
vrátane názvov stĺpcov. Necháme teda voľbu Column
names in first line zaškrtnutú, čím importujeme hodnoty z prvého
riadku ako názvy stĺpcov tabuľky.
Oddeľovač poľa
Pri poli Field separator vyberieme znak, ktorým budú jednotlivé
dáta v rámci jedného záznamu (riadku) od seba oddelené. Ak si nie sme
istí, aký oddeľovač súbor používa, môžeme ho otvoriť napríklad v
aplikácii Poznámkový blok. V našom súbore
adresses.csv vidíme, že sú hodnoty oddelené bodkočiarkou
;, preto túto možnosť v nastavení zvolíme.
Pokiaľ nenájdeme vo výbere použitý oddeľovač z importovaného súboru, môžeme použitý oddeľovač vložiť pomocou voľby Other.
Úvodzovka
Ak v importovanom súbore existujú dáta, ktoré obsahujú rovnaký znak,
akým je oddeľovač, potom celé slovo je zabalené do úvodzoviek. Preto
existuje možnosť Quote character, kde volíme podobu úvodzovky. V
našom súbore addresses.csv taký znak nemáme, preto necháme
defaultnú hodnotu ".
Kódovanie
Táto ponuka nám umožní zvoliť, aké kódovanie používa náš CSV
súbor. Aby sa nám správne zobrazovala slovenská diakritika, ponecháme
defaultnú hodnotu UTF-8.
Odstránenie prázdnych znakov
Pri začiarknutí možnosti Trim fields? sa z polí odstránia
prebytočné medzery na začiatku a na konci hodnôt. Napríklad zo záznamu
________Richard____ tak dostaneme iba Richard.
(_ v ukážke predstavuje medzeru). Voľbu necháme
zaškrtnutú.
Pokročilé nastavenie
Po rozkliknutí voľby Advanced sa nám otvoria ďalšie možnosti, ktoré si krátko popíšeme. Tieto možnosti v našom prípade nevyužijeme a ponecháme ich v predvolenom nastavení, tj nezaškrtnuté.
Disable data type detection
Zaškrtnutím vypíname detekciu dátových typov - dáta sa naimportujú bez uvedenia dátového typu.
Use local number conventions
Pokiaľ je táto možnosť zaškrtnutá, budú sa číselné hodnoty exportovať podľa miestnych zvyklostí systému – napríklad s desatinnou čiarkou namiesto bodky alebo s medzerou ako oddeľovačom tisícov.
Ignore default values
Táto voľba sa rieši v prípade importu do už existujúcej tabuľky a importovaný súbor obsahuje prázdne polia. Pokiaľ má tabuľka pre tieto polia defaultnú hodnotu (takú, ktorá sa vyplní pri prázdnom poli), bude táto defaultná hodnota doplnená do poľa. Ak však vyberieme pri importe túto možnosť, defaultné hodnoty sa nevložia a pole zostane prázdne.
Fail on missing values
Pri zaškrtnutí možnosti Fail on missing values import vyvolá
chybu, pokiaľ niektorý NOT NULL stĺpec dostane pri importe
chýbajúcu hodnotu (NULL).
Conflict strategy
Tu máme možnosť vybrať riešenie konfliktnej situácie medzi dvoma hodnotami v poli, ktoré je označené ako unikátne. Táto situácia môže nastať napríklad pre hodnoty poľa označené ako primárny kľúč. Môžeme vybrať z nasledujúcich možností.
Abort import
Import sa ukončí.
Ignore row
Riadok, ktorý vyvoláva konflikt, bude pri importe preskočený.
Replace existing row
Už existujúci riadok bude nahradený novými dátami z importovaného súboru.
Ponecháme defaultnú prvú možnosť Abort import klikneme na tlačidlo OK:

Kontrola dát
Otvoríme si tabuľku addresses v SQLite:

Vidíme, že import bol úspešný. 
V nasledujúcej lekcii, SQLite - Radenie, Limit a agregačné funkcie, sa pozrieme na radenie a agregačné funkcie.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 138x (666 B)
Aplikácia je vrátane zdrojových kódov v jazyku SQL
