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.