Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. 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í.

Lekce 4 - MySQL krok za krokem: Export

V minulé lekci, MySQL 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.

Naposled jsme vymazali všechny data databáze, v phpMyAdmin bychom měli mít pouze jednu prázdnou tabulku uzivatele:

Stávající databáze - MySQL/MariaDB databáze krok za krokem

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 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ázi tedy tři záznamy osob:

Databáze s daty - MySQL/MariaDB databáze krok za krokem

Export dat

Zkusme si nejprve exportovat data konkrétní tabulky. Můžeme to nejjednodušeji udělat tak, že klikneme na konkrétní tabulku vlevo v navigaci a poté klikneme na tlačítko Export v horní liště:

Export - MySQL/MariaDB databáze krok za krokem

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

Jednoduchý export - MySQL/MariaDB databáze krok za krokem

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ělená čárkou
  • JSON - hojně se využívá v JavaScriptu a API webových aplikací
    • XML, PHP array a další.

Nám bude stačit formát SQL, který je nastaven jako výchozí. Pro budoucí export je také nejvhodnější. Níže můžeme specifikovat řádky, které chceme exportovat. Zkusíme si vyexportovat tedy všechny záznamy kromě prvního. Pole pro "Začít od řádku" nastavíme tedy na číslo 1 a klikneme na tlačítko Proveď vpravo dole.

Začne stažení souboru, pokud si ho otevřeme v textovém editoru, jeho obsah bude takový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 */;

Úplně na začátku máme informace o tom, z jaké IP exportujeme, jaká je verze MySQL a PHP, kdy jsme soubor vyexportovali a další.

Zeleně 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ář. 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ů.

Dále zde máme SQL příkazy jdoucí po sobě tak, jak se vykonají při importu. Můžeme si všimnout, že tabulku nejdříve dropneme (odstraníme) a poté vytváříme novou. Ztratíme tak tedy všechny stávající data. Toto chování může být často nežádoucí a proto exportujeme mnohdy pouze data bez struktury tabulky.

Tento soubor si zatím ponechte, využijeme ho pro budoucí import :)

Pokud chceme exportovat pouze data, postup je stejný, pouze vybereme Způsob exportu vlastní a specifikujeme pouze data pod sekcí "Parametry pro výstupní formát":

MySQL/MariaDB databáze krok za krokem

Pokud databázi exportujeme, budeme mít v souboru exportu 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 soubor můžete smazat, potřebovat ho už nebudeme.

Export celé databáze

Máme zde příkaz pro vkládání dat (INSERT), neobsahuje však příkaz pro vytvoření databáze a před importem tohoto souboru je nutné mít databázi vytvořenou. Pokud bychom chtěli mít v exportu celou databázi, musíme kliknout vlevo na konkrétní databázi a poté kliknout na Export. Musíme vybrat Vlastní způsob exportu a níže pod hlavičkou Nastavení vytváření objektů přidat příkazy Přidat příkaz CREATE DATABASE / USE. Tímto se nám do exportu vloží na začátek tvorba databáze a ten, kdo bude exportovat, nemusí databázi ručně vytvářet a přemýšlet, jaké by mělo mít porovnávání (collation). Můžeme si také určit, jaké tabulky chceme importovat.

Export několika databází najednou

Abychom měli možnost vyexportovat všechny databáze najednou, je třeba navigovat na hlavní stránku phpMyAdmin a klasicky kliknout na tlačítko Export. Vybereme vlastní způsob exportu, ať máme možnost specifikovat databáze, které chceme vyexportovat:

Export databází - MySQL/MariaDB databáze krok za krokem

Je dobré poté zase navigovat níže a zajistit, ať se do exportu přidají příkazy pro tvorbu těchto databází.

V další lekci, MySQL krok za krokem: Import, si ukážeme import databáze.


 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 620x (1.47 kB)

 

Předchozí článek
MySQL krok za krokem: Vkládání a mazání dat v tabulce
Všechny články v sekci
MySQL/MariaDB databáze krok za krokem
Přeskočit článek
(nedoporučujeme)
MySQL krok za krokem: Import
Článek pro vás napsal Samuel Hél
Avatar
Uživatelské hodnocení:
498 hlasů
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