sql >> Database teknologi >  >> RDS >> MariaDB

4 måder at liste alle tabeller i en MariaDB-database

Nedenfor er fire måder at vise tabellerne i en MariaDB-database ved hjælp af SQL eller kommandolinjen.

SHOW TABLES Kommando

SHOW TABLES kommandoen viser den ikke-TEMPORARY tabeller, sekvenser og visninger i en given database:

SHOW TABLES;

Resultat:

+--------------------+
| Tables_in_pethouse |
+--------------------+
| Owners             |
| PetTypes           |
| Pets               |
| vownercount        |
| vpetcount          |
| vpetsowners        |
| vpetstypes         |
| vpettypecount      |
+--------------------+

Det listede alle tabeller i den aktuelle database, som kaldes pethouse .

Vi kan også bruge FULL modifikator for at returnere en anden kolonne, der viser typen:

SHOW FULL TABLES;

Resultat:

+--------------------+------------+
| Tables_in_pethouse | Table_type |
+--------------------+------------+
| Owners             | BASE TABLE |
| PetTypes           | BASE TABLE |
| Pets               | BASE TABLE |
| vownercount        | VIEW       |
| vpetcount          | VIEW       |
| vpetsowners        | VIEW       |
| vpetstypes         | VIEW       |
| vpettypecount      | VIEW       |
+--------------------+------------+

Vi kan se, at de fleste af "tabellerne" i denne database faktisk er visninger.

Hvis vi kun ønsker, at basistabeller skal returneres, kan vi bruge en WHERE klausul:

SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';

Resultat:

+--------------------+------------+
| Tables_in_pethouse | Table_type |
+--------------------+------------+
| Owners             | BASE TABLE |
| PetTypes           | BASE TABLE |
| Pets               | BASE TABLE |
+--------------------+------------+

SHOW TABLES accepterer også en LIKE klausul, der kan bruges til at indsnævre resultaterne til kun de tabeller, der matcher et givet mønster:

SHOW TABLES
LIKE 'pet%';

Resultat:

+---------------------------+
| Tables_in_pethouse (pet%) |
+---------------------------+
| PetTypes                  |
| Pets                      |
+---------------------------+

SHOW TABLE STATUS Kommando

SHOW TABLE STATUS kommandoen ligner SHOW TABLES kommando, men giver mere omfattende information om hver (ikke-TEMPORARY). ) bord.

Den accepterer også en WHERE og LIKE klausul, som SHOW TABLES .

Eksempel:

SHOW TABLE STATUS
LIKE 'pet%';

Resultat:

+----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+
| 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 | Max_index_length | Temporary |
+----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+
| PetTypes | InnoDB |      10 | Dynamic    |    4 |           4096 |       16384 |               0 |            0 |         0 |           NULL | 2021-03-30 09:10:36 | NULL        | NULL       | utf8mb4_general_ci |     NULL |                |         |                0 | N         |
| Pets     | InnoDB |      10 | Dynamic    |    8 |           2048 |       16384 |               0 |        32768 |         0 |           NULL | 2021-04-01 15:42:43 | NULL        | NULL       | utf8mb4_general_ci |     NULL |                |         |                0 | N         |
+----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+

information_schema.TABLES Tabel

Vi kan også forespørge på information_schema.TABLES tabel:

SELECT 
    TABLE_NAME
FROM 
    information_schema.TABLES 
WHERE 
    TABLE_SCHEMA LIKE 'pethouse' AND TABLE_TYPE LIKE 'BASE_TABLE';

Resultat:

+------------+
| TABLE_NAME |
+------------+
| Pets       |
| Owners     |
| PetTypes   |
+------------+

Forespørger om dette uden at filtrere resultaterne efter TABLE_SCHEMA returnerer tabeller fra alle databaser. På samme måde kan du forespørge efter det uden at filtrere efter TABLE_TYPE returnerer alle tabeltyper.

mariadb-show Klient

En anden måde at gøre det på er med mariadb-show nytte.

For at bruge denne mulighed skal du åbne en kommandolinjeprompt/terminalvindue og køre følgende (erstat pethouse med den database, du er interesseret i):

mariadb-show pethouse;

Resultat:

+---------------+
|    Tables     |
+---------------+
| Owners        |
| PetTypes      |
| Pets          |
| vownercount   |
| vpetcount     |
| vpetsowners   |
| vpetstypes    |
| vpettypecount |
+---------------+

Dette returnerer visninger og tabeller.

Outputtet viser kun navnene på de databaser, tabeller eller kolonner, som du har nogle privilegier til.

Hvis der ikke er angivet nogen database, vises alle matchende databaser. Hvis der ikke er angivet nogen tabel, vises alle matchende tabeller i databasen. Hvis der ikke er angivet nogen kolonne, vises alle matchende kolonner og kolonnetyper i tabellen.

Klienten kan også køres som mysqlshow :

mysqlshow pethouse;

Dette værktøj accepterer en hel del muligheder, såsom --user (så du kan videregive brugernavnet), --password (så du kan videregive adgangskoden) osv.

Se MariaDBs dokumentation for en komplet liste over muligheder.


  1. Sådan tælles elementer i kommasepareret liste MySQL

  2. Hvad er SQLite?

  3. MariaDB BENCHMARK() Forklaret

  4. Oracle SQL GROUP BY ikke en GROUP BY udtrykshjælp