Lekce 6 - SQLite - Import
V minulé lekci, SQLite - Export, jsme si ukázali export dat z databáze v SQLite. Naučili jsme se exportovat do různých souborů a před exportem soubory různě upravovat.
V dnešním SQLite tutoriálu se naučíme importovat zálohy databáze z SQL souboru a tabulek z CSV souboru. Stáhněte si přiložené zálohy tabulek v ZIP archivu na konci článku a archiv extrahujte.
K importu dat se dostaneme přes File > Import:

A dále můžeme vybrat jednu ze tří možností: Database from SQL file..., Table from CSV file... a Table from CSV data in Clipboard.... K importu tabulky musíme mít již připravenou databázi (i kdyby prázdnou), ovšem k importu databáze nemusíme mít nic. Proto začneme importem databáze.
Import z SQL souboru
Zvolíme možnost Database from SQL file.... Poté vybereme náš
stáhnutý soubor uzivatele.sql
a klikneme na Open.
Otevře se nám následující okno:

Zde vybereme, kam se uloží samotná databáze, se kterou bude SQLite
pracovat. Dojde tedy v podstatě k překladu a překopírování
.sql
souboru do souboru, se kterým umí pracovat SQLite (v našem
případě má soubor příponu .db
). Tento soubor potom budeme
při úpravě obsahu editovat, mezitím, co soubor .sql
zůstane
nezměněn.
Jako název souboru zadáme uzivatele.db
a takto pojmenovanou
databázi uložíme. Tím se vytvoří soubor uzivatele.db
a
databáze se otevře. Import je tím dokončen. Databázi si nechme
otevřenou.
Importovat můžeme i soubory s koncovkou .txt
,
pokud je jejich obsah stejný jako obsah souboru .sql
.
Import tabulky z CSV souboru
Nyní, když máme importovanou databázi, můžeme importovat tabulku ze
souboru adresy.csv
, který je součástí staženého archivu.
Tentokrát tedy zvolíme druhou možnost Table from CSV file....
Poté vybereme náš soubor adresy.csv
a klikneme na
Open.
Zobrazí se nám okno s možnostmi importu:

Název tabulky
V poli Table name máme výchozí název tabulky odpovídající názvu souboru, pod kterým se tabulka importuje. Můžeme jej zde měnit, tuto volbu však nyní nevyužijeme.
Názvy sloupců na prvním řádku
Když si otevřeme importovaný soubor adresy.csv
v aplikaci
Poznámkový blok, uvidíme, že na prvním řádku obsahuje
názvy sloupců id_uzivatele
a adresa
. Máme tedy
exportovanou tabulku včetně názvů sloupců. Necháme tedy
volbu Column names in first line zaškrtnutou, čímž importujeme
hodnoty z prvního řádku jako názvy sloupců tabulky.
Oddělovač pole
U pole Field separator vybereme znak, kterým budou jednotlivá data
v rámci jednoho záznamu (řádku) od sebe oddělena. Pokud si nejsme jisti,
jaký oddělovač soubor používá, můžeme jej otevřít například v
aplikaci Poznámkový blok. V našem souboru
adresy.csv
vidíme, že jsou hodnoty odděleny středníkem
;
, proto tuto možnost v nastavení zvolíme.
Pokud nenalezneme ve výběru použitý oddělovač z importovaného souboru, můžeme použitý oddělovač vložit pomocí volby Other.
Uvozovka
Pokud v importovaném souboru existují data, která obsahují stejný znak,
jakým je oddělovač, pak je celé pole zabaleno do uvozovek. Proto existuje
možnost Quote character, kde volíme podobu uvozovky. V našem souboru
adresy.csv
takový znak nemáme, proto necháme defaultní
možnost.
Kódování
Nabídka Encoding nám umožní zvolit, jaké kódování používá
náš CSV soubor. Aby se nám správně zobrazovala česká diakritika,
ponecháme defaultní možnost UTF-8
.
Odstranění prázdných znaků
Při zaškrtnutí možnosti Trim fields? se z polí odstraní
přebytečné mezery na začátku a na konci hodnot. Například ze záznamu
________Miroslav____
tak dostaneme pouze Miroslav
.
(_
v ukázce představuje mezeru). Volbu necháme zaškrtnutou.
Pokročilé nastavení
Po rozkliknutí volby Advanced se nám otevřou další možnosti, které si krátce popíšeme. Tyto možnosti v našem případě nevyužijeme a ponecháme je ve výchozím nastavení, tj. nezaškrtnuté.
Disable data type detection
Zaškrtnutím vypínáme detekci datových typů - data se naimportují bez uvedení datového typu.
Use local number conventions
Pokud je tato možnost zaškrtnutá, budou se číselné hodnoty exportovat podle místních zvyklostí systému – například s desetinnou čárkou místo tečky nebo s mezerou jako oddělovačem tisíců.
Ignore default values
Tato volba se řeší v případě importu do již existující tabulky a importovaný soubor obsahuje prázdná pole. Pokud má tabulka pro tyto pole defaultní hodnotu (takovou, která se vyplní při prázdném poli), bude tato defaultní hodnota doplněna do pole. Pokud však vybereme při importu tuto možnost, defaultní hodnoty se nevloží a pole zůstane prázdné.
Fail on missing values
Při zaškrtnutí této možnosti se prověří, zda pro nějaké pole v importovaném souboru platí tyto podmínky:
- pole je označené jako
NOT NULL
tj. musí být vyplněné, - pole není vyplněné,
- pro pole není zadána žádná výchozí hodnota.
V takovémto případě se import ukončí s chybovou hláškou.
Conflict strategy
Zde máme možnost vybrat řešení konfliktní situace mezi dvěma hodnotami v poli, které je označené jako unikátní. Tato situace může nastat třeba pro hodnoty pole označené jako primární klíč. Můžeme vybrat z následujících možností.
Abort import
Import se ukončí.
Ignore row
Řádek, který vyvolává konflikt, bude při importu přeskočen.
Replace existing row
Již existující řádek bude nahrazen novými daty z importovaného souboru.
Ponecháme defaultní první možnost Abort import klikneme na tlačítko OK:

Kontrola dat
Otevřeme si tabulku adresy
v SQLite:

Vidíme, že import byl úspěšný
V další lekci, SQLite - Řazení, Limit a agregační funkce, se podíváme na řazení a agregační funkce.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 723x (704 B)
Aplikace je včetně zdrojových kódů v jazyce SQLite