Jak zobrazit data a strukturu tabulky MySQL (SHOW TABLES, DESCRIBE, SELECT, INFORMATION_SCHEMA)

目次

1. Úvod

Při správě databáze v MySQL existuje mnoho situací, kdy chcete „zjistit, co je uvnitř tabulky“. Například můžete chtít ověřit, že testovací data byla uložena správně, nebo potvrdit, že očekávaná data jsou během vývoje aplikace vkládána. Schopnost rychle prohlédnout obsah tabulky je nesmírně důležitá.

V vývoji i v každodenním provozu často potřebujete informace jako „Jak vypadá struktura tabulky?“ nebo „Jaké jsou typy sloupců a omezení?“ Pokud však s MySQL nejste obeznámeni, může být překvapivě nejasné, jak zkontrolovat obsah a strukturu tabulky.

V tomto článku vysvětlíme vše od základů kontroly obsahu a struktury tabulek v MySQL po praktické, často používané příkazy a pokročilé techniky, stejně jako běžné chyby a jejich řešení. Tento průvodce obsahuje užitečné informace pro začátečníky i pro ty, kteří používají MySQL pravidelně — takže jej použijte jako referenci.

2. Předpoklad: Jak se připojit k MySQL

Abyste mohli kontrolovat obsah a strukturu tabulek v MySQL, musíte se nejprve připojit k MySQL serveru. Zde vysvětlujeme, jak se přihlásit k MySQL z příkazové řádky (Terminal nebo Command Prompt) a jak vybrat databázi.

Jak se přihlásit k MySQL

Pro připojení k MySQL použijte následující příkaz.

mysql -u username -p

Nahraďte „username“ svým MySQL uživatelským jménem. Po spuštění příkazu budete vyzváni k zadání hesla — zadejte správné heslo.

Vyberte databázi

Po úspěšném přihlášení uvidíte MySQL prompt (mysql>). Pro výběr databáze, se kterou chcete pracovat, zadejte následující příkaz.

USE database_name;

Po tomto budou následné operace prováděny proti vybrané databázi.
Pokud tento krok zapomenete, můžete obdržet chybu jako „No database selected“, takže buďte opatrní.

Jak vypsat databáze

Pokud chcete zobrazit seznam databází, které na serveru existují, můžete použít následující příkaz.

SHOW DATABASES;

Tím se zobrazí všechny názvy databází v seznamu. Podle potřeby zde potvrďte cílový název databáze a přepněte pomocí USE database_name;.

3. Zkontrolujte seznam tabulek (Zobrazit seznam tabulek)

Po připojení k MySQL a výběru cílové databáze budete často chtít ověřit „jaké tabulky existují“. Zde představujeme základní metodu pro výpis tabulek a užitečné techniky, jak omezit výpis jen na tabulky, které potřebujete.

Základní příkaz pro výpis tabulek

Pro zobrazení seznamu tabulek použijte následující příkaz.

SHOW TABLES;

Spuštěním tohoto příkazu se zobrazí seznam všech názvů tabulek ve právě vybrané databázi.
Například můžete vidět názvy tabulek jako „users“, „orders“ a „products“ vypsané vertikálně.

Zkontrolujte seznam tabulek v jiné databázi

Pokud chcete zkontrolovat seznam tabulek v jiné databázi, která není aktuálně vybraná, napište příkaz takto:

SHOW TABLES FROM database_name;

Tímto způsobem můžete rychle zkontrolovat tabulky ve specifikované databázi, aniž byste pokaždé přepínali databáze pomocí příkazu USE.

Vyhledat (filtrovat) konkrétní názvy tabulek

Když je tabulek mnoho, můžete chtít rychle najít cílovou tabulku. V takovém případě můžete filtrovat pomocí volby LIKE.

SHOW TABLES LIKE 'search_word%';

Například pokud chcete zobrazit jen tabulky, které začínají na „user“, uveďte to jako SHOW TABLES LIKE 'user%';.

Také, v závislosti na verzi MySQL, můžete použít klauzuli SHOW TABLES WHERE.

SHOW TABLES WHERE Tables_in_database_name LIKE '%keyword%';

