Ubuntu Para Iniciantes

CRIAR UMA TABELA E EFETUAR UMA CONSULTA COM CASE WHEN NO POSTGRES

Desenvolver uma boa consulta em um banco de dados pode minimizar vários recursos na programação.

É possível elaborar vários recursos no próprio banco de dados que irá otimizar sua codificação.


banco de dados postgres


O que você verá neste post sobre o PostgresSQL e também possível para o MySQL:

  • Criar uma tabela
  • Popular uma tabela
  • Usar o Insert, Update e Delete no banco de dados
  • Aplicar o uso da clausula CASE WHEN em uma consulta

Qualquer uma das instruções abaixo independe de sistema operacional, logo você poderá aplicar no Ubuntu ou qualquer outra distribuição Linux, além do Windows, na maioria dos casos.

CRIANDO UMA TABELA NO POSTGRESQL

Seja em um banco de dados Postgres ou MySQL, criar uma tabela é extremamente simples. Aqui no blog já apresentei algumas formas para instalar o postgres e o mysql, então vou deixar os links abaixo caso você necessite.

Canal do Youtube: Instalar o Mysql no Ubuntu

Para instalar o PostgreSQL no Ubuntu, abra o terminal, CTRL+T, digite:
~$sudo aptitude install postgresql-9.5
Caso você não tenha o APTITUDE use o APT-GET para efetuar a instalação do PostgreSQL.
~$sudo aptitude install postgresql-9.5
Como front-end para o Postgres vou usar o PgAdmin3. Para que você possa instalar o PgAdmin3, abra o terminal com as teclas CTRL + T e digite o comando abaixo:

sudo aptitude install pgadmin3
ou para instalar usando o apt-get digite:
sudo apt-get install pgadmin3


LINGUAGEM SQL DML E DDL

Este é uma assunto um pouco complexo, então, não vou buscar esgotar este assunto, mas simplesmente esclarecer alguns ponto básicos sobre a LINGUAGEM SQL.

A linguagem SQL, como basicamente todas as linguagens de desenvolvimento estão estruturadas no inglês, o que torna de certa forma a universalização dos comandos, e as instruções também teoricamente não se diferem entre os SGDB's (Sistema Gerenciador de Bando de Dados).

Exemplo:

  1. PostgreSQL
  2. MySQL
  3. Oracle
  4. Interbase
  5. Firebird

Os SGDB's acima não estão em ordem de importância, a lista é apenas para especificar que ambos, em teoria, usam a mesma estrutura de comandos SQL.
Os primórdios do SQL tem sua origem na IBM,  na década de 70, e quer dizer Structured Query Language, em uma tradução livre seria algo como Linguagem de Consulta Estruturada.
Dentro do SQL existe uma outra hierarquia de controle, aqui será abordado para efeito didático e para tornar mais simples, o dois conjuntos mais usados, o DDL e o DML.

O DDL, Data Definition Linguage, são comandos que auxiliam na definição da estrutura e criação de databases e schemas, exemplo:

CREATE (Criar objetos como banco de dados e tabelas)
ALTER    (Permite alterar a estrutura da base de dados e tabelas)
DROP     (Comando para excluir uma base de dados ou esquema)
TRUNCATE (Remover registros de uma tabela)
COMMENT (Define comentários ao dicionário de dados do database)
RENAME     ( Renomear objetos do database)


O MDL, Data Manipulation Linguage ou Linguagem para Manipulação de Dados.


SELECT (Criar uma consulta em uma tabela ou base de dados)
INSERT  (Permite que seja inseridos dados em uma tabela)
UPDATE (Comando responsável em atualizar uma tabela)
DELETE (Comando que permite excluir dados de uma tabela)

Existem outros comandos e outras hierarquias, mas o básico acima descrito é o que comumente se utiliza na maioria dos desenvolvimentos.

É importante saber que, quanto maior manipulação dos dados for efetuado pelo próprio banco de dados, mais eficiente é a aplicação.

Muitos programadores, por desconhecerem a potencialidades dos SGDB's acabam criando codificando além do necessário.  

CRIANDO BASE DE DADOS - DATABASE NO POSTGRES

O Postgres por padrão já é instalado com um banco de dados padrão, de nome postgres.

Além do data base é necessário também, se for o caso, criar um "esquema" schema de nome public.

