DEV Community

Gabriel_Silvestre
Gabriel_Silvestre

Posted on • Updated on

Funções mais Usadas no SQL

Tabela de Conteúdos


Manipulação de Strings

O que é?

São funções nativas do MySQL responsáveis pela manipulação de strings.

O que faz?

Como dito em sua definição, essas funções nos permitem manipular strings, permitindo a normalização e formatação dos dados.

Sintaxe

Cada função lida com a string de uma forma, porém a base é sempre a mesma, primeiro temos o SELECT e logo em seguida a função desejada, sendo que a string a ser manipulada deve ser passada como argumento.

SELECT <função>(<string>);
Enter fullscreen mode Exit fullscreen mode

Upper Case UCASE

Para colocarmos toda a string em caixa alta utilizamos a função UCASE.

SELECT UCASE(<string>);
Enter fullscreen mode Exit fullscreen mode

Lower Case LCASE

Para colocarmos toda a string em caixa baixa utilizamos a função LCASE.

SELECT LCASE(<string>);
Enter fullscreen mode Exit fullscreen mode

Replace REPLACE

Podemos substituir determinada string utilizando a função REPLACE.

SELECT REPLACE(<string>, <parte a ser substituída>, <string substituta>);
Enter fullscreen mode Exit fullscreen mode

Left LEFT

Podemos selecionar um caractere específico utilizando o comando LEFT. Nesse caso será contado os caracteres da esquerda para a direita.

SELECT LEFT(<string>, <número do caractere>);
Enter fullscreen mode Exit fullscreen mode

Right RIGHT

Podemos selecionar um caractere específico utilizando o comando RIGHT. Nesse caso será contado os caracteres da direita para a esquerda.

SELECT RIGHT(<string>, <número do caractere>);
Enter fullscreen mode Exit fullscreen mode

Length CHAR_LENGTH

Conseguimos descobrir o tamanho de uma string através da função CHAR_LENGTH.

SELECT CHAR_LENGTH(<string>);
Enter fullscreen mode Exit fullscreen mode

Substring SUBSTRING

É possível extrair uma substring a partir do comando SUBSTRING, esse que é extremamente similar ao método .slice().

*O índice de término é opcional

SELECT SUBSTRING(<string>, <índice de início>, <quantidade a ser extraída>);
Enter fullscreen mode Exit fullscreen mode

Voltar ao topo


If e Case

O que são?

São comandos de controle de fluxo, ou em outras palavras, são comandos condicionais, onde determinada ação será tomada a depender se a condição estabelecida foi atendida ou não.

Sintaxe

IF

O comando IF funciona no MySQL de forma similar a condicional if de outras linguagens, como JS e Python. A maior diferença é que no MySQL definimos as ações a serem tomadas dentro dos parênteses.

Dessa forma o primeiro parâmetro a ser passado no IF é a condição, o segundo parâmetro é a ação a ser tomada caso a condição seja verdadeira e o terceiro parâmetro é a ação caso a condição seja falsa.

SELECT IF(<condição>, <ação se verdadeiro>, <ação se falso>)
FROM <DB>.<tabela>;
Enter fullscreen mode Exit fullscreen mode
SELECT IF(idade >= 18, 'Maior de idade', 'Menor de idade')
FROM mydb.pessoas;
Enter fullscreen mode Exit fullscreen mode

CASE

O comando CASE funciona de forma similar a estrutura switch/case de outras linguagens, sendo possível atribuir a ação caso a caso, assim como definir uma ação default.

Para criarmos condições usando o comando CASE, utilizamos o comando WHEN/THEN e para definirmos nossa ação default, utilizamos o comando ELSE.

Sendo possível ainda renomear a coluna que irá demonstrar esses resultados, para isso utilizamos o comando END AS, seguido do nome que desejamos dar à coluna.

SELECT <coluna>,
  CASE
    WHEN <condição> THEN <ação>
    ELSE <ação default>
  END AS <nome da coluna>
