Olá galera, chegando no blog a primeira postagem de muitas sobre Banco de Dados. Para começar vamos estudar duas funções simples, mas ao mesmo tempo muito útil. Iremos estudar as funções CONCAT e COALESCE em MySql.
Por exemplo:
Durante a implementação de um relatório de um sistema que você está desenvolvendo, você se depara com a seguinte situação:
No banco de dados existe uma tabela chamada de ‘Alunos‘, nesta tabela alguns campos nos interessam para entender a situação. São eles: ‘nome‘ (campo obrigatório) e ‘observacao‘ (campo que permite nulo). Para o desenvolvimento do relatório necessitamos concatenar (juntar) os dois campos especificamos, separando-os apenas com um traço (‘–‘). A tabela possui os dados mostrados na Imagem 1:

Você até poderia fazer uma consulta simples (Imagem 2), e concatenar estes dois campos com o auxilio da Linguagem de Programação, diretamente na aplicação:

Mas haverá deverá ser feito um trabalho extra, se escolhermos esta opção. Vamos fazer algo mais prático. Com o auxilio da função CONCAT iremos juntar estes campos diretamente na query que estamos escrevendo. Esta função possui a seguinte sintaxe:
CONCAT(str1, str2, …)
Onde cada str1 e str2 são quaisquer valores (convertidos para string, diretamente pela função) que serão juntados. Como você pode ver é possível concatenar vários valores, tudo vai depender da sua necessidade. Para o nosso problema, vamos juntar ‘nome‘ + ‘ – ‘ + ‘observacao‘. Logo a query ficará da seguinte forma (Imagem 3):

Se executarmos esta query a saída será a seguinte (Imagem 4):

Perceba que os casos onde o campo ‘observacao‘ é nulo, a saída também será nula. Isso acontece devido ao fato de, no MySql, ser possível apenas concatenar valores não nulos. Logo, quando algum dos campos possui tal valor, há a necessidade de converter este valor, no resultado da consulta. É exatamente isso que a função COALESCE faz. Nela você “instrui” a consulta, para quando o valor de um campo for nulo, substituir o valor por alguma coisa, podendo ser uma string vazia (”), por exemplo.
A sintaxe da função COALESCE é a seguinte:
COALESCE(campo[se nulo], valor[quando nulo])
O primeiro parâmetro é o campo da consulta, no nosso caso ‘observacao‘, já o segundo parâmetro é o valor que será atribuído, quando o resultado da consulta for nulo (no nosso caso ”).
Então, se alterarmos a nossa consulta para (Imagem 5):

Por fim, o resultado da consulta é o que esperávamos (Imagem 6).

Entre no grupo do Telegram para receber as dicas de cursos que estão gratuitos e ainda ficar por dentro das promoções da Udemy.
Clique na imagem para acessar o grupo.

Clique aqui para curtir a página Programação Prática no Facebook.
Clique aqui para inscrever-se no Canal Programação Prática no YouTube.
Até a próxima postagem! 🙂
0 comentários