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)