4. diel - MySQL krok za krokom: Vývoz
V minulej lekcii, MySQL krok za krokom: Vkladanie a mazanie dát v tabuľke , sme si ukázali vkladanie a mazanie záznamov.
Dnes si vyskúšame vyexportovať databázu, ktorá sa nám bude určite mnohokrát hodiť.
Export
Export (alebo tiež "záloha") je súbor so SQL príkazy, ktorá nám môže slúžiť na zálohu, migráciu či na import databázy.
Export môžeme rozdeliť na:
- kompletný export - súbor bude obsahovať ako štruktúru tabuliek, tak i ich dáta
- export štruktúry - súbor bude obsahovať len štruktúru databázy taký export môže obsahovať pokojne všetky alebo len vybrané tabuľky
- taký export môže obsahovať pokojne všetky alebo len vybrané tabuľky
- export dát - súbor bude obsahovať len dáta tabuliek aké tabuľky môžeme tiež špecifikovať
- aké tabuľky môžeme tiež špecifikovať
Takto rozdeliť môžeme aj typy importov, keďže tento súbor budeme pravdepodobne importovať.
Naposledy sme vymazali všetky dáta databázy, v phpMyAdmin by sme mali mať
iba jednu prázdnu tabuľku uzivatele
:
Najprv musíme nejaké dáta vložiť do databázy, aby sme ich mohli exportovať. Ak ste ich v minulej lekcii zmazali, môžeme si znova pár záznamov z minulej lekcie vložiť týmto SQL príkazom:
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);
Máme v databáze teda tri záznamy osôb:
Export dát
Skúsme si najprv exportovať dáta konkrétnej tabuľky. Môžeme to najjednoduchšie urobiť tak, že klikneme na konkrétnu tabuľku vľavo v navigácii a potom klikneme na tlačidlo Export v hornej lište:
Po kliknutí na tlačidlo Export uvidíme toto okno:
Tento spôsob exportu je rýchly a tiež vhodný, ak nepotrebujeme špecifikovať napríklad znakovú sadu, kompresiu súboru, doplňovacie príkazy a ďalšie podrobnosti. Môžeme u tohto spôsobu špecifikovať formát súboru exportu:
- CSV - využíva sa často pre export do programu MS Excel, dáta sú oddelené čiarkou
- JSON - hojne sa využíva v JavaScripte a API webových aplikácií XML, PHP array a ďalšie.
- XML, PHP array a ďalšie.
Nám bude stačiť formát SQL, ktorý je nastavený ako predvolený. Pre
budúce export je tiež najvhodnejší. Nižšie môžeme špecifikovať riadky,
ktoré chceme exportovať. Skúsime si vyexportovať teda všetky záznamy okrem
prvého. Pole pre "Začať od riadku" nastavíme teda na
číslo 1
a klikneme na tlačidlo Vykonaj vpravo
dole.
Začne stiahnutie súboru, ak si ho otvoríme v textovom editore, jeho obsah bude takýto:
-- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Počítač: 127.0.0.1:3306 -- Vytvořeno: Pon 05. říj 2020, 13:48 -- Verze serveru: 5.7.31 -- Verze PHP: 7.3.21 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Databáze: `databaze_pro_web` -- -- -------------------------------------------------------- -- -- Struktura tabulky `uzivatele` -- DROP TABLE IF EXISTS `uzivatele`; CREATE TABLE IF NOT EXISTS `uzivatele` ( `uzivatele_id` int(11) NOT NULL AUTO_INCREMENT, `jmeno` varchar(60) COLLATE utf8_czech_ci NOT NULL, `prijmeni` varchar(60) COLLATE utf8_czech_ci NOT NULL, `datum_narozeni` date NOT NULL, `pocet_clanku` int(11) NOT NULL, PRIMARY KEY (`uzivatele_id`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; -- -- Vypisuji data pro tabulku `uzivatele` -- INSERT INTO `uzivatele` (`uzivatele_id`, `jmeno`, `prijmeni`, `datum_narozeni`, `pocet_clanku`) VALUES (2, 'Tomáš', 'Marný', '1989-02-01', 6), (3, 'Josef', 'Nový', '1972-12-20', 9); COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Úplne na začiatku máme informácie o tom, z akej IP exportujeme, aká je verzia MySQL a PHP, kedy sme súbor vyexportovali a ďalšie.
Zeleno máme označené komentáre, čiže riadok komentujeme pomocou dvoch
pomlčiek --
. Všetko, čo bude za týmito spojovníkom na rovnakom
riadku už bude komentár. Viacriadkové komentáre začneme pomocou znakov
/*
a ukončujeme pomocou */
, ako to môžeme poznať z
väčšiny programovacích jazykov.
Ďalej tu máme SQL príkazy idúce po sebe tak, ako sa vykonajú pri importe. Môžeme si všimnúť, že tabuľku najskôr dropneme (odstránime) a potom vytvárame novú. Stratíme tak teda všetky existujúce dáta. Toto správanie môže byť často nežiaduce a preto exportujeme mnohokrát len dáta bez štruktúry tabuľky.
Tento súbor si zatiaľ ponechajte, využijeme ho pre budúce import:)
Ak chceme exportovať iba dáta, postup je rovnaký, len vyberieme Spôsob exportu vlastné a špecifikujeme iba dáta pod sekciou "Parametre pre výstupný formát":
Ak databázu exportujeme, budeme mať v súbore exporte tento výstup:
-- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Počítač: 127.0.0.1:3306 -- Vytvořeno: Pon 05. říj 2020, 14:00 -- Verze serveru: 5.7.31 -- Verze PHP: 7.3.21 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Databáze: `databaze_pro_web` -- -- -- Vypisuji data pro tabulku `uzivatele` -- INSERT INTO `uzivatele` (`uzivatele_id`, `jmeno`, `prijmeni`, `datum_narozeni`, `pocet_clanku`) VALUES (2, 'Tomáš', 'Marný', '1989-02-01', 6), (3, 'Josef', 'Nový', '1972-12-20', 9); COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Tento súbor môžete zmazať, potrebovať ho už nebudeme.
Export celej databázy
Máme tu príkaz pre vkladanie dát (INSERT), neobsahuje však príkaz pre
vytvorenie databázy a pred importom tohto súboru je nutné mať databázu
vytvorenú. Ak by sme chceli mať v exporte celú databázu, musíme kliknúť
vľavo na konkrétne databázu a potom kliknúť na Export.
Musíme vybrať Vlastné spôsob exportu a nižšie pod
hlavičkou Nastavenie vytváranie objektov pridať príkazy
Pridať príkaz CREATE DATABASE / USE
. Týmto sa
nám do exportu vloží na začiatok tvorba databázy a ten, kto bude
exportovať, nemusí databázu ručne vytvárať a premýšľať, aké by malo
mať porovnávanie (collation). Môžeme si tiež určiť, aké
tabuľky chceme importovať.
Export niekoľkých databáz naraz
Aby sme mali možnosť vyexportovať všetky databázy naraz, treba navigovať na hlavnú stránku phpMyAdmin a klasicky kliknúť na tlačidlo Export. Vyberieme vlastný spôsob exportu, nech máme možnosť špecifikovať databázy, ktoré chceme vyexportovať:
Je dobré potom zase navigovať nižšie a zabezpečiť, nech sa do exportu pridajú príkazy pre tvorbu týchto databáz.
V budúcej lekcii, MySQL krok za krokom: Radenie, Limit a agregačné funkcie , sa pozrieme na radenie a agregačné funkcie.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkamiStiahnuté 630x (1.37 kB)