Você pode usar o banco de dados e esquema padrão postgres, porém pode criar sua própria base de dados e esquema, o que é mais recomendado para um desenvolvimento profissional.

Acesse o PgAdmin3, abra o editor de SQL, para você criar um banco de dados no Postgres, você fará da seguinte forma:

abrir o editor de sql do postgresql banco de dados


create database nome_do_baco como o exemplo abaixo:

create database sistema_programa

Por  padrão ao criar um database, o postgres já criará um schema public, porém iremos criar o nosso esquema.

Ao digitar o codigo acima, você pode pressionar a tecla F5 para executar a instrução. Agora será criado o schema no banco de dados sistema_programa, iremos chamar de sistema.

create schema sistema

Na lateral do PgAdmin3 será apresentado a estrutura existente e as que você criou. Caso não esteja visualizando, basta clicar no ícone de atualização na barra de ferramentas.

navegacao no sgdb do postgres do pgadmin3

Com o database e o schema criado, será gerada uma tabela para que se possa armazenar os dados no banco.

a tabela que será cria se chamará usuario. A tabela de usuário, conterá um índice de registro que será a chave primária da tabela, esta será auto incrementada pelo próprio SGDB.

Além do índice ou código, haverá o nome do usuário, login, senha, e-mail, nível de acesso, e status.

Explicando os campos da tabela:

Índice....................: Campo único de numeração automática e chave primária
Nome do Usuario..: Campo do tipo varchar de no máximo 60 caracteres
Login.....................: Campo do tipo varchar de no máximo 12 caracteres
Senha....................: Campo do tipo varchar de no máximo 8 caracteres
E-mail....................: Campo do tipo varchar de no máximo 60 caracteres
Nível de acesso.....: Campo do tipo numérico ou integer com 1 dígito
Status ...................: Campo do tipo char de 1 caractere

Para a codificação os nomes possuirão outras nominações mais apropriadas:

Índice....................:  usu_cod
Nome do Usuario..: usu_nome_usuario 
Login.....................: usu_login
Senha....................: usu_senha
E-mail....................: usu_email
Nível de acesso.....: usu_nivel
Status ...................: usu_status

Abra o editor de SQL do PostgreSQL e vamos iniciar a instrução abaixo:

Para criar uma tabela será utilizado o comando CREATE TABLE. Perceba que a tabela usuário será criada no schema sistema.

create table sistema.usuario (
usu_codigo serial primary key,
usu_nome_usuario varchar(60),
usu_login varchar(12),
usu_senha varchar(8),
usu_email varchar(60),
usu_nivel integer,
usu_status char(1)
)

criar tabela no editor sql do pgadmin3

Para cadastrar dados na tabela criada de nome usuario, será utilizado o comando INSERT. Neste comando é necessário especificar em qual tabela será inserido os dados e em quais campos serão inserido dados. Em values será especificados os valores ou dados.

insert into sistema.usuario (usu_nome_usuario,usu_login,usu_senha,usu_email, usu_nivel, usu_status) values ('Maria','maria33', '112245','maria33@email.com.br',2,'a')

insert into sistema.usuario (usu_nome_usuario,usu_login,usu_senha,usu_email, usu_nivel, usu_status) values ('Rafael','rafadoido', '141433','rafa14@email.com.br',1,'i')

insert into sistema.usuario (usu_nome_usuario,usu_login,usu_senha,usu_email, usu_nivel, usu_status) values ('Sibila','sibiloca', '77766622','sibi@email.com.br',1,'i')

insert into sistema.usuario (usu_nome_usuario,usu_login,usu_senha,usu_email, usu_nivel, usu_status) values ('Sergio Reis','porteira', '12355678','berrante@email.com.br',2,'i')


Execute as linhas acima, uma por uma no editor SQL do PgAdmin3. Após, teremos uma tabela populada com alguns dados em nossa tabela usuario.

CRIANDO UMA CONSULTA SIMPLES COM O COMANDO SELECT

Agora será gerado uma simples consulta, será lista apenas os dados que foram cadastrado na tabela já criada.

No editor de SQL, usaremos o comando SELECT indicando quais os campos e em qual tabela queremos efetuar a consulta.

