Níže jsou uvedeny čtyři způsoby, jak vypsat tabulky v databázi MySQL pomocí SQL nebo příkazového řádku.
SHOW TABLES
Příkaz
SHOW TABLES
příkaz uvádí neTEMPORARY
tabulky a pohledy v dané databázi:
SHOW TABLES;
Výsledek:
+-----------------+ | Tables_in_music | +-----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +-----------------+
Tím byly uvedeny všechny tabulky v aktuální databázi, která se nazývá Music
.
Můžeme také použít FULL
modifikátor, který vrátí druhý sloupec, který zobrazuje typ:
SHOW FULL TABLES;
Výsledek:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | | valbumsartists | VIEW | | valbumsgenres | VIEW | | vallalbums | VIEW | | vallartists | VIEW | | vallgenres | VIEW | +-----------------+------------+
Vidíme, že většina zde uvedených výsledků jsou ve skutečnosti zhlédnutí.
Pokud chceme, aby byly vráceny pouze základní tabulky, můžeme použít WHERE
klauzule proti Table_type
sloupec:
SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';
Výsledek:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | +-----------------+------------+
SHOW TABLES
také přijímá LIKE
klauzule, kterou lze použít k zúžení výsledků pouze na ty tabulky, které odpovídají danému vzoru:
SHOW TABLES
LIKE 'a%';
Výsledek:
+----------------------+ | Tables_in_music (a%) | +----------------------+ | Albums | | Artists | +----------------------+
V tomto případě jsem vrátil všechny tabulky, které začínají písmenem a
.
SHOW TABLE STATUS
Příkaz
SHOW TABLE STATUS
příkaz je podobný příkazu SHOW TABLES
příkaz, ale poskytuje rozsáhlejší informace o každém (neTEMPORARY
) stůl.
Přijímá také WHERE
a LIKE
klauzule, například SHOW TABLES
.
Příklad:
SHOW TABLE STATUS
LIKE 'a%';
Výsledek:
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Albums | InnoDB | 10 | Dynamic | 20 | 819 | 16384 | 0 | 32768 | 0 | 21 | 2022-02-15 09:10:36 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | | Artists | InnoDB | 10 | Dynamic | 16 | 1024 | 16384 | 0 | 0 | 0 | 17 | 2021-11-13 12:56:02 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
information_schema.TABLES
Tabulka
Můžeme se také dotazovat na information_schema.TABLES
tabulka:
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'Music' AND TABLE_TYPE LIKE 'BASE_TABLE';
Výsledek:
+------------+ | TABLE_NAME | +------------+ | Artists | | Genres | | Albums | +------------+
Dotaz bez filtrování výsledků podle TABLE_SCHEMA
vrátí tabulky ze všech databází. Podobně, dotazování bez filtrování podle TABLE_TYPE
vrátí všechny typy tabulek.
mysqlshow
Klient
Další způsob, jak to udělat, je pomocí mysqlshow
užitečnost.
Chcete-li použít tuto možnost, otevřete okno příkazového řádku/terminálu a spusťte následující (nahrazením music
s databází, která vás zajímá):
mysqlshow music;
Výsledek:
+----------------+ | Tables | +----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +----------------+
Tím se vrátí pohledy a tabulky.
Výstup zobrazuje pouze názvy těch databází, tabulek nebo sloupců, pro které máte určitá oprávnění.
Pokud není zadána žádná databáze, zobrazí se seznam názvů databází. Pokud není zadána žádná tabulka, zobrazí se všechny odpovídající tabulky v databázi. Pokud není uveden žádný sloupec, zobrazí se všechny odpovídající sloupce a typy sloupců v tabulce.
Pokud se zobrazí chyba „přístup odepřen“, možná budete muset použít sudo
a po výzvě zadejte heslo:
sudo mysqlshow music;
Tento nástroj přijímá několik možností, jako je --user
(abyste mohli předat uživatelské jméno), --password
(aby bylo možné předat heslo), --host
pro hostitele, na kterém je umístěn server MySQL atd.
Úplný seznam možností naleznete v dokumentaci k MySQL.