IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

4. diel - MySQL krok za krokom - Export

V minulej lekcii, MySQL krok za krokom - Vkladanie a mazanie dát v tabuľke, sme si ukázali, ako vložiť záznamy do databázovej tabuľky a ako ich mazať.

V tomto MySQL tutoriále si ukážeme, ako exportovať dáta našej databázy. Vytvorenie zálohy sa nám bude iste mnohokrát hodiť či už pre prípadné obnovenie našich dát alebo ich zdieľanie s ostatnými.

Typy exportov

Export, alebo aj záloha, je súbor so SQL príkazmi. Ten môžeme využiť nielen ako zálohu dát, ale aj na ich migráciu či na import databázy.

Existuje niekoľko typov exportov:

  • Kompletný export – súbor bude obsahovať ako štruktúru tabuliek, tak aj ich dáta.
  • Export štruktúry – súbor bude obsahovať iba štruktúru tabuliek databázy. Takýto export môže obsahovať všetky alebo iba vybrané tabuľky databázy.
  • Export dát – súbor bude obsahovať iba dáta tabuliek. Aj tu môžeme špecifikovať, z akých tabuliek chceme dáta uložiť.

Začneme krátkym opakovaním. Najprv zmažeme existujúce záznamy užívateľov z databázy, pokiaľ nám v nej nejaké ostali:

TRUNCATE TABLE `users`;

Potom do tabuľky vložíme nové dáta, aby sme ich mohli exportovať:

INSERT INTO `users` (
    `first_name`,
    `last_name`,
    `birthdate`,
    `article_count`
)
VALUES ('John', 'Smith', '1984-11-03', 17),
       ('Thomas', 'Brown', '1989-02-01', 6),
       ('Jack', 'Newman', '1972-12-20', 9);

V databáze teraz teda máme tri záznamy osôb:

Zobrazenie pridaných používateľov v phpMyAdmin - MySQL databázy krok za krokom

Kompletný export

Skúsme si najskôr exportovať dáta aj štruktúru konkrétnej tabuľky. Môžeme to najjednoduchšie urobiť tak, že klikneme na danú tabuľku vľavo v navigácii a potom klikneme na tlačidlo Export v hornej lište:

Otvorenie záložky pre export v phpMyAdmin - MySQL databázy krok za krokom

Otvorí sa nám nové okno, v ktorom nižšie nájdeme predvyplnené možnosti:

Predvolený vzhľad záložky pre export - MySQL databázy krok za krokom

Tento spôsob exportu je rýchly a tiež vhodný, pokiaľ nepotrebujeme špecifikovať napríklad znakovú sadu, kompresiu súboru, doplňovacie príkazy a ďalšie podrobnosti.

Na výber tu máme niekoľko formátov súboru exportu, niektoré si popíšeme:

  • SQL – tento formát je východiskovým formátom, ide o textový súbor obsahujúci SQL príkazy alebo skripty.
  • CSV – využíva sa často na export do programu MS Excel, dáta sú oddelené čiarkou.
  • JSON – hojne sa využíva v JavaScripte a API webových aplikácií.

Ďalej tu máme napríklad formáty XML, PDF, PHP array a ďalšie, ktoré si bližšie popisovať nebudeme.

V ponuke necháme formát SQL. Predvolené nastavenie rýchleho exportu však vytvorí súbor, ktorý nie je možné použiť na import, pokiaľ sa daná tabuľka v databáze už nachádza hoci prázdna.

Úprava nastavenia exportu

Najprv teda zmeníme spôsob exportu na Custom:

Nastavenie vlastného exportu - MySQL databázy krok za krokom

Zídeme nižšie av sekcii Object creation options aktivujeme hneď prvú možnosť Add DROP TABLE / TRIGGER statement:

Nastavenie možnosti prepísania existujúcej tabuľky - MySQL databázy krok za krokom

Tým zaistíme, že sa pôvodná tabuľka pred importom novej tabuľky najskôr zmaže.

Výber konkrétnych záznamov pre export

Keď sa vrátime do hornej časti okna, uvidíme, že v sekcii Rows môžeme vybrať iba niektoré záznamy pre export. Skúsime si teda exportovať všetky záznamy okrem prvého. Klikneme na možnosť Dump some row(s). Do poľa Number of row(s): zadáme hodnotu 3 av poli Row to begin at: prepíšeme predvolenú hodnotu 0 na 1:

