3.4 Ottenere informazioni su database e tabelle
Cosa succede se si dimentica il nome di un database o di una tabella, o qual è la struttura di una data tabella (per esempio, come sono chiamate le sue colonne)? MySQL affronta questo problema attraverso diverse dichiarazioni che forniscono informazioni sui database e le tabelle che supporta.
Avete già visto SHOW DATABASES, che elenca i database gestiti dal server. Per sapere quale database è attualmente selezionato, usate la funzione DATABASE():
mysql> SELECT DATABASE();+------------+| DATABASE() |+------------+| menagerie |+------------+
Se non è stato ancora selezionato alcun database, il risultato è NULL.
Per scoprire quali tabelle contiene il database predefinito (per esempio, quando non si è sicuri del nome di una tabella), utilizzare questa istruzione:
mysql> SHOW TABLES;+---------------------+| Tables_in_menagerie |+---------------------+| event || pet |+---------------------+
Il nome della colonna nell’output prodotto da questa istruzione è sempre Tables_in_, dove db_namedb_name è il nome del database. Vedi Sezione 13.7.7.39, “Dichiarazione SHOW TABLES”, per maggiori informazioni.
Se si vuole conoscere la struttura di una tabella, l’istruzione DESCRIBE è utile; mostra informazioni su ciascuna delle colonne di una tabella:
mysql> DESCRIBE pet;+---------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| name | varchar(20) | YES | | NULL | || owner | varchar(20) | YES | | NULL | || species | varchar(20) | YES | | NULL | || sex | char(1) | YES | | NULL | || birth | date | YES | | NULL | || death | date | YES | | NULL | |+---------+-------------+------+-----+---------+-------+
Field indica il nome della colonna, Type è il tipo di dati della colonna, NULL indica se la colonna può contenere valori NULLKey indica se la colonna è indicizzata, e Default specifica il valore di default della colonna. Extra visualizza informazioni speciali sulle colonne: Se una colonna è stata creata con l’opzione AUTO_INCREMENT, il valore è auto_increment piuttosto che vuoto.
DESC è una forma breve di DESCRIBE. Vedi Sezione 13.8.1, “DESCRIBE Statement”, per maggiori informazioni.
Si può ottenere la dichiarazione CREATE TABLE necessaria per creare una tabella esistente usando la dichiarazione SHOW CREATE TABLE. Vedere Sezione 13.7.7.10, “Dichiarazione SHOW CREATE TABLE”.
Se si hanno indici su una tabella, SHOW INDEX FROM produce informazioni su di essi. Vedere Sezione 13.7.7.22, “Dichiarazione SHOW INDEX”, per maggiori informazioni su questa dichiarazione.tbl_name