MySQL příkazy jsou SQL příkazy a MySQL specifické nástroje používané k vytváření databází, definování tabulek, vkládání/aktualizaci dat, spouštění dotazů, manage uživatelům, ladit výkon a zálohovat nebo obnovovat data.
Mezi běžné příkazy patří CREATE, SELECT, INSERT, UPDATE, DELETE, JOIN, EXPLAIN, GRANT a mysqldump, přičemž každý z nich má praktické využití ve vývoji i produkčním prostředí.
Ať už nasazujete WordPress na VPS nebo vytváříte novou aplikaci, zvládnutí MySQL Příkazy vám dávají možnost navrhovat schémata, efektivně dotazovat data, zabezpečit přístup a udržovat spolehlivé zálohy.
Tato příručka pro začátečníky zahrnuje základní MySQL příkazy s praktickými příklady, tipy ze skutečných hostingových scénářů a osvědčenými postupy pro zvýšení výkonu.
Jaké jsou MySQL Příkazy?
MySQL příkazy jsou instrukce prováděné prostřednictvím MySQL klient (mysql) nebo skripty pro manage data v MySQL serveru.

Většina příkazů je standardní SQL (ANSI), zatímco některé jsou MySQL specifické (např. příkazy SHOW). MySQL 8.0 je moderní standard, který nabízí transakční úložiště.(InnoDB), role, funkce oken, CTE a vylepšení výkonu.
Tipy před začátkem:
- Příkazy končí středníkem (;).
- Používejte v produkčním prostředí vyhrazeného uživatele s nejnižšími oprávněními.
- Destruktivní příkazy (DROP, DELETE) vždy nejprve otestujte pomocí příkazu SELECT.
- Zálohujte před změnami schématu
Začínáme: Připojení a kontrola
Připojte se MySQL (Lokální a vzdálené)
# Local
mysql -u root -p
# Specific database
mysql -u appuser -p mydb
# Remote (ensure bind-address/firewall allow)
mysql -h 203.0.113.10 -u appuser -p -P 3306 mydbZkontrolujte informace o serveru a relaci:
SELECT VERSION();
SHOW VARIABLES LIKE 'version%';
SHOW DATABASES;
USE mydb;
SHOW TABLES;
DESCRIBE users; -- or: SHOW COLUMNS FROM users;Základy databází a tabulek
Vytváření a odstraňování databází
CREATE DATABASE IF NOT EXISTS shopdb
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
DROP DATABASE IF EXISTS testdb;Vytváření tabulek s datovými typy a omezeními
InnoDB je výchozí engine v MySQL 8.0, s podporou transakcí ACID a cizích klíčů.
USE shopdb;
CREATE TABLE categories (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL UNIQUE
) ENGINE=InnoDB;
CREATE TABLE products (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
category_id BIGINT UNSIGNED NOT NULL,
name VARCHAR(150) NOT NULL,
sku VARCHAR(40) NOT NULL UNIQUE,
price DECIMAL(10,2) NOT NULL DEFAULT 0.00,
stock INT NOT NULL DEFAULT 0,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT fk_products_category
FOREIGN KEY (category_id) REFERENCES categories(id)
ON DELETE RESTRICT ON UPDATE CASCADE,
INDEX idx_products_category (category_id),
INDEX idx_products_name (name)
);Bezpečně upravujte tabulky
Před změnou produkčních schémat vždy zálohujte data. U velkých tabulek zvažte změnu schématu pomocí příkazů pt-online nebo gh-ost.
ALTER TABLE products
ADD COLUMN is_active TINYINT(1) NOT NULL DEFAULT 1,
MODIFY COLUMN name VARCHAR(200) NOT NULL,
ADD INDEX idx_products_is_active (is_active);CRUD operace s praktickými příklady
VLOŽENÍ řádků (jednoduchých a vícenásobných)
INSERT INTO categories (name) VALUES ('Books'), ('Electronics');
INSERT INTO products (category_id, name, sku, price, stock)
VALUES
(1, 'Database Design 101', 'BK-DB-101', 29.99, 100),
(2, 'USB-C Charger 65W', 'EL-UC-065', 39.90, 50);SELECT s filtry, řazením, omezením
-- View all products
SELECT id, name, price, stock FROM products;
-- Filter and sort
SELECT name, price
FROM products
WHERE price >= 30 AND is_active = 1
ORDER BY price DESC
LIMIT 5;
-- Pattern match
SELECT sku, name FROM products WHERE name LIKE '%Charger%';AKTUALIZACE a ODSTRANĚNÍ s bezpečností
Používejte transakce a bezpečné aktualizace, abyste se vyhnuli nechtěným hromadným změnám.
SET sql_safe_updates = 1;
START TRANSACTION;
UPDATE products
SET price = price * 0.95
WHERE category_id = 2 AND stock > 10;
COMMIT;
-- Preview before delete:
SELECT id FROM products WHERE stock = 0 AND is_active = 0;
DELETE FROM products
WHERE stock = 0 AND is_active = 0
LIMIT 100; -- chunk deletes in productionSpojení a agregace
VNITŘNÍ a LEVÉ SPOJENÍ
-- Products with category names
SELECT p.id, p.name, c.name AS category, p.price
FROM products p
INNER JOIN categories c ON c.id = p.category_id;
-- Categories including those without products
SELECT c.name AS category, COUNT(p.id) AS product_count
FROM categories c
LEFT JOIN products p ON p.category_id = c.id
GROUP BY c.id, c.name
ORDER BY product_count DESC;GROUP BY, HAVING a agregace
SELECT category_id,
COUNT(*) AS items,
ROUND(AVG(price), 2) AS avg_price,
SUM(stock) AS total_stock
FROM products
GROUP BY category_id
HAVING SUM(stock) >= 50;Indexy, klíče a výkon
Vytvoření/odstranění indexů a použití EXPLAIN
Indexy zrychlují operace WHERE, JOIN a ORDER BY, ale zpomalují zápisy. Vytvářejte pouze to, co potřebujete, a kontrolujte to pomocí EXPLAIN.
CREATE INDEX idx_products_price ON products(price);
DROP INDEX idx_products_price ON products;
EXPLAIN ANALYZE
SELECT p.name
FROM products p
WHERE p.is_active = 1 AND p.price BETWEEN 20 AND 40
ORDER BY p.price
LIMIT 10;Klíčové tipy:
- Upřednostňovat pokrytí indexů pro často spouštěné dotazy
- Indexové sloupce používané ve spojeních a selektivních filtrech
- Neindexujte pouze booleovské hodnoty s nízkou kardinalitou; v případě potřeby je kombinujte s dalšími sloupci.
Transakce a izolace
Atomické změny pomocí COMMIT/ROLLBACK
Transakce zajišťují, že změny probíhají typu „všechno nebo nic“ (ACID). InnoDB poskytuje uzamčení na úrovni řádků a úrovně izolace.
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION;
UPDATE products SET stock = stock - 1 WHERE id = 2 AND stock > 0;
INSERT INTO orders (product_id, qty) VALUES (2, 1);
COMMIT;
-- On failure:
ROLLBACK;Zobrazení, uložené rutiny a spouštěče
Zobrazení
CREATE OR REPLACE VIEW v_active_products AS
SELECT p.id, p.name, p.price, c.name AS category
FROM products p
JOIN categories c ON c.id = p.category_id
WHERE p.is_active = 1;
SELECT * FROM v_active_products WHERE price < 50;Uložené procedury a funkce
DELIMITER //
CREATE PROCEDURE discount_category(IN cat BIGINT, IN pct DECIMAL(5,2))
BEGIN
UPDATE products
SET price = price * (1 - pct/100)
WHERE category_id = cat AND is_active = 1;
END//
CREATE FUNCTION gross_price(net DECIMAL(10,2), tax DECIMAL(5,2))
RETURNS DECIMAL(10,2)
DETERMINISTIC
RETURN net * (1 + tax/100);
//
DELIMITER ;
CALL discount_category(2, 10.0);
SELECT gross_price(100.00, 18.0);Triggery
DELIMITER //
CREATE TRIGGER trg_products_updated
BEFORE UPDATE ON products
FOR EACH ROW
BEGIN
SET NEW.updated_at = CURRENT_TIMESTAMP;
END//
DELIMITER ;Uživatelé, role a zabezpečení
Vytváření uživatelů a udělování rolí
Používejte silná hesla, TLS pro vzdálená připojení a co nejnižší oprávnění.
-- Create a user limited to one database
CREATE USER 'shopapp'@'%' IDENTIFIED BY 'Strong#Passw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON shopdb.* TO 'shopapp'@'%';
FLUSH PRIVILEGES;
-- Roles (MySQL 8.0+)
CREATE ROLE 'reporting';
GRANT SELECT ON shopdb.* TO 'reporting';
GRANT 'reporting' TO 'shopapp'@'%';
SET DEFAULT ROLE 'reporting' TO 'shopapp'@'%';Zálohování a obnovení
Zálohy jsou nezbytné pro zotavení po havárii, migrace a testování. Pro logické zálohy použijte mysqldump; pro fyzické zálohy velkých datových sad zvažte Percona XtraBackup.
# Dump a single database
mysqldump -u root -p --routines --triggers --single-transaction shopdb > shopdb.sql
# Restore
mysql -u root -p shopdb < shopdb.sql
# Dump all databases
mysqldump -u root -p --all-databases --single-transaction > all.sqlPříkazy pro administraci a údržbu
Optimalizace, analýza a kontrola tabulek
ANALYZE TABLE products; -- refresh statistics
OPTIMIZE TABLE products; -- rebuild/defragment if needed (InnoDB)
CHECK TABLE products;Monitorujte výkon
SHOW GLOBAL STATUS LIKE 'Threads%';
SHOW GLOBAL STATUS LIKE 'Queries';
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
-- Inspect problematic queries (enable slow log at server level)
SHOW VARIABLES LIKE 'slow_query_log%';
-- InnoDB diagnostics
SHOW ENGINE INNODB STATUS\GScénáře hostování v reálném světě
Migrace databáze WordPressu
Při přesouvání WordPressu mezi hostiteli nebo doménami proveďte zálohu pomocí mysqldump, importujte a poté aktualizujte URL adresy webů.
# Export from old server
mysqldump -u wpuser -p --single-transaction wpdb > wpdb.sql
# Import on new server
mysql -u wpuser -p -h new-db-host wpdb < wpdb.sql
# Update URLs (typical for http -> https or domain change)
UPDATE wp_options SET option_value = 'https://example.com' WHERE option_name IN ('siteurl','home');
-- For serialized data, use WP-CLI search-replace or a specialized tool:
-- wp search-replace 'http://old.com' 'https://example.com' --all-tablesBezpečné spouštění aktualizací v produkčním prostředí
- Nejprve si vytvořte snímek nebo zálohu
- Použití transakcí pro vícekrokové změny
- Spuštěním příkazu SELECT zobrazíte náhled dotčených řádků.
- Omezení s LIMIT a smyčkami pro velké UPDATE/DELETE
- VYSVĚTLETE kritické dotazy a přidejte potřebné indexy
Běžná úskalí a osvědčené postupy
- Vyhněte se SELECT * v produkčním prostředí; pro rychlost a stabilitu specifikujte sloupce
- Používejte v aplikacích připravené příkazy, abyste zabránili SQL injection.
- Normalizovat schémata, ale selektivně denormalizovat kvůli výkonu
- Vyberte vhodné datové typy (INT vs. BIGINT, DATETIME vs. TIMESTAMP)
- Udržet MySQL aktuální (8.0+) z hlediska zabezpečení a funkcí
Profesionální tip od hostingu: Ve sdílených prostředích nebo VPS nastavte velikost vyrovnávací paměti InnoDB tak, aby odpovídala pracovní sadě (často 50–70 % dostupné RAM na vyhrazeném uzlu databáze). Monitorování pomalých protokolů a přidávat indexy na základě skutečného zatížení.
Pokud chcete bezproblémový výkon, automatizované zálohování, přípravu na staging a odbornou pomoc, YouStableJe managed hosting stack je postaven pro běh WordPress a MySQL efektivně. Naši technici ladí databázovou vrstvu, monitorují její stav a pomáhají vám bezpečně provádět změny schématu bez prostojů.
Rychlý MySQL Tahák s příkazy
- Připojit: mysql -u user -p -h hostitel název_dbny
- Kontrolovat: ZOBRAZIT DATABÁZE; ZOBRAZIT TABULKY; POPIS tabulky;
- CRUD: VLOŽIT, VYBRAT, AKTUALIZOVAT, ODSTRANIT
- Schéma: VYTVOŘIT/ZMĚNIT/ODSTRANIT DATABÁZI|TABULKU
- Spojení/Agregace: PŘIPOJIT SE, SKUPINY PODLE, MÍT
- Výkon: VYTVOŘIT INDEX, VYSVĚTLIT, ANALÝZOVAT TABULKU
- Zabezpečení VYTVOŘIT UŽIVATELE, UDĚLIT, ZRUŠIT, ROLÍ
- Obnova zálohy: mysqldump, mysql < záloha.sql
Nejčastější dotazy
Jaké jsou nejčastější MySQL příkazy pro začátečníky?
Začněte s: CREATE DATABASE, USE, CREATE TABLE, INSERT, SELECT, UPDATE, DELETE, JOIN a GRANT. Přidejte SHOW DATABASES/TABLES pro prozkoumávání, DESCRIBE pro zobrazení sloupců a mysqldump pro zálohování. Tyto příkazy pokrývají většinu úkolů pro začátečníky ve vývojových a malých produkčních prostředích.
Jak se mohu připojit k MySQL z terminálu?
Pro lokální připojení použijte mysql -u username -p a poté zadejte heslo. Pro vzdálené servery přidejte -h HOST -P 3306 a volitelně na konec zadejte databázi. Ujistěte se, že firewall a vázaná adresa serveru umožňují vzdálená připojení a že je TLS nakonfigurováno pro zabezpečení.
Jaký je rozdíl mezi SQL a MySQL příkazy?
SQL je standardní jazyk pro relační databáze (např. SELECT, INSERT). MySQL je databázový systém, který implementuje SQL plus MySQL specifická rozšíření, jako například příkazy SHOW, syntaxe rolí a některé funkce. Většina běžných dotazů je přenositelná, ale příkazy administrátora se často liší v závislosti na dodavateli.
Jak mohu zálohovat a obnovit MySQL databáze?
Pro online zálohy InnoDB použijte mysqldump s –single-transaction: mysqldump -u root -p db > db.sql. Obnovte pomocí mysql -u root -p db < db.sql. U velkých a zaneprázdněných databází zvažte fyzické zálohy (např. XtraBackup) a ověřte obnovení na pracovním serveru.
Jak zrychlím a zpomalím MySQL dotazy?
Profilujte pomocí EXPLAIN a protokolu pomalých dotazů, přidejte vhodné indexy, vyhněte se SELECT *, snižte počet funkcí na indexovaných sloupcích a zajistěte dostatečnou velikost vyrovnávací paměti. V případě potřeby přepište neoptimální spojení a ukládejte do mezipaměti na úrovni aplikace. Změny vždy testujte s realistickými daty a vzorci pracovní zátěže.
Zvládnutí těchto MySQL Příkazy vám pomohou navrhnout spolehlivá schémata, psát rychlejší dotazy, zabezpečit data a udržovat zálohy připravené. Pokud potřebujete vyladěný MySQL prostředí s odbornou podporou, YouStable vám může pomoci s jistotou nasazovat, škálovat a spravovat vaše databáze.