Výber riadkov pre export - MySQL databázy krok za krokom

Nakoniec klikneme na tlačidlo Export, ktoré je úplne dole.

Súbor s exportovanými dátami

Stiahnutý súbor si otvoríme v textovom editore a uvidíme nasledujúci obsah:

-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: May 25, 2024 at 06:35 PM
-- Server version: 10.4.32-MariaDB
-- PHP Version: 8.2.12

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 */;

--
-- Database: `database_for_web`
--

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `user_id` int(11) NOT NULL,
  `first_name` varchar(60) NOT NULL,
  `last_name` varchar(60) NOT NULL,
  `birthdate` date NOT NULL,
  `article_count` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`user_id`, `first_name`, `last_name`, `birthdate`, `article_count`) VALUES
(2, 'Thomas', 'Brown', '1989-02-01', 6),
(3, 'Jack', 'Newman', '1972-12-20', 9);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`user_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
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 adresy exportujeme, aká je verzia MySQL a PHP a ďalšie. Tie sú uvedené v komentári začínajúcom dvoma pomlčkami --. Všetko, čo je za týmito pomlčkami na rovnakom riadku je komentár. Viacriadkové komentáre uvádzame pomocou znakov /* a ukončujeme ich znakmi */.

Zaujímavejšie sú však v našom súbore uvedené SQL príkazy idúce po sebe tak, ako sa vykonajú pri importe. Môžeme si všimnúť, že tabuľku najskôr odstránime (ak existuje) a potom vytvárame novú. Riadok s príkazom DROP TABLE IF EXISTS bol do súboru pridaný, keď sme upravili nastavenie importu. Ak by sme zvolili rýchly export, v súbore by nebol uvedený.

Importom teda stratíme všetky prípadné existujúce dáta. Toto správanie môže byť často nežiaduce a preto exportujeme mnohokrát iba dáta bez štruktúry tabuľky.

Stiahnutý súbor si zatiaľ ponecháme, využijeme ho pre budúci import :)

Export dát

Ak chceme exportovať iba dáta, postup je rovnaký, iba v sekcii Format-specific options: zaškrtneme položku data:

Export samotných dát - MySQL databázy krok za krokom

Keď databázu takto exportujeme, budeme mať v súbore exportu tento obsah:

-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: May 25, 2024 at 06:46 PM
-- Server version: 10.4.32-MariaDB
-- PHP Version: 8.2.12

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 */;

--
-- Database: `database_for_web`
--

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`user_id`, `first_name`, `last_name`, `birthdate`, `article_count`) VALUES
(2, 'Thomas', 'Brown', '1989-02-01', 6),
(3, 'Jack', 'Newman', '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 však v ďalších lekciách potrebovať nebudeme.

Export celej databázy

Keby sme chceli mať v exporte celú databázu, teda aj príkaz na vytvorenie databázy, musíme kliknúť vľavo na konkrétnu databázu a potom na Export. V novom okne opäť vyberieme Custom - display all possible options a nižšie v sekcii Object creation options aktivujeme možnosť Add CREATE DATABASE / USE statement:

Export s príkazom na tvorbu databázy - MySQL databázy krok za krokom

Vďaka tomu potom pred importom nemusíme databázu ručne vytvárať a premýšľať, aké by malo mať porovnávanie a podobne.

Export niekoľkých databáz naraz

Ukážme si na záver, ako postupovať, keby sme chceli exportovať všetky databázy naraz. Presunieme sa na hlavnú stránku nástroja phpMyAdmin (klikneme na ikonu domčeka) a potom otvoríme záložku Export. Tu vyberieme Custom - display all possible options, aby sme mali možnosť špecifikovať databázy, ktoré chceme do exportu zahrnúť:

Export viacerých databáz - MySQL databázy krok za krokom

Aj v tomto prípade je dobré potom zase navigovať nižšie a zabezpečiť, aby sa do exportu pridali príkazy na tvorbu vybraných databáz.

Súbor vytvorený kompletným exportom je k dispozícii nižšie v archíve tejto lekcie.

V ďalšej lekcii, MySQL krok za krokom - Import, si ukážeme, ako importovať dáta do databázy.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 12x (1.3 kB)
Aplikácia je vrátane zdrojových kódov v jazyku mysql

 

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 - Import
Článok pre vás napísal Samuel Hél
Avatar
Užívateľské hodnotenie:
10 hlasov
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