DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Aproveite seu banco de dados

Muitos programadores não sabem, mas bancos de dados são muito mais que tabelas sem vida. Existe muita inteligência por trás delas esperando para serem usadas. Confira aqui um pouco sobre isso.

 

Muitos programadores não sabem, mas bancos de dados são muito mais que tabelas sem vida. Existe muita inteligência por trás delas esperando para serem usadas. Confira aqui um pouco sobre isso.

 

Bancos de dados deixaram há muito de ser simplesmente um repositório de informações usados para, no máximo, organizar registros de tal forma que posteriormente pudessem ser indexados e/ou recuperados de alguma forma. Hoje eles são ferramentas poderosas nas tomadas de decisões dentro das empresas que, aproveitando-se da grande quantidade de dados lá existentes, extraem análises de vários tipos para executarem os próximos movimentos e ações em seus mercados.

 

Mas o banco de dados por sí não opera milagres. É necessária a presença de um profissional conhecedor de suas ferramentas e entranhas para tirar dele tudo aquilo que é possível. Este profissional normalmente conhecido por DBA (Database Administrator) é a peça fundamental neste processo.

 

Por outro lado, os desenvolvedores de software mesmo não sendo especialistas em bancos de dados como os DBA's, podem (e devem) aproveitar um pouco do que é oferecido por estas ferramentas para criar aplicações mais rápidas, mais enxutas e mais “limpas”, aproveitando funções existentes mas que na maioria das vezes são esquecidas no momento do desenvolvimento.  Sobre isso que vamos falar hoje: aproveitamento de funções de bancos de dados.

 

Obs: neste artigo usarei exemplos com o banco de dados MySQL e a linguagem PHP. Entretanto com toda a certeza eles podem ser usados também com outras bases e linguagens de forma semelheante.

 

Somando valores, e concatenando campos

Com uma frequência impressionante, precisamos somar valores vindos de uma base de dados. Para fazer isso dentro do código do programa, podemos ter:

 

$Rst = mysql_query("SELECT valor FROM tabela",$conexao);

while($valor=mysql_fetch_row($Rst)){

       $resultado = $resultado + $valor[0];

}

print $resultado;

 

Mas, que tal assim:

 

$Rst = mysql_fetch_row(mysql_query("SELECT SUM(valor) FROM tabela", $conexao));

print $Rst[0];

 

Hmmm... de 5 linhas para duas? Mas como?

O “segredo” está na função SUM usada na segunda instrução. Ela simplesmente soma os valores do campo e reduz um laço dentro do código. Com isso temos mais eficiência, velocidade e código limpo.

 

Um outro exemplo interessante pode ser visto quando, por exemplo, precisamos concatenar (unir) dois campos. Para criar uma tabela no código, faríamos assim:

 

 

Esta função simplesmente pega a informação de data e hora do servidor e insere no campo que deseja (neste exemplo, em data). Mas cuidado; se o servidor está com a data/hora erradas, o valor que será inserido também estará errado. Assim é interessante manter o servidor com horário sempre sincronizado com time servers existentes na Internet.

 

Além disso, em alguns momentos precisamos saber em que semana estamos do ano ou ainda quantas semanas faltam para o fim do ano. Ao invés de complexos códigos de linguagem, podemos usar a base de dados para nos informar este resultado rapidamente. Por exemplo, em que semana do mês estamos agora?

 

print mysql_result(mysql_query("SELECT WEEK(now())",$conexao),0);

// resultado: 18

 

Aqui foi usada a função WEEK que retorna o número da semana de uma determinada data. Neste caso, a data informada é “hoje” pois usamos como parâmetro de data a função now() que, como já apresentado anteriormente, é a data atual do servidor.

 

Outra tarefa comum com datas é a soma de dias em uma data específica. Pode parecer simples mas como o formato de data é diferente de formatos numéricos e strings, muitas vezes o resultado está errado e não sabemos porquê.

 

A forma mais simples é novamente deixar o banco de dados trabalhar por você. Então para acrescentar, por exemplo, dez dias à data atual, fazemos:

 

em dia. Para o MySQL, acesse http://dev.mysql.com/doc/refman/4.1/pt/functions.html. Já para o PostgreSQL, acesse http://www.postgresql.org/docs/8.1/static/functions.html

 

Espero que tenha gostado e aprendido um pouco mais.

Abraços!

 

Obs: Os códigos deste artigo podem ser encontrados em http://www.michelazzo.com.br na seção de downloads.





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Autor
Paulino Michelazzo

Paulino Michelazzo ( paulino@michelazzo.com.br ), 34, trabalha com desenvolvimento de software desde 1990. Atualmente possui uma pequena empresa voltada à criação de ferramentas web e sites utilizando plataformas abertas. Ativista do software livre desde 2000, ministra palestras e cursos de program...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da SQL Magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03