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

domingo, 12 de novembro de 2017

Procurar tabelas que contenham uma coluna com um nome especifico - Postgresql

Para pesquisar quais as tabelas contém uma coluna com um nome específico, vamos 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:



1º) Exemplo:

Procurar todas as tabelas que contenham a coluna "cod_uf "?

SELECT 
table_name
FROM information_schema.columns
WHERE column_name  =  'cod_uf';

Ao executarmos a consulta acima, será retornado o resultado exibido na imagem abaixo:


Logo, a coluna "cod_uf ", pode ser encontrada na tabela "tb_municipio" e "tb_estado".

Legenda:
  • table_name: indica qual tabela a coluna pertence;
  • column_name: armazena o nome da coluna;
  • columns: esta view por padrão armazena informações sobre as colunas do banco; 

2º) Exemplo:

Procurar todas as tabelas que contenham colunas iniciadas por "cod_"?

SELECT 
table_name,
column_name
FROM information_schema.columns
WHERE column_name  LIKE  'cod_%';

Ao executarmos a consulta acima, será retornado o resultado exibido na imagem abaixo:



Logo existem colunas iniciadas por "cod_ " nas tabelas "tb_ordem_servico", "tb_municipio" e "tb_estado".

3º) Exemplo:

Além de procurar todas as tabelas que contenham colunas iniciadas por "cod_", vamos mostrar o tipo de dado de cada coluna.

Para isso vamos incluir na consulta a coluna data_type

SELECT 
table_name,
column_name,
data_type 
FROM information_schema.columns
WHERE column_name  LIKE  'cod_%'

Ao executarmos a consulta acima, será retornado o resultado exibido na imagem abaixo:



Observações finais:

Existem mais colunas na view "columns", que podem ser utilizadas na sua consulta. Para visualizar todas, utilize "*":

SELECT 
*
FROM information_schema.columns;

Para saber mais sobre o assunto acesse:

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

sexta-feira, 3 de novembro de 2017

Google Cloud VM Debian - Instalação do Postgresql

1º) Clique na seta, para escolher um projeto.Veja a imagem abaixo: 
Caso não tenha VM Debian configurada, e tenha dúvida, veja o post:





2º) Clique no link com o nome do projeto.




3º) No menu escolha a opção "Compute Engine", será aberto um submenu, escolha a opção "Intâncias da VM":




4º) Conecte-se a sua VM Debian via SSH, neste exemplo,  a conexão será feita através do navegador.


5º) Conecte-se como usuário root (super-usuário) do Debian. Caso tenha dúvida, como configurar a senha de root na VM Debian, veja o artigo:

Google Cloud VM - Senha de root do Debian


6º) Atualize os pacotes do Debian, antes de instalar o postgresql. Com o comando:

apt-get update

Veja a imagem abaixo:



7º) Agora instalaremos o Postgresql, o cliente do Postgresql (psql) e o pacote adicional "postgresql-contrib", que contém comandos e funções que contribuirão para manipulação de dados.

apt-get -y install postgresql postgresql-client postgresql-contrib

Legenda do comando:
  • apt-get install: comando de instalação;
  • -y: durante a instalação, deverá ser feita algumas confirmações, o "-y" significa "yes", ou seja, "sim", para a instalação não ficar tendo interrupções esperando uma confirmação do usuário, deixe como padrão sim, ela será executada do começo ao fim sem parar;
  • postgresql: para instalar o postgresql;
  • postgresql-client: para instalar o cliente do Postgresql (psql), através do psql é possível executar querys e ver o resultado das mesmas;
  • postgresql-contrib: contém comandos e funções que contribuirão para manipulação de dados;  
Veja a imagem abaixo:


8º) Execute o cliente do Postgresql, o psql, com o usuário postgres.
Será acessado o banco de dados padrão "postgres" (tanto o usuário quanto o banco tem o mesmo nome "postgres").

sudo -u postgres psql postgres

Veja a imagem abaixo:


9º) Veja o psql em execução, na imagem abaixo:



10º) Configure a senha do usuário postgres, utilize o comando:

\password postgres

Veja a imagem:


11º) Digite a senha e a confirme.



12º) Instale a extensão adminpack

CREATE EXTENSION adminpack;

Veja a imagem abaixo:


13º) Será exibida que a mensagem confirmando que a extensão foi criada.


14º) O postgresql está instalado e psql já está executando.

15º) Para sair do psql, utilize o comando:
\q

Veja a imagem abaixo:

16º) Se você gostaria de saber mais sobre:
  • Configuração das conexões com o banco; 
  • Configuração do firewall;
  • Acessar o postgresql da sua máquina local, utilizando interface gráfica, como por exemplo, o PgAdmin
Leia o artigo: