BLACK FRIDAY! Slevy až 80 % jsou všude. Tak je nepropásni a přejdi do rostoucího IT oboru!
The real BF 2020

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

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

Export dat

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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

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

Jednoduchý export

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ší.

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

Ú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":

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 @[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 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í

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ženo 25x (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
Článek pro vás napsal Samuel Hél
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
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 a svou gf
Aktivity (12)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!