Mysql
 sql >> Database >  >> RDS >> Mysql

4 modi per elencare tutte le viste in MySQL

Di seguito sono riportati quattro modi per elencare le viste in un database MySQL utilizzando SQL o la riga di comando.

Il SHOW TABLES Comando

Il SHOW TABLES il comando elenca il non-TEMPORARY tabelle, sequenze e viste in un dato database MySQL. 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_music | Table_type |
+-----------------+------------+
| valbumsartists  | VIEW       |
| valbumsgenres   | VIEW       |
| vallalbums      | VIEW       |
| vallartists     | VIEW       |
| vallgenres      | VIEW       |
+-----------------+------------+

Omettendo il WHERE la clausola restituisce tutti i tipi:

SHOW FULL TABLES;

Risultato:

+-----------------+------------+
| Tables_in_music | Table_type |
+-----------------+------------+
| Albums          | BASE TABLE |
| Artists         | BASE TABLE |
| Genres          | BASE TABLE |
| valbumsartists  | VIEW       |
| valbumsgenres   | VIEW       |
| vallalbums      | VIEW       |
| vallartists     | VIEW       |
| vallgenres      | VIEW       |
+-----------------+------------+

Lo SHOW TABLE STATUS Comando

In MySQL, 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 |
+----------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| Albums         | InnoDB |      10 | Dynamic    |   20 |            819 |       16384 |               0 |        32768 |         0 |             21 | 2021-11-13 12:56:02 | 2021-11-13 12:56:13 | NULL       | utf8mb4_0900_ai_ci |     NULL |                |         |
| Artists        | InnoDB |      10 | Dynamic    |   16 |           1024 |       16384 |               0 |            0 |         0 |             17 | 2021-11-13 12:56:02 | 2021-11-13 12:56:13 | NULL       | utf8mb4_0900_ai_ci |     NULL |                |         |
| Genres         | InnoDB |      10 | Dynamic    |    8 |           2048 |       16384 |               0 |            0 |         0 |              9 | 2021-11-13 12:56:02 | 2021-11-13 12:56:13 | NULL       | utf8mb4_0900_ai_ci |     NULL |                |         |
| valbumsartists | NULL   |    NULL | NULL       | NULL |           NULL |        NULL |            NULL |         NULL |      NULL |           NULL | 2021-11-15 06:02:24 | NULL                | NULL       | NULL               |     NULL | NULL           | VIEW    |
| valbumsgenres  | NULL   |    NULL | NULL       | NULL |           NULL |        NULL |            NULL |         NULL |      NULL |           NULL | 2021-11-15 06:09:47 | NULL                | NULL       | NULL               |     NULL | NULL           | VIEW    |
| vallalbums     | NULL   |    NULL | NULL       | NULL |           NULL |        NULL |            NULL |         NULL |      NULL |           NULL | 2021-11-15 06:12:51 | NULL                | NULL       | NULL               |     NULL | NULL           | VIEW    |
| vallartists    | NULL   |    NULL | NULL       | NULL |           NULL |        NULL |            NULL |         NULL |      NULL |           NULL | 2021-11-15 06:13:02 | NULL                | NULL       | NULL               |     NULL | NULL           | VIEW    |
| vallgenres     | NULL   |    NULL | NULL       | NULL |           NULL |        NULL |            NULL |         NULL |      NULL |           NULL | 2021-11-15 06:12:36 | NULL                | NULL       | NULL               |     NULL | NULL           | VIEW    |
+----------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+

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 'music' AND TABLE_TYPE LIKE 'VIEW';

Risultato:

+--------------+----------------+------------+
| TABLE_SCHEMA | TABLE_NAME     | TABLE_TYPE |
+--------------+----------------+------------+
| Music        | valbumsartists | VIEW       |
| Music        | valbumsgenres  | VIEW       |
| Music        | vallgenres     | VIEW       |
| Music        | vallalbums     | VIEW       |
| Music        | vallartists    | VIEW       |
+--------------+----------------+------------+

In questo caso, ho restituito tutte le visualizzazioni dal database chiamato music . 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 mysqlshow Cliente

Un altro modo per farlo è con mysqlshow utilità.

Per utilizzare questa opzione, apri un prompt della riga di comando/finestra del terminale ed esegui quanto segue:

mysqlshow --user root --password music;

Assicurati di sostituire music con il database che ti interessa e root con l'utente applicabile. Il --password bit fa sì che all'utente venga richiesta la password.

Risultato:

Enter password: 
Database: music
+----------------+
|     Tables     |
+----------------+
| Albums         |
| Artists        |
| Genres         |
| valbumsartists |
| valbumsgenres  |
| vallalbums     |
| vallartists    |
| vallgenres     |
+----------------+

Il mysqlshow il cliente restituisce viste e tabelle.

L'output mostra solo i nomi di quei database, tabelle o colonne per i quali l'utente dispone 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.