Lekce 5 - SQLite - Export
V předešlém cvičení, Řešené úlohy k 1.-4. lekci SQLite, jsme si procvičili nabyté zkušenosti z předchozích lekcí.
Dnes si vyzkoušíme vyexportovat databázi, která se nám bude jistě mnohokrát hodit.
Export
Export (nebo také "záloha") je soubor s daty, který nám slouží jako záloha databáze, nebo ho potřebujeme pro migraci, či import databáze.
Export můžeme rozdělit na:
- kompletní export - soubor bude obsahovat jak strukturu tabulek, tak i jejich data
- export struktury - soubor bude obsahovat pouze strukturu
databáze
- export může obsahovat všechny nebo pouze vybrané tabulky
- export dat - soubor bude obsahovat pouze data tabulek
- tabulky můžeme specifikovat
Před vlastním exportem budeme potřebovat data, která chceme exportovat.
Pokud nám v tabulce z minula žádná nezbyla, můžeme si vložit data do
naší tabulky uzivatele
pomocí jazyka SQL
:
INSERT INTO `uzivatele` ( `jmeno`, `prijmeni`, `datum_narozeni`, `pocet_clanku` ) VALUES ('Jan', 'Novák', '1984-11-03', 17), ('Tomáš', 'Marný', '1989-02-01', 6), ('Josef', 'Nový', '1972-12-20', 9);
Nebo si můžeme vložit vlastní data. Pro potřeby naší dnešní lekce na obsahu dat nezáleží.
Jak exportovat?
Exportovat databázi nebo tabulku je velmi jednoduché. Stačí kliknout na Soubor -> Export. Dále si můžeme vybrat ze tří možností popsaných níže.
Databáze do souboru SQL...
Při volbě této možnosti se nám zobrazí tento dialog:
Jak název operace napovídá, tato akce se nám bude hodit, pokud budeme
chtít exportovat databázi do souboru .sql
.
Výběr tabulek
Nejprve musíme vybrat tabulky, které chceme exportovat. Je možné (stejně
jako na obrázku), že bude v nabídce i tabulka sqlite_sequence
.
Tu si vytváří SQLite samo, pokud existuje tabulka se sloupcem označeným
jako AUTOINCREMENT
. V tabulce sqlite_sequence
je
uloženo poslední použité id
. Můžeme, ale nemusíme ji vybrat,
neboť výsledný soubor to nijak neovlivní.
Možnosti INSERT
Dále máme možnost Zachovat názvy sloupců v INSERT INTO.
Soubor sql
je skupina příkazů pro RDBMS
, které se
spouští, a tím se vytváří tabulky a plní se daty. Rozdíl v příkazu
bude následující:
Při zaškrtnutí možnosti:
INSERT INTO "uzivatele" ("uzivatele_id","jmeno","prijmeni","pocet_clanku") VALUES (1,'Jan','Novák','1984-11-03','17');
Při NEzaškrtnutí možnosti:
INSERT INTO "uzivatele" VALUES (1,'Jan','Novák','1984-11-03','17');
Více řádků pro INSERT
Volba Více řádků (VALUES) pro příkaz INSERT buď
použije jeden INSERT
, který bude vkládat všechny záznamy, nebo
(při nezaškrtnutí) se každý jeden záznam bude vkládat vlastním
příkazem INSERT
. Stejně jako v předchozím případě je ale
výsledek následného importu našeho budoucího souboru stejný. Jedná se
pouze o změnu syntaxe.
Obsah exportu
Další nabídka je rozbalovací s možnostmi, co chceme exportovat:
- Exportovat vše
- Exportovat pouze schéma
- Exportovat pouze data
Soubor exportu se může dělit na schéma a data:
Výběrem jedné z možností volíme obsah následného souboru. Soubor může obsahovat:
- schéma i data (jako na obrázku výše)
- schéma, které vytvoří prázdnou tabulku
- data, která se vloží do již vytvořené tabulky
Existující tabulka
Poslední rozbalovací položkou volíme mezi možnostmi:
- Keep old schema (
CREATE TABLE IF NOT EXISTS
) - data se buď připíší do existující tabulky, nebo se vytvoří nová tabulka, do které se vloží exportovaná data - Přepsat staré schéma (
DROP TABLE
thenCREATE TABLE
) - existující tabulka se odstraní a vytvoří se nová tabulka, do které se vloží exportovaná data.
Tabulky jako soubor CSV...
Soubor CSV - Comma Seperated Values je soubor, ve kterém jsou data oddělena separátorem (např. čárkou). Je nejen lidsky čitelný, ale umožnuje uložená data importovat například do Excelu.
Při volbě této možnosti se nám zobrazí tento dialog:
Nejprve si vybereme tabulky, které chceme exportovat.
Soubor CSV je ale jednoduchý, jak tedy pozná, jaká data patří jaké
tabulce? Odpověď je: nepozná. Proto se pro každou tabulku
vytvoří její vlastní CSV
soubor.
Názvy sloupců v prvním řádku
Zaškrtnutím tohoto checkboxu se exportují i názvy sloupců, která se
zapíšou do CSV
souboru stejně jako data.
Oddělovač pole
Zde si vybereme znak, kterým budou jednotlivá data v rámci jednoho
záznamu (řádku) od sebe oddělena. Můžeme vybrat předem dané znaky, nebo
zvolit svůj vlastní pomocí volby Ostatní
. Je zde i možnost
Karta
. Takový soubor potom nemá sloupce viditelně oddělené
žádným znakem, nicméně programy typu Excel ho bez problému dokáží i tak
správně přečíst.
Uvozovka
Jak se ale CSV
zachová, pokud budeme mít v datech stejný
znak, jako je oddělovač? Pokud existují data, která obsahují stejný znak,
jakým je oddělovač, pak celé slovo je zabaleno do uvozovek. Proto existuje
možnost Uvozovka
, kde volíme podobu uvozovky.
Znaky nového řádku
Operační systémy používají různé znaky pro označení nového řádku. Zde mámne možnost vybrat, jak budou od sebe jednotlivé řádky (záznamy) odděleny.
Tabulky do JSONu...
JSON se často využívá v JavaScriptu a API webových aplikací. Opět máme možnost vybrat, které tabulky se vyexportují.
Pretty print
Zaškrtávací pole Pretty print je označení pro úhledné formátování textu za účelem zvýšení jeho čitelnosti.
S nevybranou volbou Pretty print:
S vybranou volbou Pretty print:
V další lekci, SQLite - Import, si ukážeme import databáze.