Výpis tabulek je základní operace v MySQL, ale malá dávka vynalézavosti může výrazně zlepšit správu a efektivitu vyhledávání.

4. Zkontrolujte strukturu tabulky (Seznam sloupců)

Než zkontrolujete obsah tabulky, je velmi důležité pochopit, „které sloupce existují a jaké datové typy a omezení jsou nastaveny.“ Znalost struktury tabulky vám pomáhá správně načítat a upravovat data a také pomáhá předcházet problémům během vývoje systému a jeho provozu.

Základní příkaz: DESCRIBE (DESC)

Nejčastějším příkazem pro kontrolu struktury tabulky je DESCRIBE. Můžete také použít zkratku DESC.

DESCRIBE table_name;

or

DESC table_name;

Když spustíte tento příkaz, MySQL zobrazí seznam názvů sloupců, datových typů, omezení NULL, informace o primárním klíči a další.

Zobrazené položky:

  • Field (název sloupce)
  • Type (datový typ)
  • Null (zda je povoleno NULL)
  • Key (primární klíč, cizí klíč atd.)
  • Default (výchozí hodnota)
  • Extra (další informace, např. auto-increment)

Příkaz SHOW COLUMNS

SHOW COLUMNS FROM table_name; zobrazuje téměř stejný obsah jako DESCRIBE. V závislosti na situaci je také v pořádku tento příkaz použít.

Pokud chcete podrobnější informace

Pokud potřebujete podrobnější informace o sloupcích, použijte SHOW FULL COLUMNS FROM table_name;. To zahrnuje další informace, jako je kolace (Collation) a oprávnění (Privileges).

Kdy jsou kontroly struktury tabulky užitečné

  • Pochopit, „které sloupce existují“, během nového vývoje nebo údržby
  • Zkontrolovat typy sloupců, možnost NULL a informace o primárním klíči při zkoumání existujícího systému nebo provádění integrace dat
  • Ujasnit si, „jaký datový typ bude uložen“, při psaní kódu

Pro bezpečnou a přesnou kontrolu obsahu tabulky začněte nejprve potvrzením struktury tabulky.

5. Kontrola obsahu tabulky (Data)

Jakmile pochopíte strukturu tabulky, dalším krokem je zkontrolovat, jaká data jsou v tabulce skutečně uložena. V MySQL můžete snadno načíst data z tabulky pomocí příkazu SELECT.

Zobrazení všech dat

Pokud chcete zobrazit všechny řádky v tabulce, napište dotaz takto:

SELECT * FROM table_name;

Spuštěním tohoto příkazu se zobrazí všechny řádky (záznamy) v tabulce.
Nicméně pokud tabulka obsahuje velké množství dat, zobrazení všeho najednou může být obtížně čitelné – buďte opatrní.

Vyberte pouze sloupce, které potřebujete

Pokud nepotřebujete všechny sloupce a chcete vidět jen konkrétní informace, uveďte názvy sloupců, které chcete načíst:

SELECT column1, column2 FROM table_name;

Tím se zobrazí pouze vybrané sloupce, což usnadňuje revizi nebo agregaci dat.

Filtrování dat podmínkami

Pokud chcete zkontrolovat jen data, která splňují určité podmínky, použijte klauzuli WHERE:

SELECT * FROM table_name WHERE column_name = 'value';

Například pokud chcete zkontrolovat „pouze uživatele s id = 10“ v tabulce users, napište to takto:
SELECT * FROM users WHERE id = 10;

Pokud chcete vyhledávat pomocí částečné shody, použijte operátor LIKE:

SELECT * FROM table_name WHERE column_name LIKE 'A%';

V tomto příkladu budou zobrazeny jen záznamy, jejichž hodnota ve sloupci začíná na „A“.

Omezení počtu vrácených řádků (klauzule LIMIT)

Pokud tabulka obsahuje velmi velký počet řádků, je také důležité omezit, kolik výsledků se zobrazí pomocí klauzule LIMIT:

SELECT * FROM table_name LIMIT 10;

Tím se zobrazí jen prvních 10 řádků.
Navíc můžete použít OFFSET k určení, od kterého řádku začít:

SELECT * FROM table_name LIMIT 10 OFFSET 20;

