Existují dva primární způsoby zobrazení tabulek v MySQL:
- MYSQL SHOW TABULKY příkaz.
- Dotaz na Information_schema.tables stůl.
V tomto článku je oba prozkoumáme.
Příkaz MySQL SHOW TABLES
Příkaz show tables zobrazí seznam všech tabulek vytvořených v databázi. Syntaxe je následující:
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
V syntaxi
- Modifikátory :K zobrazení tabulek můžeme použít kteroukoli z následujících možností:
- EXTENDED – tato volba vyplní seznam tabulek, které byly vytvořeny neúspěšnými příkazy ALTER TABLE.
- FULL – tato možnost zobrazí další sloupec, který poskytuje typ tabulky. Může to být Základní tabulka, Zobrazení nebo Systémové zobrazení.
- OD – pokud chcete naplnit seznam tabulek z konkrétní tabulky, můžete použít klíčové slovo FROM.
- LIKE – pokud chcete naplnit seznam tabulek konkrétním vzorem v jejich názvech, můžete použít klíčové slovo LIKE.
Podívejme se na příklady.
Příklad 1:Zobrazit všechny tabulky vytvořené v konkrétní databázi
Chcete-li zobrazit všechny tabulky MySQL vytvořené v Sakila databáze, použijte modifikátor FULL a klíčové slovo FROM. Spusťte následující příkaz:
mysql> SHOW TABLES FROM sakila;
Výstup
Jak můžete vidět, dotaz vyplnil seznam tabulek z Sakila databáze.
Příklad 2:Vyplnění seznamu tabulek konkrétním vzorem klíčových slov
Předpokládejme, že chceme získat seznam tabulek, jejichž názvy začínají klíčovým slovem film . Ke shodě vzoru používáme klíčové slovo LIKE.
Když ale použijeme LIKE klíčové slovo, nemůžeme použít FROM modifikátor. Dotaz je následující:
use sakila;
SHOW TABLES like 'film%'
Výstup
Příklad 3:Naplnění seznamu tabulek jeho typem
K naplnění seznamu tabulek jejich typem můžeme použít FULL modifikátor. Předpokládejme, že chceme odvodit seznam tabulek s jejich typy vytvořený v databázi Sakila. Viz následující dotaz:
mysql> SHOW FULL TABLES FROM sakila;
Výstup
Nyní naplníme seznam tabulek z information_schema.tables .
Dotazování tabulky Information_schema.tables
Pro zobrazení tabulek MySQL můžeme použít information_schema.tables tabulka, která obsahuje následující informace:
- Schéma_tabulky :Název databáze nebo schématu, ve kterém byla tabulka vytvořena.
- Table_name: Název tabulky.
- Typ_tabulky: Typ stolu. Může to být kterýkoli z následujících:
- Zobrazení systému: Seznam systémových pohledů. Obsahuje informace o interních detailech databáze. Tyto pohledy jsou vytvořeny kombinací několika základních tabulek s databázovými informacemi.
- Základní tabulka: Seznam základních tabulek mohou být uživatelské tabulky nebo systémové tabulky.
- Zobrazit: Seznam uživatelsky definovaných pohledů.
- Motor :Název databázového stroje, ve kterém byla tabulka vytvořena.
- Verze :Číslo verze .frm soubor tabulky.
- Row_format :Formát úložiště řádků. Formát úložiště řádků může být některý z následujících:
- Opraveno
- Komprimováno
- Nadbytečné
- Dynamické
- Kompaktní
- Řádky_tabulky :Počet řádků v tabulce. Pokud používáte tabulky InnoDB, vrací odhadovaný počet řádků. Chcete-li získat přesný počet řádků, použijte SELECT COUNT(*) dotaz.
- Průměrná_délka_řádku :Průměrná délka řádku datového souboru.
- Délka_dat :Pokud používáte tabulky MyISAM, hodnota data_length sloupec je délka datového souboru. Pokud používáte tabulky InnoDB, hodnota Data_length sloupec je množství velikosti přidělené klastrovanému indexu vynásobené velikostí stránky InnoDB.
- Max_data_length: Maximální povolená délka datového souboru. Je to počet bajtů, které lze uložit do tabulky.
- Index_length: Délka indexu. Pokud používáte tabulky MyISAM, hodnota index_length sloupec ukazuje velikost indexu. Pokud používáte tabulky InnoDB, hodnota index_length sloupec je celková velikost všech indexů bez klastrů vynásobená velikostí stránky.
- Data_free :Celkový počet přidělených, ale nepoužitých bajtů. Pokud používáte tabulku InnoDB, hodnota data_free sloupec je nevyužitý prostor tabulkového prostoru, ve kterém byla tabulka vytvořena.
- Auto_increment: Hodnota Auto_increment sloupec je další hodnota automatického zvýšení.
- Create_time :Datum a čas vytvoření tabulky. Když obnovíme databázi, hodnota create_date bude čas, kdy byla databáze obnovena.
- Update_time :Datum a čas, kdy byl datový soubor aktualizován. Zobrazuje časové razítko posledních příkazů INSERT, UPDATE nebo DELETE provedených v tabulkách InnoDB.
- Check_Time: Datum a čas, kdy byla tabulka naposledy zkontrolována.
- Table_collation :Název výchozího řazení tabulky.
- Kontrolní součet :Hodnota kontrolního součtu.
- Create_Option :Další možnost konfigurace, která byla použita k vytvoření tabulky.
- Table_comment :Komentář nebo informace použité při vytváření tabulky.
Příklad 1:Vyplnění seznamu všech tabulek
Předpokládejme, že chceme naplnit všechny tabulky vytvořené ve všech databázích. Dotaz je následující:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;
Výstup
Jak vidíte, dotaz naplnil seznam tabulek názvem databáze a časem vytvoření. Dotaz vrátil mnoho záznamů, takže výstup je oříznut.
Příklad 2:Naplnění seznamu všech tabulek vytvořených v konkrétní databázi
K naplnění seznamu tabulek vytvořených v Sakila databáze, můžete použít filtr na Schéma_tabulky sloupec:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';
Výstup
Jak vidíte, dotaz vrátil seznam tabulek a pohledů vytvořených v databázi Sakila, čas jeho vytvoření a typ.
Příklad 3:Vyplnění seznamu všech tabulek počtem řádků
Můžeme zahrnout řádky_tabulky sloupec pro zobrazení počtu řádků tabulek MySQL. Předpokládejme, že chcete získat seznam tabulek, jejichž název začíná film . Výstup musí obsahovat počet záznamů v těchto tabulkách.
mysql> select table_catalog, table_schema, table_name,table_type,table_rows from information_schema.tables WHERE table_schema='sakila' and table_name like 'film%' and table_type='BASE TABLE';
Výstup
Příklad 4:Vyplnění počtu tabulek a zobrazení
Chceme například získat počet tabulek a pohledů vytvořených v databázi. Chcete-li to provést, spusťte následující dotaz:
mysql> select table_schema as 'Database OR Schema name', count(table_type) as 'Tables and Views', table_type as 'Object Type' from information_schema.tables group by table_type,table_schema;
Výstup
Jak můžete vidět na obrázku výše, dotaz zaplnil počet tabulek a pohledů vytvořených ve všech databázích.
Příklad 5:Tabulky s jejich velikostí
Nyní chceme naplnit seznam tabulek vytvořených v Sakila databáze s jejich velikostí. Chcete-li vygenerovat seznam, spusťte následující dotaz:
mysql> SELECT Table_schema as 'Database Name', TABLE_NAME AS 'Table', ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 ) AS 'Size in KB' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'sakila' and table_type='BASE TABLE' ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Výstup
Jak vidíte, dotaz vrátil název databáze, název tabulky a velikost.
Shrnutí
Tím jsme definovali a naučili se používat metody naplnění seznamu tabulek vytvořených v databázi. Prozkoumali jsme SHOW TABULKY a poté jsme zkoumali metodu dotazování Information_schema.tables stůl. Doufáme, že tyto tipy budou užitečné ve vašem pracovním postupu.
Pokud se chcete dozvědět více o tabulkách v SQL, přečtěte si článek o dočasných tabulkách v SQL Server. A pokud byste chtěli něco přidat, podělit se o své pracovní tipy nebo prodiskutovat tyto metody, jste vítáni v sekci Komentáře.