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
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
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;
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
Funções agregadas
Podemos verificar a quantidade de registros em uma tabela:
select count(id) as total from user;
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
Podemos pegar o maior valor de uma determinada coluna:
select max(value) as max from product;
Podemos pegar o menor valor de uma determinada coluna:
select min(value) as min from product;
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)