Esistono due metodi principali per visualizzare le tabelle in MySQL:
- Il MYSQL SHOW TABELLE comando.
- Interrogazione di schema_informativo.tables tabella.
In questo articolo li esploreremo entrambi.
Comando MySQL SHOW TABLES
Il comando mostra tabelle visualizza l'elenco di tutte le tabelle create in un database. La sintassi è la seguente:
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
Nella sintassi,
- Modificatori :Possiamo utilizzare una delle seguenti opzioni per visualizzare le tabelle:
- ESTESO – questa opzione popola l'elenco delle tabelle che sono state create dalle istruzioni ALTER TABLE non riuscite.
- COMPLETO – questa opzione mostra una colonna aggiuntiva che fornisce il tipo di tabella. Può essere una tabella di base, una vista o la vista di sistema.
- DA – se vuoi popolare l'elenco delle tabelle dalla tabella specifica, puoi utilizzare la parola chiave FROM.
- MI PIACE – se vuoi popolare l'elenco delle tabelle con uno schema specifico nei loro nomi, puoi utilizzare la parola chiave LIKE.
Vediamo gli esempi.
Esempio 1:mostra tutte le tabelle create in un database specifico
Per visualizzare tutte le tabelle MySQL create in Sakila database, utilizzare il modificatore FULL e la parola chiave FROM. Esegui il seguente comando:
mysql> SHOW TABLES FROM sakila;
Uscita
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223139.png)
Come puoi vedere, la query ha popolato l'elenco delle tabelle di Sakila banca dati.
Esempio 2:popolare l'elenco di tabelle con un pattern di parole chiave specifico
Supponiamo di voler ottenere l'elenco delle tabelle i cui nomi iniziano con la parola chiave film . Stiamo utilizzando la parola chiave LIKE per abbinare il pattern.
Ma quando usiamo il MI PIACE parola chiave, non possiamo utilizzare DA modificatore. La query è la seguente:
use sakila;
SHOW TABLES like 'film%'
Risultato
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223282.png)
Esempio 3:popolare l'elenco di tabelle con il relativo tipo
Per popolare l'elenco delle tabelle con il loro tipo, possiamo utilizzare il FULL modificatore. Supponiamo di voler derivare l'elenco delle tabelle con i loro tipi creati nel database Sakila. Vedere la seguente query:
mysql> SHOW FULL TABLES FROM sakila;
Uscita
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223280.png)
Ora, compiliamo l'elenco delle tabelle da information_schema.tables .
Interrogazione della tabella Information_schema.tables
Per visualizzare le tabelle MySQL, possiamo utilizzare information_schema.tables tabella che contiene le seguenti informazioni:
- Schema_tabella :Nome del database o dello schema in cui è stata creata la tabella.
- Nome_tabella: Nome della tabella.
- Tipo_tabella: Tipo di tabella. Può essere uno dei seguenti:
- Vista di sistema: Elenco delle viste di sistema. Contiene le informazioni dei dettagli interni del database. Queste viste vengono create combinando più tabelle di base con le informazioni del database.
- Tavolo base: Un elenco di tabelle di base può essere tabelle utente o tabelle di sistema.
- Visualizza: Elenco di viste definite dall'utente.
- Motore :Nome del motore di database in cui è stata creata la tabella.
- Versione :il numero di versione di .frm file della tabella.
- Formato_riga :Il formato della memoria di riga. Il formato di archiviazione delle righe può essere uno dei seguenti:
- Risolto
- Compresso
- Ridondanza
- Dinamico
- Compatto
- Righe_tabella :Conteggio di righe all'interno della tabella. Se stai utilizzando le tabelle InnoDB, restituisce i conteggi di righe stimati. Per ottenere il conteggio esatto delle righe, utilizza SELECT COUNT(*) interrogazione.
- Lunghezza_riga_media :lunghezza media della riga del file di dati.
- Lunghezza_dati :se stai utilizzando le tabelle MyISAM, il valore di data_length colonna è la lunghezza del file di dati. Se stai utilizzando le tabelle InnoDB, il valore di Data_length colonna è la quantità della dimensione allocata all'indice cluster moltiplicata per la dimensione della pagina InnoDB.
- Lunghezza_dati_massima: La lunghezza massima consentita del file di dati. È il numero di byte che possono essere memorizzati nella tabella.
- Lunghezza_indice: La lunghezza dell'indice. Se utilizzi le tabelle MyISAM, il valore di index_length colonna mostra la dimensione dell'indice. Se stai utilizzando le tabelle InnoDB, il valore di index_length colonna è la dimensione totale di tutti gli indici non cluster moltiplicata per la dimensione della pagina.
- Senza dati :il numero totale di byte allocati ma non utilizzati. Se stai utilizzando la tabella InnoDB, il valore di data_free colonna è lo spazio inutilizzato del tablespace in cui è stata creata la tabella.
- Incremento_auto: Il valore di incremento_automatico colonna è il successivo valore di incremento automatico.
- Crea_tempo :la data e l'ora in cui è stata creata la tabella. Quando ripristiniamo il database, il valore di create_date sarà l'ora in cui il database è stato ripristinato.
- Aggiornamento_ora :la data e l'ora in cui il file di dati è stato aggiornato. Visualizza il timestamp delle ultime istruzioni INSERT, UPDATE o DELETE eseguite sulle tabelle InnoDB.
- Check_Time: La data e l'ora dell'ultima verifica della tabella.
- Collazione_tabelle :il nome delle regole di confronto predefinite della tabella.
- Somma di controllo :Il valore del checksum.
- Crea_opzione :l'opzione di configurazione aggiuntiva utilizzata per creare la tabella.
- Commento_tabella :il commento o le informazioni utilizzate durante la creazione della tabella.
Esempio 1:popola l'elenco di tutte le tabelle
Supponiamo di voler popolare tutte le tabelle create in tutti i database. La query è la seguente:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;
Uscita
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223226.png)
Come puoi vedere, la query ha popolato l'elenco delle tabelle con il nome del database e ha creato l'ora. La query ha restituito molti record, quindi l'output viene tagliato.
Esempio 2:popola l'elenco di tutte le tabelle create in un database specifico
Per popolare l'elenco delle tabelle create in Sakila database, puoi applicare il filtro su Table_Schema colonna:
mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';
Uscita
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223220.png)
Come puoi vedere, la query ha restituito l'elenco di tabelle e viste create nel database Sakila, il suo tempo di creazione e il tipo.
Esempio 3:popola l'elenco di tutte le tabelle con il numero di righe
Possiamo includere le righe_tabella colonna per visualizzare il conteggio delle righe delle tabelle MySQL. Supponiamo di voler ottenere l'elenco delle tabelle il cui nome inizia con film . L'output deve includere il numero di record all'interno di tali tabelle.
mysql> select table_catalog, table_schema, table_name,table_type,table_rows from information_schema.tables WHERE table_schema='sakila' and table_name like 'film%' and table_type='BASE TABLE';
Uscita
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223230.png)
Esempio 4:popolare il conteggio di tabelle e viste
Ad esempio, vogliamo ottenere il conteggio delle tabelle e delle viste create nel database. Per farlo, esegui la seguente query:
mysql> select table_schema as 'Database OR Schema name', count(table_type) as 'Tables and Views', table_type as 'Object Type' from information_schema.tables group by table_type,table_schema;
Uscita
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223228.png)
Come puoi vedere nell'immagine sopra, la query ha popolato il conteggio delle tabelle e delle viste create in tutti i database.
Esempio 5:Tabelle con le loro dimensioni
Ora, vogliamo popolare l'elenco delle tabelle create in Sakila database con la loro dimensione. Per generare l'elenco, esegui la seguente query:
mysql> SELECT Table_schema as 'Database Name', TABLE_NAME AS 'Table', ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 ) AS 'Size in KB' FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'sakila' and table_type='BASE TABLE' ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Uscita
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223299.png)
Come puoi vedere, la query ha restituito il nome del database, il nome della tabella e la dimensione.
Riepilogo
Pertanto, abbiamo definito e imparato ad utilizzare i metodi per popolare l'elenco delle tabelle create nel database. Abbiamo esplorato lo SHOW TABELLE comando, quindi abbiamo esaminato il metodo di interrogazione di Information_schema.tables tavolo. Ci auguriamo che questi suggerimenti siano utili nel tuo flusso di lavoro.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051018223311.png)
Se vuoi saperne di più sulle tabelle in SQL, leggi l'articolo sulle tabelle temporanee in SQL Server. E se desideri aggiungere qualcosa, condividere i tuoi suggerimenti di lavoro o discutere di questi metodi, sei il benvenuto nella sezione Commenti.