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