Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akce až 50 % zdarma při nákupu e-learningu. Více informací:
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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:

existujúce databázy

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:

Databáza s dátami

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:

Export

Po kliknutí na tlačidlo Export uvidíme toto okno:

jednoduchý export

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 @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@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 [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_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 @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@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 [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_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ť:

Export databáz

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 podmienkami

Stiahnuté 348x (1.47 kB)

 

Predchádzajúci článok
MySQL krok za krokom: Vkladanie a mazanie dát v tabuľke
Všetky články v sekcii
MySQL databázy krok za krokom
Preskočiť článok
(neodporúčame)
MySQL krok za krokom: Radenie, Limit a agregačné funkcie
Článok pre vás napísal Samuel Hél
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje hlavně programování, nejvíce z oblasti webových technologií, dělá občasné video edity ze svých dovolených. Má rád memes, svou gf a elektroniku
Aktivity