Tím se načte 10 řádků počínaje 21. řádkem, což je užitečné pro stránkování a revizi velkých datových sad.

6. Získání podrobnějších informací o tabulce

V MySQL existují příkazy nejen pro kontrolu obsahu a struktury tabulky, ale také pro získání podrobnějších informací. Zde vysvětlujeme, jak zkontrolovat stav tabulky, podrobnosti o vytvoření, velikost tabulky a další.

Kontrola stavu tabulky (SHOW TABLE STATUS)

Pokud chcete přehled o stavu tabulky a základních informacích, použijte příkaz SHOW TABLE STATUS:

SHOW TABLE STATUS;

Spuštěním tohoto příkazu se zobrazí seznam informací, jako je následující, pro všechny tabulky ve právě vybrané databázi:

  • Název tabulky (Name)
  • Engine (Engine)
  • Počet řádků (Rows)
  • Velikost tabulky (Data_length, Index_length)
  • Čas vytvoření (Create_time)
  • Čas poslední aktualizace (Update_time)
  • Collation (Collation) a další.

Pokud chcete zkontrolovat jen konkrétní tabulku, uveďte ji takto:

SHOW TABLE STATUS LIKE 'table_name';

SQL použité k vytvoření tabulky (SHOW CREATE TABLE)

Pokud chcete vědět „Jaké SQL bylo použito k vytvoření této tabulky?“, je užitečný příkaz SHOW CREATE TABLE:

SHOW CREATE TABLE table_name;

Po jeho spuštění se vypíše přesné příkazy CREATE TABLE, které byly použity k vytvoření tabulky.
Tento příkaz je mimořádně užitečný při migraci tabulek, zálohách a při opětovném vytvoření stejné tabulky v jiném prostředí.

Kdy je podrobná informace o tabulce užitečná

  • Porozumět velikosti tabulky a počtu řádků pro optimalizaci výkonu a správu úložiště
  • Zkontrolovat DDL (definice tabulek) jako referenční materiál pro migrace a refaktoring
  • Prozkoumat typ enginu, znakovou sadu a informace o indexech, což pomáhá identifikovat příčiny systémových problémů

Ovládnutím těchto příkazů můžete výrazně rozšířit své možnosti v MySQL operacích a ladění.

7. Kontrola pomocí INFORMATION_SCHEMA (pokročilé)

MySQL poskytuje speciální databázi nazvanou INFORMATION_SCHEMA. Ukládá různé typy metadat o celém MySQL serveru, včetně informací o tabulkách, podrobností o sloupcích, indexech, oprávněních a dalších. Použitím této databáze můžete získat informace o tabulkách a sloupcích flexibilněji a podrobněji.

Získání informací o tabulkách pomocí INFORMATION_SCHEMA

Například pokud chcete získat seznam všech názvů tabulek v konkrétní databázi, můžete použít následující SQL:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'database_name';

Tento SQL je užitečný, když potřebujete prohlédnout velké množství tabulek pomocí nástrojů pro správu nebo automaticky sbírat informace skripty.

Získání informací o sloupcích a indexech

Informace o sloupcích můžete získat podobným způsobem:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name'
  AND TABLE_NAME = 'table_name';

Indexy, omezení, cizí klíče a další metadata lze také snadno získat pomocí INFORMATION_SCHEMA.

Vztah k ANALYZE TABLE

Pro ladění výkonu a aktualizaci statistik se používá příkaz ANALYZE TABLE.
Když tento příkaz spustíte, statistiky tabulky se aktualizují a statistické hodnoty získané z INFORMATION_SCHEMA (např. odhadovaný počet řádků) se stávají přesnějšími.

ANALYZE TABLE table_name;

Kdy použít INFORMATION_SCHEMA

  • Když chcete získat informace o více tabulkách nebo sloupcích najednou
  • Při kontrolě struktur tabulek a sloupců ve hromadném zpracování nebo automatizačních skriptech
  • Když potřebujete podrobné informace, jako jsou indexy, cizí klíče nebo komentáře tabulek

INFORMATION_SCHEMA je výkonný nástroj pro hlubší pochopení MySQL a efektivnější provoz. Využívejte jej naplno v každodenních úlohách správy a vývoje systémů.