FROM <DB>.<tabela>;
Enter fullscreen mode Exit fullscreen mode
SELECT idade,
  CASE
    WHEN idade < 18 THEN 'Menor de idade',
    WHEN idade >= 18 AND idade <= 60 THEN 'Maior de idade',
    ELSE 'Senior'
  END AS 'idade_pessoas'
FROM mydb.pessoas;
Enter fullscreen mode Exit fullscreen mode

Voltar ao topo


Funções Matemáticas

O que são?

São funções nativas do MySQL que permitem a execução de cálculos matemáticos simples como: soma, subtração, divisão, multiplicação, exponenciação e raiz quadrada.

Sintaxe

Podemos realizar operações matemáticas atribuindo diretamente um valor ou designando colunas que possuam valores do tipo numérico.

Operações simples

Todas as operações listadas abaixo seguem a mesma sintaxe: número, operação e número.

  • Soma: +
  • Subtração: -
  • Multiplicação: *
  • Divisão: /
  • Divisão inteira: DIV
  • Módulo: MOD
SELECT <número> <operação> <número>;
Enter fullscreen mode Exit fullscreen mode
SELECT 4 + 5;
Enter fullscreen mode Exit fullscreen mode

Operações de funções*

Já as operações que serão listadas a seguir funcionam como funções, ou seja, precisamos passar os valores como parâmetros.

  • Exponenciação: POW();
  • Raiz quadrada: SQRT();
SELECT <operação>(<número>, <número>);
Enter fullscreen mode Exit fullscreen mode
SELECT POW(2, 3);  -- 2³ = 8
Enter fullscreen mode Exit fullscreen mode

Operações de arredondamento

Ainda podemos arredondar valores utilizando as funções listadas a seguir. Lembrando que por serem funções, precisamos passar os valores a serem arredondados como parâmetro.

  • Arredondamento variável: ROUND();
  • Arredondamento para cima: CEIL();
  • Arredondamento para baixo: FLOOR();
SELECT <operação>(<número>, <limite de casas decimais>);
Enter fullscreen mode Exit fullscreen mode
SELECT ROUND(423.786, 2);  -- 423.79
Enter fullscreen mode Exit fullscreen mode

Voltar ao topo


Funções de Agregação

O que são?

São funções que realizam certos cálculos que são feitos frequentemente como média, menor valor, maior valor, somatória e quantidade de linhas.

Quais são?

  • Média: AVG();
  • Menor valor: MIN();
  • Maior valor: MAX();
  • Somatória: SUM();
  • Quantidade: COUNT();

Sintaxe

Todas as funções de agregação funcionam de maneira similar, basta definirmos a função que desejamos e passar a coluna/valor que será usada para o cálculo como parâmetro.

SELECT <função>(<coluna>) FROM <DB>.<tabela>;
Enter fullscreen mode Exit fullscreen mode
SELECT AVG(age) FROM mydb.people;
Enter fullscreen mode Exit fullscreen mode

Voltar ao topo


Group By e Having

O que são?

Ambos são comandos para agrupar valores, sendo que o GROUP BY irá agrupar somente baseado na coluna passada, enquanto o HAVING possibilita a criação de um filtro para o agrupamento.

Sintaxe

Group By

O comando GROUP BY deve ser colocado após a definição de qual tabela iremos receber os dados, seguido de qual coluna desejamos agrupar.

SELECT * FROM <DB>.<tabela>
GROUP BY <coluna>;
Enter fullscreen mode Exit fullscreen mode
SELECT * FROM sakila.actor
GROUP BY first_name;
Enter fullscreen mode Exit fullscreen mode

Having

O comando HAVING é definido após o agrupamento realizado com o GROUP BY, sendo seguido de uma condicional que realizará o filtro.

SELECT * FROM <DB>.<tabela>
GROUP BY <coluna>
HAVING <condição>;
Enter fullscreen mode Exit fullscreen mode
SELECT role, AVG(salary) AS 'average_salary' FROM myDB.employees
GROUP BY role
HAVING 'average_salary' > 3000;
Enter fullscreen mode Exit fullscreen mode

No exemplo acima estamos filtrando todos os cargos que tem a média salaria maior que 3000 (três mil).

Voltar ao topo


Links Úteis

Voltar ao topo

Discussion (0)