Para que você possa fazer uma busca por todos os campos de uma tabela, sem que haja a necessidade de digitar campo por campo, utiliza-se o coringa "*" asterisco.

select * from sistema.usuario


Se acaso você quer buscar apenas determinados campos, você deve descrever quais campos deseja que a consulta SQL retorne, por exemplo:

select usu_nome_usuario, usu_login, usu_senha from sistema.usuario


Perceba que na imagem acima que traz o resultado da consulta, há os campos usu_nivel e usu_status. O resultado destes campos para o usuário final, não quer dizer absolutamente nada.

Suponha agora que você deseja dar um outro nome ou apelido, também chamado de "alias" para os campos usu_nome_usuario, usu_login, usu_senha. Então podemos facilmente atribuir este apelido na própria consulta, utilizando o "as novo_nome".  Veja o exemplo:

select usu_nome_usuario as usuario, usu_login as login, usu_senha as senha from sistema.usuario

O resultado da consulta será como o visto na imagem abaixo no editor SQL.

resultado da consulta sql com select e apelino nos campos

Perceba que agora cada coluna contém o apelido que foi nominado na consulta SQL por meio do SELECT.



Mas para o desenvolvedor o número 1 quer dizer Administrador e o número 2 Usuário.  E a letra "a" é de Ativo e a letra "i" de Inativo.

CONSULTA SQL NO POSTGRES UTILIZANDO O CASE WHEN

O CASE WHEN irá funcionar da mesma forma que o IF THEN ELSE ou como o SWITCH em algumas linguagens. Ou seja é um condicional, resumindo, se determinado valor for, igual, maior, menor ou diferente de algo, faça outra coisa. Resumindo as regras dos condicionadores operam desta maneira.

Se uma consulta for bem elaborada em uma banco de dados, você consegue reduzir o custo de operações de um programa e você não deixa tudo a cargo apenas da linguagens. É possível otimizar muitos recursos nos bancos de dados e simplificar a codificação.

Nesta consulta agora, iremos efetuar uma busca, retornaremos apenas o login, o nivel e o status dos usuários cadastrados. Para o campo que é especificado o nível será:

Se retornar 1 deverá apresentar Administrador
Se retornar 2 deverá apresentar Usuário

Para o campo de status será:

Se retornar "a" o usuário está Ativo
Se retornar "i"  o usuário está inativo

Para que possamos efetuar este tipo de consulta, será usando o CASE WHEN, que retornará a busca mais amigável.

O código abaixo irá apresentar a consulta que está sendo esperada pelo comando SQL.

select

       usu_login as login,
       case when usu_nivel = 1 then 'Administrador' else 'Usuário' end as nivel,
       case when usu_status = 'a' then 'Ativo' else 'Inativo' end as status

from sistema.usuario


constula usando o case when no banco de dados postgres

Como se pode perceber a consulta retornou os campos tratados para um resultado mais amigável para o usuário e otimizado para o desenvolvimento na linguagem que será usada, seja qual for.

Este exemplo apresenta apenas uma situação didática, é claro que existem consultas muito mais complexas com linhas mais extensas, no entanto isto é o básico para se desenvolver algo mais complexo.

Percebe-se então que uma boa otimização reduz linhas e linhas de código podendo dividir o processamento em camadas diferentes.

Você poderá gostar de ver também estas outras postagens aqui no Blog:
Instalar PHP7, Apache e o Postgres no Ubuntu
6 editores para você programar em PHP
Sub-select ou sub-consulta no PostgreSQL
Instalar programas no Ubuntu
Criar um cadastro com PHP e MySQL

Espero que tenha gostado, deixe seu comentário logo abaixo com suas críticas e sugestões, isto ajuda muito o Blog Ubuntu Para Iniciantes. Assine também a lista de e-mails e receba as atualizações em sua caixa de mensagens. Abraços.
CRIAR UMA TABELA E EFETUAR UMA CONSULTA COM CASE WHEN NO POSTGRES Reviewed by Ubuntu para Iniciantes Marcelo Weihmayr on 15:24:00 Rating: 5

Nenhum comentário :

Olá, faça seu comentário com sugestões, dicas ou críticas

Powered By Blogger , Designed by Sweetheme

Formulário de contato

Nome

E-mail *

Mensagem *

Marcelo Weihmayr. Tecnologia do Blogger.