DEV Community

Erandir Junior
Erandir Junior

Posted on • Edited on

#SQL na unha: recursos do SGBD

Seja muito bem vindo, caso seja sua primeira vez aqui, saiba que este é o 4º artigo abordando sobre banco de dados. Confira abaixo os artigos anteriores antes de prosseguir a leitura deste:

Resumão

Nos artigos anteriores, vimos como criar um banco, tabelas e como manipular registros. Aquilo tudo é o básico para que uma pessoa consiga fazer uma atividade de um nível de complexidade não muito alta.

Caso ainda não tenha percebido, o conteúdo passado até agora é só uma fração dos inúmeros recursos disponíveis. Veremos hoje mais alguns mecanismos à nossa disposição. Apesar de tudo, deixo aqui novamente a minha recomendação para que visite a documentação do SGBD utilizado.

Funções da data

Não importa a linguagem que esteja utilizando, não é nada fácil manipular uma data. Pensando nisso, vamos ver alguns recursos que podem simplificar nossa vida, vejam abaixo:

select now(); -- retorna a data e hora atual select year('2000-01-01'); -- retorna o ano da data informada select month('2010-10-12'); -- retorna o mês da data informada select monthname('2014-01-07'); -- retorna o nome do mês da data informada select day(now()); -- retorna o dia da data informada select dayname(now()); -- retorna o nome do dia da data informada select dayofmonth(now()); -- retorna o dia do mês da data passada select dayofweek(now()); -- retorna o dia da semana, onde domingo = 1, segunda = 2, terça = 3, quarta = 4, quinta = 5, sexta = 6, sábado = 7 select dayofyear(now()); -- retorna o dia do ano da data informada select datediff('2022-06-07', '2020-06-07'); -- retorna a diferença em dias, das datas duas datas informadas select date_add(now(), INTERVAL 10 DAY); -- retorna uma data incrementada nos dias informados select date_add(now(), INTERVAL 3 MONTH); -- retorna uma data incrementada nos meses informados select date_add(now(), INTERVAL 4 YEAR); -- retorna uma data incrementada nos anos informados select date_add(now(), INTERVAL 5 HOUR); -- retorna uma data incrementada nas horas informadas select date_format(now(), '%d/%m/%Y'); -- retorna uma data formatada select date_format(now(), '%d/%m/%y %H:%i:%s'); -- outro exemplo de formatação de data, lembrando que letras maiúsculas e minúsculos alteram o formato de saída 
Enter fullscreen mode Exit fullscreen mode

Funções de String

Assim como existem funções para manipulação de datas, também temos funções para manipulação de strings, vejamos algumas delas:

select concat('a', 'b','c', '...'); -- concatena os dados passados select concat_ws(',', 'a', 'b','c', '...'); -- concatena os dados enviados pelo separador informado no primeiro parâmetro select char_length('erandir'); -- retorna o tamanho da string select character_length('erandir'); -- retorna o tamanho da string select replace(email, 'email', 'company') as email from user; -- substitui um parte da string por nos valores da coluna informada no primeiro parâmetro 
Enter fullscreen mode Exit fullscreen mode

Funções de fluxo

Algumas vezes queremos retornar um valor alternativo se o valor de um determinado campo estiver vazio, para isso, temos uma função específica, veja seu uso:

select IFNULL(description, 'Campo vazio') as description from product; 
Enter fullscreen mode Exit fullscreen mode

Podemos aplicar uma condição para retornar um valor específico:

select if (value >= 2000, 2000 - (2000 * 0.1), value) as product_price from product; -- se o valor do produto for maior ou igual a 2000, damos um desconto de 10%, caso não, retorna o valor normal do produto 
Enter fullscreen mode Exit fullscreen mode

Funções agregadas

Podemos verificar a quantidade de registros em uma tabela:

select count(id) as total from user; 
Enter fullscreen mode Exit fullscreen mode

Podemos pegar a média de valor de alguma coluna:

select avg(value) as total from product; -- é somado todos os valores da coluna informada e dividido pela quantidade de registros 
Enter fullscreen mode Exit fullscreen mode

Podemos pegar o maior valor de uma determinada coluna:

select max(value) as max from product; 
Enter fullscreen mode Exit fullscreen mode

Podemos pegar o menor valor de uma determinada coluna:

select min(value) as min from product; 
Enter fullscreen mode Exit fullscreen mode

Finalizando

Vimos mais uma série de funcionalidades bem úteis, mesmo assim, volto a dizer que a melhor amiga de vocês é a documentação. Minha dica final é que pratiquem bastante, e caso queiram se aprofundar ainda mais a documentação é o caminho. Por hoje é só, até mais.

Top comments (0)