Translate

quarta-feira, 15 de novembro de 2017

Postgresql - Listar colunas de uma tabela

Neste post vamos mostrar como listar as colunas de uma tabela no Postgresql.

Para você que está familiarizado com o mysql ou oracle, é equivalente ao comando "describe".

Há duas formas de exibir as colunas de uma tabela.  A primeira é utilizar um comando psql e a segunda é fazer uma consulta utilizando o "information_schema".

1ª ) Utilizar comando psql;

\d+ nome_da_tabela

Exemplo

Listar as colunas da tabela "tb_uf".

\d+ tb_uf



2ª ) Utilizar a view "columns". Esta view já está localizada por padrão no catálogo de objetos do Postgresql, em information_schema.
O information_schema é um padrão ANSI, que contém views que fornecem informações sobre o banco de dados: tabelas, views, colunas e procedures.

Veja a sua localização na imagem abaixo:



Exemplo

Agora vamos listar as colunas da tabela "tb_uf", utilizando a view "columns" , em information_schema.

SELECT
column_name,
data_type,
table_catalog,
table_name,
ordinal_position,
is_nullable,
table_schema
FROM
information_schema.columns
WHERE table_name = 'tb_uf';

Veja a imagem abaixo:



Descrevemos algumas informações sobre as colunas da view "columns". Listamos a seguir:
  • column_name: armazena o nome da coluna. Neste exemplo temos as colunas "uf_cod" e  "uf_descricao";
  • data_type: armazena o tipo de dado da coluna. Neste exemplo temos os tipos character varying (varchar), utilizados para armazenar caracteres alfanuméricos e o tipo smallint utilizados para armazenar números inteiros no intervalo de -32768 até +32767;  
  • table_catalog: em qual banco a coluna foi criada. Neste exemplo as colunas foram criadas no banco "db_01";
  • table_name: em qual tabela a coluna foi criada. Neste exemplo, as colunas pertencem a tabela "tb_uf";
  • ordinal_position: ordem de criação de uma coluna em uma tabela, ou seja, 1ª coluna, 2ª coluna, e assim por diante. No exemplo acima, a coluna "uf_cod" é a 1ª coluna e a coluna "uf_descricao" é a 2ª coluna;
  • is_nullable: indica se o preenchimento da coluna é obrigatório ou não. Se o conteúdo for "YES", significa, que o preenchimento é opcional. Se "NO", indica que a coluna deve ser preenchida obrigatoriamente. Neste exemplo, as duas colunas tem preenchimento opcional; 
  • table_schema: nome do schema que pertence a coluna. Neste exemplo, as colunas pertencem ao schema public, que é o schema padrão do postgresql;
Para visualizar toda as colunas, execute o comando:

SELECT
*
FROM
information_schema.columns
WHERE table_name = 'tb_uf';

Para saber mais sobre o assunto acesse:

https://www.postgresql.org/docs/9.3/static/infoschema-columns.html

Um comentário:

  1. Bom dia
    Precisava de uma ajuda para modificar a coluna permite_venda da tabela produto, estou com os produtos false e alterar para true, como posso proceder, não estou conseguindo.
    pode me ajudar?
    $$

    ResponderExcluir