8. Nástroje CLI a zkratky

Při kontrole obsahu a struktury tabulek v MySQL může znalost praktických příkazů a možností příkazové řádky (CLI) výrazně zvýšit vaši efektivitu. Zde představujeme často používané CLI nástroje a užitečné zkratky.

Příkaz mysqlshow

MySQL poskytuje samostatný CLI nástroj nazvaný mysqlshow.
Je specializovaný na výpis databází a tabulek a umožňuje rychle zkontrolovat informace bez nutnosti interaktivního přihlášení do MySQL.

Zobrazení seznamu databází

mysqlshow -u username -p

Zobrazení tabulek v konkrétní databázi

mysqlshow -u username -p database_name

Zobrazit informace o sloupcích pro konkrétní tabulku

mysqlshow -u username -p database_name table_name

Pomocí těchto krátkých příkazů můžete rychle zkontrolovat strukturu a existenci, což je praktické pro správu serveru a skriptování.

Zjednodušte čtení výstupu pomocí volby „\G“

Obvykle, když spustíte SQL v MySQL, jsou výsledky zobrazeny v horizontálním tabulkovém formátu. Pokud však existuje mnoho sloupců nebo velké množství informací, použití „\G“ zobrazí výsledky vertikálně, což je mnohem snazší číst.

Příklad použití

SELECT * FROM table_name\G

Když je to napsáno tímto způsobem, každý záznam je zobrazen vertikálně, přičemž názvy sloupců a hodnoty jsou zobrazeny ve dvojicích. To je zvláště užitečné při kontrole struktury tabulky nebo pečlivém prohlížení detailů jediného záznamu.

Další užitečné techniky CLI

  • Používání historie příkazů Můžete použít šipky nahoru a dolů k vyvolání dříve provedených příkazů, takže nemusíte opakovaně psát stejný příkaz.
  • Dokončování pomocí Tab Při psaní názvů tabulek nebo sloupců stiskněte klávesu Tab po částečném zadání názvu, aby se automaticky doplnil, čímž se sníží pravopisné a vstupní chyby.

Ovládnutím nástrojů a zkratek CLI se operace v MySQL stávají pohodlnějšími a efektivnějšími. Zkuste je začlenit do své každodenní práce a vývojových úkolů.

9. Běžné chyby a jak je opravit

Při kontrole obsahu a struktury tabulek v MySQL existuje několik běžných chyb, se kterými se setkají jak začátečníci, tak zkušení uživatelé alespoň jednou. Zde jasně vysvětlujeme typické chyby, jejich příčiny a jak je vyřešit.

Nebyla vybrána databáze

Chybová zpráva

ERROR 1046 (3D000): No database selected

Příčina a řešení
Tato chyba nastane, když se pokusíte pracovat s tabulkami, aniž byste nejprve vybrali databázi. Ujistěte se, že předem specifikujete cílovou databázi pomocí:

USE database_name;

Neznámá databáze

Chybová zpráva

ERROR 1049 (42000): Unknown database 'database_name'

Příčina a řešení
K tomu dochází, když uvedená databáze neexistuje. Běžné příčiny zahrnují pravopisné chyby, nesprávnou velikost písmen nebo že databáze ještě nebyla vytvořena. Použijte následující příkaz k ověření správného názvu:

SHOW DATABASES;

Chyby oprávnění (žádné výsledky při SHOW TABLES / SHOW COLUMNS)

Příklady situací

  • Při spuštění SHOW TABLES se nezobrazí žádné tabulky
  • Při spuštění SHOW COLUMNS se nezobrazí žádné informace

Příčina a řešení
K tomu dochází, když uživatel MySQL nemá dostatečná oprávnění k databázi nebo tabulce. Požádejte správce (např. uživatele root), aby udělil potřebná oprávnění, nebo nakonfigurujte oprávnění pomocí příslušného příkazu GRANT.

Příliš mnoho řádků vráceno, což ztěžuje čtení výsledků

Příklad situace

  • Spuštění SELECT * FROM table_name; zobrazí najednou desítky tisíc řádků

