Lekce 4 - Oracle krok za krokem: Export
V minulé lekci, Oracle krok za krokem: Vkládání a mazání dat v tabulce, jsme si ukázali vkládání a mazání záznamů.
Dnes si vyzkoušíme vyexportovat databázi, která se nám bude jistě mnohokrát hodit.
Export
Export (nebo také "záloha") je soubor se SQL příkazy, která nám může sloužit na zálohu, migraci či na 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
- takový export může obsahovat klidně všechny nebo pouze vybrané tabulky
- export dat - soubor bude obsahovat pouze data tabulek
- jaké tabulky můžeme také specifikovat
Takto rozdělit můžeme i typy importů, jelikož tento soubor budeme pravděpodobně importovat.
Nejprve musíme nějaké data vložit do databáze, abychom je mohli exportovat. Pokud jste je v minulé lekci smazali, můžeme si znova pár záznamů z minulé lekce vložit tímto SQL příkazem:
INSERT ALL INTO UZIVATELE ( UZIVATELE_ID, JMENO, PRIJMENI, DATUM_NAROZENI, POCET_CLANKU ) VALUES ( 1, 'Karel', 'Novák', '25.6.1979', 10 ) INTO UZIVATELE ( UZIVATELE_ID, JMENO, PRIJMENI, DATUM_NAROZENI, POCET_CLANKU ) VALUES ( 2, 'Adam', 'Mladý', '12.8.2001', 2 ) INTO UZIVATELE ( UZIVATELE_ID, JMENO, PRIJMENI, DATUM_NAROZENI, POCET_CLANKU ) VALUES ( 3, 'Petr', 'Starý', '13.4.1992', 18 ) SELECT 1 FROM DUAL;
Máme tedy v databázi záznamy tří osob:
Export dat
Zkusme si nejprve exportovat data konkrétní tabulky. Můžeme to nejjednodušeji udělat tak, že pravým tlačítkem klikneme na konkrétní tabulku vlevo v navigaci a zvolíme možnost Export:
Po kliknutí na tlačítko Export uvidíme toto okno:
Tento způsob exportu je rychlý a také vhodný, pokud nepotřebujeme specifikovat například znakovou sadu, kompresi souboru, doplňovací příkazy a další podrobnosti. Můžeme u tohoto způsobu specifikovat formát souboru exportu:
- CSV - využívá se často pro export do programu MS Excel, data jsou odděleny čárkou
- JSON - hojně se využívá v JavaScriptu a API webových aplikací
- XML, PHP array a další.
Nyní pro export zvolíme formát .sql
, a to tak, že klikneme
na tlačítko Browse, a jako File Type
zvolíme SQL Script (*.sql):
Pro budoucí export je SQL formát také nejvhodnější. Můžeme také rovnou změnit umístění, kde se nám nový soubor vytvoří. Pokud máme hotovo, klikneme na tlačítko Další a zobrazí se nám následující:
Zde můžeme kliknutím pod Columns specifikovat, jaké sloupce se mají exportovat. My ale necháváme vyexportovat všechny sloupce, a klikneme tedy znovu na tlačítko Další a poté na tlačítko Dokončit.
Soubor se vyexportoval a rovnou se nám automaticky otevřel v SQL Developeru:
Úplně na začátku máme informaci o tom, kdy jsme soubor vyexportovali.
Šedou barvou máme označené komentáře, čili řádek komentujeme
pomocí dvou pomlček --
. Vše, co bude za těmito
pomlčkami na stejném řádku již bude komentář a není na ně z
programového hlediska brán zřetel. Víceřádkové komentáře začneme
pomocí znaků /*
a ukončujeme pomocí */
, jak to
můžeme znát z většiny programovacích jazyků.
O pár řádků níže vidíme nadpis DDL for Table UZIVATELE
,
což ve volném překladu znamená "jazyk pro definici dat tabulky
UZIVATELE
", a v části pod ním si mimo jiné můžeme všimnout
námi použitých SQL dotazů CREATE
a INSERT
. Dále
máme část s nadpisem DDL for Index UZIVATELE_PK
, která obsahuje
informace o primárním klíči tabulky UZIVATELE
. Na konci
dokumentu poté vidíme část Constraints for Table UZIVATELE
, kde
jsou vypsány omezení pro jednotlivé sloupce.
DDL je zkratka Data Definition Language. DDL používá příkazy např. na vytvoření databáze, uživatelů, tabulek, omezení a další.
DML je zkratka Data
Manipulation Language. DML používá
příkazy UPDATE
, DELETE
a INSERT
, čili
příkazy na manipulaci s daty.
Tento soubor si zatím ponechte, využijeme ho pro budoucí import.
Pokud chceme exportovat pouze data, postup je stejný, pouze v prvním kroku exportu zrušíme výběr u Export DLL:
Zbytek exportu probíhá stejně, po dokončení se nám soubor opět sám otevře v SQL Developeru:
Vidíme, že tentokrát soubor kromě informace o vytvoření obsahuje pouze
příkazy INSERT
. Tento soubor můžete však smazat, potřebovat
ho už nebudeme.
Abychom si ukázali export i pro jiný formát než sql
,
zkusíme si data ještě vyexportovat do formátu csv
. Stejným
postupem v oknu s exportem opět zrušíme výběr u Export
DLL, u Export Data změníme Format
na csv
, Encoding na Cp1250
a jako
File Type zvolíme také csv
:
Encoding je důležitá část. Pokud soubor bude používat kódování, které nepodporuje diakritiku, můžeme mít problém s přečtením znaků při jejich importu (budeme tam mít tzv. klikyháky).
Po exportu se nám vytvoří soubor csv
, který poté můžeme
otevřít např. v Excelu (resp. importujeme CSV soubor). Pokud jej otevřeme,
uvidíme v něm pouze názvy sloupců tabulky, z které jsme exportovali, a
hodnoty našich tří záznamů. Tento soubor si také ponechejte, využijeme
jej při importu dat v následující lekci.
Export celé databáze
Pokud chceme vyexportovat kompletně celou databázi se všemi tabulkami, je to opět velice jednoduché. V horním menu zvolíme Tools -> Database Export. Poté musíme zvolit databázi, kterou chceme vyexportovat. Můžeme si opět vybrat zda chceme exportovat data, DDL, či obojí. V dalších krocích můžeme zvolit, co vše chceme exportovat, nebo zda např. chceme nějakou tabulku či sloupec z exportu vynechat.
Export z více databází najednou
Poslední věcí, kterou si v této lekcí ukážeme, je export tabulek z několika databází najednou. Využijeme k tomu nástroj Cart (tedy košík). V horní liště zvolíme položku View a klikneme na Cart:
Otevře se nám podokno košíku, kam můžeme přetáhnout tabulky z jakékoliv databáze, ke které jsme připojeni. Opět můžeme zvolit, zda chceme exportovat DDL (strukturu), DML (data), nebo obojí, a klikneme na tlačítko Export Cart:
Otevře se nám okno velmi podobné tomu, se kterým jsme dnes již pracovali. Klikneme na tlačítko Použít a export je hotov
V další lekci, Oracle krok za krokem: Import, si ukážeme import dat.
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 25x (1.13 kB)
Aplikace je včetně zdrojových kódů