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_name
db_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 NULL
Key
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