NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

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í.

V tomto SQLite tutoriálu si ukážeme, jak exportovat data naší databáze. Vytvoření zálohy se nám bude jistě mnohokrát hodit ať už pro případné obnovení našich dat nebo jejich sdílení s ostatními.

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 File -> Export. Dále si můžeme vybrat ze tří možností popsaných níže:

Otevření možností exportu v DB Browseru - SQLite databáze krok za krokem

Export do souboru SQL

Při volbě této možnosti se nám zobrazí tento dialog:

Nabídka při exportu do SQL souboru - SQLite databáze krok za krokem

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 příkazu INSERT

Dále máme možnost Keep column names in 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", "datum_narozeni", "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');

Vložení více záznamů v příkazu INSERT

Volba Multiple rows (VALUES) per INSERT statement 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:

Grafické znázornění rozdílu mezi schématem a daty tabulky - SQLite databáze krok za krokem

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íšou do existující tabulky, nebo se vytvoří nová tabulka, do které se vloží exportovaná data.
  • Overwrite old schema (DROP TABLE, then CREATE TABLE) – Existující tabulka se odstraní a vytvoří se nová tabulka, do které se vloží exportovaná data.

Export do CSV souboru

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:

Možnosti při exportu do CSV souboru - SQLite databáze krok za krokem

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 checkboxu Column names in first line se exportují i názvy sloupců, které se zapíšou do CSV souboru stejně jako data.

Oddělovač pole

V poli Field separator 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 Other. Je zde i možnost Tab. Takový soubor potom nemá sloupce viditelně oddělené žádným znakem, nicméně programy typu Excel ho bez problému dokážou i tak správně přečíst.

Uvozovka

Pokud se v datech objeví stejný znak, jaký je použit jako oddělovač (například čárka uvnitř textu, když je čárka současně nastavená jako separátor), je potřeba tento konflikt vyřešit. CSV to řeší tak, že celé pole s takovým obsahem uzavře do uvozovek. V nastavení proto najdeme volbu Quote character, kde si můžeme zvolit, jaký znak se má k tomuto účelu použít. Ve výchozím nastavení je to dvojitá uvozovka ("), můžeme však zvolit i apostrof (') nebo jiný znak.

Odřádkování

Operační systémy používají různé znaky pro označení nového řádku. V posledním poli, New line characters exportního dialogu proto volíme způsob, jakým budou jednotlivé řádky (záznamy) v CSV souboru odděleny.

Export do formátu JSON

Formát JSON se často využívá v JavaScriptu a API webových aplikací. Opět máme možnost vybrat, které tabulky se exportují.

Možnosti při exportu do JSON souboru - SQLite databáze krok za krokem

U tohoto typu exportu pak máme pouze zaškrtávací pole Pretty print, což je označení pro úhledné formátování textu za účelem zvýšení jeho čitelnosti.

S nevybranou volbou Pretty print vypadá výsledek takto:

Ukázka exportovaného obsahu v JSON bez Pretty print - SQLite databáze krok za krokem

S vybranou volbou Pretty print získáme čitelnější výstup:

Ukázka exportovaného obsahu v JSON s Pretty print - SQLite databáze krok za krokem

V další lekci, SQLite - Import, si ukážeme import databáze.


 

Předchozí článek
Řešené úlohy k 1.-4. lekci SQLite
Všechny články v sekci
SQLite databáze krok za krokem
Přeskočit článek
(nedoporučujeme)
SQLite - Import
Článek pro vás napsal PDoctor
Avatar
Uživatelské hodnocení:
566 hlasů
Aktivity