Hieronder staan vier manieren om de tabellen in een MySQL-database op te sommen met behulp van SQL of de opdrachtregel.
De SHOW TABLES
Commando
De SHOW TABLES
commando geeft de niet-TEMPORARY
tabellen en weergaven in een bepaalde database:
SHOW TABLES;
Resultaat:
+-----------------+ | Tables_in_music | +-----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +-----------------+
Dat somde alle tabellen op in de huidige database, die Music
heet .
We kunnen ook de FULL
. gebruiken modifier om een tweede kolom terug te geven die het type weergeeft:
SHOW FULL TABLES;
Resultaat:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | | valbumsartists | VIEW | | valbumsgenres | VIEW | | vallalbums | VIEW | | vallartists | VIEW | | vallgenres | VIEW | +-----------------+------------+
We kunnen zien dat de meeste resultaten die hier worden weergegeven, daadwerkelijk weergaven zijn.
Als we alleen basistabellen willen retourneren, kunnen we een WHERE
. gebruiken clausule tegen de Table_type
kolom:
SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';
Resultaat:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | +-----------------+------------+
SHOW TABLES
accepteert ook een LIKE
clausule die kan worden gebruikt om de resultaten te beperken tot alleen die tabellen die overeenkomen met een bepaald patroon:
SHOW TABLES
LIKE 'a%';
Resultaat:
+----------------------+ | Tables_in_music (a%) | +----------------------+ | Albums | | Artists | +----------------------+
In dit geval heb ik alle tabellen geretourneerd die beginnen met de letter a
.
De SHOW TABLE STATUS
Commando
De SHOW TABLE STATUS
opdracht is vergelijkbaar met de SHOW TABLES
commando maar geeft uitgebreidere informatie over elk (niet-TEMPORARY
) tafel.
Het accepteert ook een WHERE
en LIKE
clausule, zoals SHOW TABLES
.
Voorbeeld:
SHOW TABLE STATUS
LIKE 'a%';
Resultaat:
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | 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 | | | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
De information_schema.TABLES
Tabel
We kunnen ook de information_schema.TABLES
. opvragen tabel:
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'Music' AND TABLE_TYPE LIKE 'BASE_TABLE';
Resultaat:
+------------+ | TABLE_NAME | +------------+ | Artists | | Genres | | Albums | +------------+
Dit opvragen zonder de resultaten te filteren op TABLE_SCHEMA
retourneert tabellen uit alle databases. Evenzo, het opvragen zonder te filteren op TABLE_TYPE
geeft alle tabeltypes terug.
De mysqlshow
Klant
Een andere manier om dit te doen is met de mysqlshow
nut.
Om deze optie te gebruiken, opent u een opdrachtregelprompt/terminalvenster en voert u het volgende uit (vervangt music
met de database waarin u geïnteresseerd bent):
mysqlshow music;
Resultaat:
+----------------+ | Tables | +----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +----------------+
Dit levert views en tabellen op.
De uitvoer toont alleen de namen van die databases, tabellen of kolommen waarvoor u bepaalde rechten heeft.
Als er geen database is opgegeven, wordt een lijst met databasenamen weergegeven. Als er geen tabel is opgegeven, worden alle overeenkomende tabellen in de database weergegeven. Als er geen kolom is opgegeven, worden alle overeenkomende kolommen en kolomtypen in de tabel weergegeven.
Als u de foutmelding 'toegang geweigerd' krijgt, moet u mogelijk sudo
. gebruiken , en voer uw wachtwoord in bij de prompt:
sudo mysqlshow music;
Dit hulpprogramma accepteert nogal wat opties, zoals --user
(zodat u de gebruikersnaam kunt doorgeven), --password
(zodat u het wachtwoord kunt doorgeven), --host
voor de host waarop de MySQL-server zich bevindt, enz.
Zie de MySQL-documentatie voor een volledige lijst met opties.