Di seguito sono riportati quattro modi per elencare le tabelle in un database MariaDB utilizzando SQL o la riga di comando.
Gli SHOW TABLES
Comando
Il SHOW TABLES
il comando elenca il non-TEMPORARY
tabelle, sequenze e viste in un determinato database:
SHOW TABLES;
Risultato:
+--------------------+ | Tables_in_pethouse | +--------------------+ | Owners | | PetTypes | | Pets | | vownercount | | vpetcount | | vpetsowners | | vpetstypes | | vpettypecount | +--------------------+
Ciò elencava tutte le tabelle nel database corrente, chiamato pethouse
.
Possiamo anche usare il FULL
modificatore per restituire una seconda colonna che mostra il tipo:
SHOW FULL TABLES;
Risultato:
+--------------------+------------+ | Tables_in_pethouse | Table_type | +--------------------+------------+ | Owners | BASE TABLE | | PetTypes | BASE TABLE | | Pets | BASE TABLE | | vownercount | VIEW | | vpetcount | VIEW | | vpetsowners | VIEW | | vpetstypes | VIEW | | vpettypecount | VIEW | +--------------------+------------+
Possiamo vedere che la maggior parte delle "tabelle" in questo database sono in effetti viste.
Se vogliamo che vengano restituite solo le tabelle di base, possiamo usare un WHERE
clausola:
SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';
Risultato:
+--------------------+------------+ | Tables_in_pethouse | Table_type | +--------------------+------------+ | Owners | BASE TABLE | | PetTypes | BASE TABLE | | Pets | BASE TABLE | +--------------------+------------+
SHOW TABLES
accetta anche un LIKE
clausola che può essere utilizzata per restringere i risultati alle sole tabelle che corrispondono a un determinato modello:
SHOW TABLES
LIKE 'pet%';
Risultato:
+---------------------------+ | Tables_in_pethouse (pet%) | +---------------------------+ | PetTypes | | Pets | +---------------------------+
Lo SHOW TABLE STATUS
Comando
Lo SHOW TABLE STATUS
il comando è simile a SHOW TABLES
comando ma fornisce informazioni più estese su ciascuno (non-TEMPORARY
) tavolo.
Accetta anche un WHERE
e LIKE
clausola, come SHOW TABLES
.
Esempio:
SHOW TABLE STATUS
LIKE 'pet%';
Risultato:
+----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+ | 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 | +----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+
Il information_schema.TABLES
Tabella
Possiamo anche interrogare il information_schema.TABLES
tabella:
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'pethouse' AND TABLE_TYPE LIKE 'BASE_TABLE';
Risultato:
+------------+ | TABLE_NAME | +------------+ | Pets | | Owners | | PetTypes | +------------+
Interrogazione senza filtrare i risultati per TABLE_SCHEMA
restituisce le tabelle da tutti i database. Allo stesso modo, interrogandolo senza filtrare per TABLE_TYPE
restituisce tutti i tipi di tabella.
Il mariadb-show
Cliente
Un altro modo per farlo è con mariadb-show
utilità.
Per utilizzare questa opzione, apri un prompt della riga di comando/una finestra del terminale ed esegui quanto segue (sostituendo pethouse
con il database che ti interessa):
mariadb-show pethouse;
Risultato:
+---------------+ | Tables | +---------------+ | Owners | | PetTypes | | Pets | | vownercount | | vpetcount | | vpetsowners | | vpetstypes | | vpettypecount | +---------------+
Ciò restituisce viste e tabelle.
L'output mostra solo i nomi di quei database, tabelle o colonne per i quali disponi di alcuni privilegi.
Se non viene fornito alcun database, vengono visualizzati tutti i database corrispondenti. Se non viene fornita alcuna tabella, vengono visualizzate tutte le tabelle corrispondenti nel database. Se non viene fornita alcuna colonna, vengono visualizzate tutte le colonne e i tipi di colonna corrispondenti nella tabella.
Il client può anche essere eseguito come mysqlshow
:
mysqlshow pethouse;
Questa utility accetta alcune opzioni, come --user
(in modo da poter passare il nome utente), --password
(in modo da poter passare la password), ecc.
Consulta la documentazione di MariaDB per un elenco completo delle opzioni.