Tabela de Conteúdos
- Manipulação de Strings
IF
eCASE
- Funções Matemáticas
- Funções de Agregação
GROUP BY
eHAVING
- Links Úteis
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>);
Upper Case UCASE
Para colocarmos toda a string em caixa alta utilizamos a função UCASE
.
SELECT UCASE(<string>);
Lower Case LCASE
Para colocarmos toda a string em caixa baixa utilizamos a função LCASE
.
SELECT LCASE(<string>);
Replace REPLACE
Podemos substituir determinada string utilizando a função REPLACE
.
SELECT REPLACE(<string>, <parte a ser substituída>, <string substituta>);
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>);
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>);
Length CHAR_LENGTH
Conseguimos descobrir o tamanho de uma string através da função CHAR_LENGTH
.
SELECT CHAR_LENGTH(<string>);
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>);
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>;
SELECT IF(idade >= 18, 'Maior de idade', 'Menor de idade')
FROM mydb.pessoas;
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>;
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;
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>;
SELECT 4 + 5;
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>);
SELECT POW(2, 3); -- 2³ = 8
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>);
SELECT ROUND(423.786, 2); -- 423.79
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>;
SELECT AVG(age) FROM mydb.people;
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>;
SELECT * FROM sakila.actor
GROUP BY first_name;
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>;
SELECT role, AVG(salary) AS 'average_salary' FROM myDB.employees
GROUP BY role
HAVING 'average_salary' > 3000;
No exemplo acima estamos filtrando todos os cargos que tem a média salaria maior que 3000 (três mil).
Top comments (0)