Di seguito sono riportati quattro modi per elencare le viste 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. Possiamo usare il WHERE
clausola per restringerla alle sole visualizzazioni.
Possiamo anche usare il FULL
modificatore per restituire una seconda colonna che mostra il tipo:
SHOW FULL TABLES
WHERE Table_Type LIKE 'VIEW';
Risultato:
+--------------------+------------+ | Tables_in_pethouse | Table_type | +--------------------+------------+ | vownercount | VIEW | | vpetcount | VIEW | | vpetsowners | VIEW | | vpetstypes | VIEW | | vpettypecount | VIEW | +--------------------+------------+
Omettendo il WHERE
la clausola restituisce tutti i tipi:
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 | +--------------------+------------+
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
) tabella.
Esempio:
SHOW TABLE STATUS;
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 | +---------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+ | Owners | InnoDB | 10 | Dynamic | 6 | 2730 | 16384 | 0 | 0 | 0 | NULL | 2021-03-30 09:10:36 | NULL | NULL | utf8mb4_general_ci | NULL | | | 0 | N | | 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 | | vownercount | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | VIEW | NULL | NULL | | vpetcount | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | VIEW | NULL | NULL | | vpetsowners | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | VIEW | NULL | NULL | | vpetstypes | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | VIEW | NULL | NULL | | vpettypecount | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | VIEW | NULL | NULL | +---------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+
Accetta anche un WHERE
e LIKE
clausola nel caso in cui desideri restringere i risultati.
Il information_schema.TABLES
Tabella
Possiamo anche interrogare il information_schema.TABLES
tabella:
SELECT
TABLE_SCHEMA,
TABLE_NAME,
TABLE_TYPE
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'pethouse' AND TABLE_TYPE LIKE 'VIEW';
Risultato:
+--------------+---------------+------------+ | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | +--------------+---------------+------------+ | PetHouse | vpettypecount | VIEW | | PetHouse | vpetstypes | VIEW | | PetHouse | vownercount | VIEW | | PetHouse | vpetcount | VIEW | | PetHouse | vpetsowners | VIEW | +--------------+---------------+------------+
Interrogazione senza filtrare i risultati per TABLE_SCHEMA
restituisce visualizzazioni 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.