sql >> Databáze >  >> RDS >> Mysql

Různé způsoby zobrazení tabulek na serveru MySQL

Existují dva primární způsoby zobrazení tabulek v MySQL:

  1. MYSQL SHOW TABULKY příkaz.
  2. 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

  1. Modifikátory :K zobrazení tabulek můžeme použít kteroukoli z následujících možností:
    1. EXTENDED – tato volba vyplní seznam tabulek, které byly vytvořeny neúspěšnými příkazy ALTER TABLE.
    2. FULL – tato možnost zobrazí další sloupec, který poskytuje typ tabulky. Může to být Základní tabulka, Zobrazení nebo Systémové zobrazení.
  2. OD – pokud chcete naplnit seznam tabulek z konkrétní tabulky, můžete použít klíčové slovo FROM.
  3. 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.


  1. Generování časových řad mezi dvěma daty v PostgreSQL

  2. Jak používat MySQLdb s Pythonem a Django v OSX 10.6?

  3. Rozdíl mezi schématem / databází v MySQL

  4. Jak funguje UNIX_TIMESTAMP() v MariaDB