Řešení
Použijte klauzuli LIMIT k omezení počtu vrácených řádků. Příklad:

SELECT * FROM table_name LIMIT 10;

Špatně napsané názvy tabulek nebo sloupců

Příklady situací

  • Neznámý sloupec ‚column_name‘ v ‚field list‘
  • Tabulka ‚database_name.table_name‘ neexistuje

Řešení
Aby se předešlo pravopisným chybám, použijte SHOW TABLES, SHOW COLUMNS nebo funkce dokončování pomocí Tab v CLI.

Většinu těchto chyb lze předejít pečlivým prováděním základních kontrol. Když se něco pokazí, projděte výše uvedené body krok za krokem.

10. Shrnutí

Existuje několik přístupů k základní operaci „kontrola obsahu tabulek“ v MySQL. V tomto článku jsme pokryli vše od výpisu tabulek a kontroly podrobných struktur tabulek až po získávání skutečných dat, stejně jako získávání pokročilých metadat a podrobných informací o správě.

  • Použijte SHOW TABLES k vypsání tabulek,
  • Použijte DESCRIBE (DESC) nebo SHOW COLUMNS ke kontrole informací o sloupcích a struktury,
  • Použijte příkaz SELECT k získání skutečných dat,
  • Použijte SHOW TABLE STATUS, SHOW CREATE TABLE a INFORMATION_SCHEMA k prozkoumání podrobných informací o správě a DDL podle potřeby,
  • A zlepšete každodenní efektivitu vývoje a provozu pomocí nástrojů CLI, zkratek a znalostí řešení problémů.

Ovládnutím těchto technik se operace s databází MySQL stávají bezpečnějšími a spolehlivějšími a chyby či problémy lze minimalizovat. Tento obsah je užitečný pro začátečníky, středně pokročilé uživatele i profesionály pracující v reálném prostředí. Používejte tyto techniky ve svém budoucím vývoji a úlohách správy systémů.

11. FAQ (Často kladené otázky)

Q1. Jak mohu zkontrolovat data v tabulce s konkrétními podmínkami?

A:
Použijte klauzuli WHERE takto:

SELECT * FROM table_name WHERE condition;

Například:

SELECT * FROM users WHERE age > 30;

Toto vrátí pouze uživatele starší 30 let. Můžete to také kombinovat s klauzulí LIMIT, abyste řídili, kolik řádků se zobrazí.

Q2. Spustil jsem SHOW TABLES, ale žádné tabulky se nezobrazily. Proč?

A:
Možné příčiny zahrnují:
(1) Nevybrali jste databázi (USE database_name; chybí),
(2) Zadaný název databáze je nesprávný,
(3) Nedostatečná oprávnění.
Použijte SHOW DATABASES; k ověření názvu databáze a zkontrolujte, zda máte potřebná oprávnění.

Q3. Jak mohu zobrazit strukturu tabulky jako DDL (příkaz CREATE)?

A:
Spusťte následující příkaz:

SHOW CREATE TABLE table_name;

Zobrazí přesný příkaz CREATE TABLE, který byl použit k vytvoření tabulky. To je užitečné pro migraci tabulek a zálohování.

Q4. V tabulce je příliš mnoho dat na to, aby se zobrazila najednou.

A:
Použijte klauzuli LIMIT:

SELECT * FROM table_name LIMIT 10;

Můžete to také kombinovat s OFFSET, abyste postupně kontrolovali konkrétní rozsahy.

Q5. Co je INFORMATION_SCHEMA a kdy bych ho měl používat?

A:
INFORMATION_SCHEMA je speciální databáze, která ukládá metadata MySQL. Je velmi užitečná, když potřebujete získat nebo spravovat velké množství informací o tabulkách, sloupcích, indexech nebo oprávněních. Protože ji lze dotazovat přímo pomocí SQL, je také ideální pro automatizaci a reportování.

Q6. Jak mohu zobrazit výsledky vertikálně?

A:
Přidejte “\G” na konec vašeho SQL příkazu.
Příklad:

SELECT * FROM table_name\G

Tím se každý záznam zobrazí vertikálně, přičemž názvy sloupců a hodnoty jsou v čitelném párovém formátu.