É possível, de alguma forma, obter estrutura do banco de dados MySQL, ou apenas alguma tabela com consulta simples?
Ou existe outra maneira, como posso fazer isso?
É possível, de alguma forma, obter estrutura do banco de dados MySQL, ou apenas alguma tabela com consulta simples?
Ou existe outra maneira, como posso fazer isso?
Respostas:
Eu acho que o que você procura é DESCRIBE
DESCRIBE table;
Você também pode usar SHOW TABLES
SHOW TABLES;
para obter uma lista das tabelas no seu banco de dados.
Para obter toda a estrutura do banco de dados como um conjunto de instruções CREATE TABLE , use mysqldump :
mysqldump database_name --compact --no-data
Para tabelas únicas, adicione o nome da tabela após o nome do banco de dados no mysqldump. Você obtém os mesmos resultados com SQL e SHOW CREATE TABLE :
SHOW CREATE TABLE table;
Ou DESCREVA se você preferir uma lista de colunas:
DESCRIBE table;
show create table
era exatamente o que eu estava procurando. Obrigado!
Dê uma olhada no INFORMATION_SCHEMA
. TABLES
tabela. Ele contém metadados sobre todas as suas tabelas.
Exemplo:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
A vantagem disso em relação a outros métodos é que você pode usar facilmente consultas como a acima como subconsultas em outras consultas.
information_schema
. columns
(usando columns
a tabela em vez de tables
Porque? tables
não contém qualquer informação sobre quais tipos são as colunas da tabela
usando isso:
SHOW CREATE TABLE `users`;
lhe dará o DDL para essa tabela
DESCRIBE `users`
listará as colunas nessa tabela
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
onde Table_schema
é o nome do banco de dados
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_db_name' AND TABLE_NAME ='users';
Essa é a consulta SHOW CREATE TABLE . Você também pode consultar as TABELAS DE ESQUEMA .
SHOW CREATE TABLE YourTableName;
Uma variação da primeira resposta que achei útil
Abra seu prompt de comando e digite (você não precisa estar logado no servidor mysql)
mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp
SELECIONE COLUMN_NAME
DE INFORMATION_SCHEMA
. COLUMNS
WHERE TABLE_SCHEMA
= 'bodb' AND TABLE_NAME
= 'abc';
funciona para obter todos os nomes de coluna
No exemplo a seguir,
playground
é o nome do banco de dados eequipment
é o nome da tabela
Outra maneira é usar SHOW-COLUMNS: 5.5 (disponível também para 5.5>
)
$ mysql -uroot -p<password> -h<host> -P<port> -e \
"SHOW COLUMNS FROM playground.equipment"
E a saída:
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| type | varchar(50) | YES | | NULL | |
| quant | int(11) | YES | | NULL | |
| color | varchar(25) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
Também é possível usar o mysqlshow-client (também disponível para 5.5>
) como a seguir:
$ mysqlshow -uroot -p<password> -h<host> -P<port> \
playground equipment
E a saída:
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: playground Table: equipment
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| id | int(11) | | NO | PRI | | auto_increment | select,insert,update,references | |
| type | varchar(50) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
| quant | int(11) | | YES | | | | select,insert,update,references | |
| color | varchar(25) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
SHOW TABLES FROM database_name