3.4 Obter Informação Sobre Bases de Dados e Tabelas
E se se esquecer do nome de uma base de dados ou tabela, ou qual é a estrutura de uma dada tabela (por exemplo, como se chamam as suas colunas)? O MySQL aborda este problema através de várias afirmações que fornecem informações sobre as bases de dados e tabelas que suporta.
Já viu anteriormente SHOW DATABASES, que lista as bases de dados geridas pelo servidor. Para descobrir que base de dados está actualmente seleccionada, utilize a função DATABASE():
mysql> SELECT DATABASE();+------------+| DATABASE() |+------------+| menagerie |+------------+
Se ainda não seleccionou nenhuma base de dados, o resultado é NULL.
Para saber que tabelas contém a base de dados por defeito (por exemplo, quando não tem a certeza sobre o nome de uma tabela), utilize esta declaração:
mysql> SHOW TABLES;+---------------------+| Tables_in_menagerie |+---------------------+| event || pet |+---------------------+
O nome da coluna na saída produzida por esta declaração é sempre Tables_in_, onde db_namedb_name é o nome da base de dados. Ver Secção 13.7.7.39, “Declaração de QUADROS DE PROJECTO”, para mais informações.
Se quiser conhecer a estrutura de uma tabela, a declaração DESCRIBE é útil; exibe informação sobre cada uma das colunas de uma tabela:
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 o nome da coluna, Type é o tipo de dados para a coluna, NULL indica se a coluna pode conter NULL valores, Key indica se a coluna está indexada, e Default especifica o valor por defeito da coluna. Extra indica se a coluna está indexada, e Extra indica se a coluna está indexada, e Se uma coluna foi criada com a opção AUTO_INCREMENT, o valor é auto_increment em vez de vazio.
DESC é uma forma curta de DESCRIBE. Ver Secção 13.8.1, “Declaração DESCRIBE”, para mais informações.
Pode obter a declaração CREATE TABLE necessária para criar uma tabela existente utilizando a declaração SHOW CREATE TABLE. Ver a secção 13.7.7.10, “SHOW CREATE TABLE Statement”.
Se tiver índices numa tabela, SHOW INDEX FROM produz informação sobre eles. Ver a Secção 13.7.7.22, “SHOW INDEX Statement”, para mais informações sobre esta declaração.tbl_name