sql >> Database >  >> RDS >> Mysql

4 manieren om alle tabellen in een MySQL-database weer te geven

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.


  1. Upgrade van SQL Server-gegevensplatform in 2015

  2. Cassandra maskeren met IRI FieldShield

  3. Langzame query-log inschakelen in PostgreSQL

  4. Oracle verbinden met Amazon Aurora