Introdução
Se você realiza tarefas de gerenciamento de banco de dados, como criar tabelas, visualizar relacionamentos ou até gerar relatórios, entender o information_schema do PostgreSQL pode ser muito útil. Neste tutorial, vamos explorar os fundamentos do information_schema do PostgreSQL com alguns exemplos de código.
Este tutorial foi escrito principalmente para PostgreSQL, embora alguns conceitos possam se aplicar a outros bancos de dados relacionais SQL.
Antes de continuar lendo, queria apresentar o nosso gerenciador de banco de dados PostgreSQL moderno e rápido, o Beekeeper Studio. Ele torna a exploração de schemas muito fácil e é gratuito para PostgreSQL. Baixe aqui.
O que é o Information_Schema?
O information_schema é um recurso essencial dos bancos de dados PostgreSQL que dá acesso aos metadados do ‘banco de dados atual’. Ele é basicamente uma coleção de views que contêm informações sobre vários objetos do ‘banco de dados atual’. De tabelas a colunas e constraints, o information_schema do PostgreSQL fornece os detalhes da arquitetura de um banco de dados.
SELECT *
FROM information_schema.tables;
Executar o comando acima no editor SQL do Beekeeper Studio, por exemplo, deve mostrar uma lista das tabelas do seu banco de dados atual.
Indo mais a fundo
Visualizando tabelas públicas
Para listar todas as tabelas públicas disponíveis no seu banco de dados atual, basta executar:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public';
Este comando retorna uma lista com os nomes de todas as tabelas do seu ‘banco de dados atual’ no schema ‘public’.
Resultado usando o banco de dados de exemplo ‘chinook’
| table_name |
|---|
| artist |
| album |
| employee |
| customer |
| invoice |
| invoice_line |
| track |
| playlist |
| playlist_track |
| genre |
| media_type |
Inspecionando colunas
Use a view information_schema.columns para obter informações detalhadas sobre as colunas de uma tabela específica:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name ='album';
Este código retorna uma lista com os nomes de todas as colunas e seus tipos de dados para a tabela selecionada.
Resultado usando o banco de dados de exemplo ‘chinook’
| column_name | data_type |
|---|---|
| album_id | integer |
| artist_id | integer |
| title | character varying |
Exibindo constraints
A view information_schema.table_constraints fornece informações sobre as constraints definidas na tabela.
Você pode usar a seguinte query para buscar as constraints de uma tabela específica:
SELECT constraint_name, constraint_type
FROM information_schema.table_constraints
WHERE table_name='album';
Executar o comando retorna os nomes e tipos das constraints de ‘your_table’, mostrando as regras aplicadas a essa tabela.
Resultado usando o banco de dados de exemplo ‘chinook’
| constraint_name | constraint_type |
|---|---|
| album_pkey | PRIMARY KEY |
| album_artist_id_fkey | FOREIGN KEY |
| 2200_65375_1_not_null | CHECK |
| 2200_65375_2_not_null | CHECK |
| 2200_65375_3_not_null | CHECK |
Conclusão
O information_schema do PostgreSQL é uma ferramenta importante para explorar e entender a estrutura e os detalhes do seu banco de dados. A forma de usá-lo depende das suas necessidades e da configuração do seu banco. Lembre-se de substituir os nomes de tabelas e colunas de exemplo pelos do seu banco de dados para que os comandos funcionem corretamente.
Observação: todos os exemplos deste tutorial são mais adequados ao PostgreSQL (versões 9.4 a 13.3) e podem não ser compatíveis com outros mecanismos de banco de dados. Sempre adapte suas queries ao mecanismo de banco de dados que você está usando. A natureza binária do information_schema do PostgreSQL pode tornar a exploração do seu banco de dados mais fácil, mais eficaz e muito mais rápida.
O Beekeeper Studio é uma GUI para PostgreSQL gratuita e open source
Este é o cliente PostgreSQL que eu estava procurando! A interface é o que o diferencia: limpa, intuitiva e poderosa. Adeus, PGAdmin desajeitado. - David Cyprian
O Beekeeper Studio é um cliente PostgreSQL rápido, intuitivo e fácil de usar. Ele também suporta vários outros bancos de dados e funciona muito bem no Windows, Mac e Linux.
O que os usuários de PostgreSQL dizem sobre o Beekeeper Studio
Diferente do pgAdmin, o Beekeeper é incrivelmente simples de usar sem deixar a desejar em recursos – e o preço é justo! O recurso de backup do banco de dados é especialmente útil. Simplesmente um ótimo software.
Ferramenta fabulosa, a IDE mais prática que encontrei até hoje para administrar bancos Postgres e MySql - simplesmente funciona, sem complicação :-)