Tutorial de MySQL: Joins e Funções Agregadas
Tutorial de MySQL: Joins e Funções Agregadas

1. Introdução a MySQL
MySQL é um sistema de gerenciamento de banco de dados relacional (SGBDR) muito popular, amplamente utilizado para armazenar e #gerenciar dados. Neste tutorial, vamos explorar alguns conceitos básicos de MySQL, especialmente joins e funções agregadas.
2. Criando Tabelas e Inserindo #Dados
Primeiro, vamos criar duas tabelas: alunos e notas. Cada aluno pode ter várias notas.
CREATE TABLE alunos (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL
);
CREATE TABLE notas (
id INT AUTO_INCREMENT PRIMARY KEY,
aluno_id INT,
valor DECIMAL(5,2),
FOREIGN KEY (aluno_id) REFERENCES alunos(id)
);
Agora, vamos inserir alguns dados nas tabelas:
INSERT INTO alunos (nome) VALUES ('João'), ('Maria'), ('Carlos');
INSERT INTO notas (aluno_id, valor) VALUES (1, 7.5), (1, 8.0), (2, 9.0), (2, 8.5), (3, 7.0);
3. Joins
Joins são usados para combinar linhas de duas ou mais tabelas com base em uma relação entre elas. Vamos explorar os tipos mais comuns de joins.
3.1 INNER JOIN
O INNER JOIN retorna registros que têm correspondência em ambas as tabelas.
Apply
SELECT alunos.nome, notas.valor
FROM alunos
INNER JOIN notas ON alunos.id = notas.aluno_id;
Resultado:
| nome | valor |
|---|---|
| João | 7.5 |
| João | 8.0 |
| Maria | 9.0 |
| Maria | 8.5 |
| Carlos | 7.0 |
3.2 LEFT JOIN
O LEFT JOIN retorna todos os registros da tabela à esquerda e os registros correspondentes da tabela à direita. Se não houver correspondência, os resultados da direita serão NULL.
SELECT alunos.nome, notas.valor
FROM alunos
LEFT JOIN notas ON alunos.id = notas.aluno_id;
Resultado:
| nome | valor |
|---|---|
| João | 7.5 |
| João | 8.0 |
| Maria | 9.0 |
| Maria | 8.5 |
| Carlos | 7.0 |
3.3 RIGHT JOIN
O RIGHT JOIN retorna todos os registros da tabela à direita e os registros correspondentes da tabela à esquerda. Se não houver correspondência, os resultados da esquerda serão NULL.
SELECT alunos.nome, notas.valor
FROM alunos
RIGHT JOIN notas ON alunos.id = notas.aluno_id;
Resultado:
| nome | valor |
|---|---|
| João | 7.5 |
| João | 8.0 |
| Maria | 9.0 |
| Maria | 8.5 |
| Carlos | 7.0 |
3.4 FULL OUTER JOIN
O FULL OUTER JOIN retorna todos os registros quando há uma correspondência em uma das tabelas. MySQL não suporta FULL OUTER JOIN nativamente, mas podemos simulá-lo usando UNION.
SELECT alunos.nome, notas.valor
FROM alunos
LEFT JOIN notas ON alunos.id = notas.aluno_id
UNION
SELECT alunos.nome, notas.valor
FROM alunos
RIGHT JOIN notas ON alunos.id = notas.aluno_id;
Resultado:
| nome | valor |
|---|---|
| João | 7.5 |
| João | 8.0 |
| Maria | 9.0 |
| Maria | 8.5 |
| Carlos | 7.0 |
4. Funções Agregadas
Funções agregadas são usadas para realizar operações em um conjunto de valores e retornar um único valor.
4.1 COUNT
A função COUNT retorna o número de linhas que correspondem a uma condição.
SELECT COUNT(*) AS total_alunos
FROM alunos;
Resultado:
| total_alunos |
|---|
| 3 |
4.2 AVG
A função AVG retorna a média dos valores de uma coluna.
SELECT AVG(notas.valor) AS media_notas
FROM notas;
Resultado:
| media_notas |
|---|
| 8.0 |
4.3 SUM
A função SUM retorna a soma dos valores de uma coluna.
SELECT SUM(notas.valor) AS soma_notas
FROM notas;
Resultado:
| soma_notas |
|---|
| 40.0 |
4.4 MAX e MIN
As funções MAX e MIN retornam, respectivamente, o valor máximo e o valor mínimo de uma coluna.
SELECT MAX(notas.valor) AS max_nota, MIN(notas.valor) AS min_nota
FROM notas;
Resultado:
| max_nota | min_nota |
|---|---|
| 9.0 | 7.0 |
5. Combinando Joins e Funções Agregadas
Agora, vamos combinar joins e funções agregadas para obter resultados mais complexos.
5.1 Média de Notas por Aluno
SELECT alunos.nome, AVG(notas.valor) AS media_notas
FROM alunos
INNER JOIN notas ON alunos.id = notas.aluno_id
GROUP BY alunos.id;
Resultado:
| nome | media_notas |
|---|---|
| João | 7.75 |
| Maria | 8.75 |
| Carlos | 7.0 |
5.2 Total de Notas por Aluno
SELECT alunos.nome, COUNT(notas.valor) AS total_notas
FROM alunos
INNER JOIN notas ON alunos.id = notas.aluno_id
GROUP BY alunos.id;
Resultado:
| nome | total_notas |
|---|---|
| João | 2 |
| Maria | 2 |
| Carlos | 1 |
6. Conclusão
Neste tutorial, você aprendeu sobre joins e funções agregadas em MySQL. Joins são essenciais para combinar dados de múltiplas tabelas, enquanto funções agregadas permitem realizar operações matemáticas e estatísticas em conjuntos de dados.
Para mais informações e exemplos, consulte a documentação oficial do MySQL.
Compartilhe este artigo: