Aula 5: Operadores, Funções, Agrupamento e União de Dados
1. Operadores em SQL
Os operadores em SQL são utilizados para realizar operações em valores de dados e filtrar resultados em consultas.
1.1. Operadores Aritméticos
Usados para realizar operações matemáticas em valores numéricos.
Operador | Descrição | Exemplo |
---|---|---|
+ | Adição | SELECT 10 + 5; |
- | Subtração | SELECT 10 - 5; |
* | Multiplicação | SELECT 10 * 5; |
/ | Divisão | SELECT 10 / 5; |
% | Resto da divisão (módulo) | SELECT 10 % 3; |
1.2. Operadores Relacionais
Comparações entre dois valores.
Operador | Descrição | Exemplo |
---|---|---|
= | Igualdade | SELECT * FROM alunos WHERE idade = 20; |
<> ou != | Diferente | SELECT * FROM alunos WHERE idade <> 20; |
> | Maior que | SELECT * FROM produtos WHERE preco > 1000; |
< | Menor que | SELECT * FROM produtos WHERE preco < 1000; |
>= | Maior ou igual | SELECT * FROM alunos WHERE idade >= 18; |
<= | Menor ou igual | SELECT * FROM alunos WHERE idade <= 18; |
1.3. Operadores Lógicos
Combinam várias condições.
Operador | Descrição | Exemplo |
---|---|---|
AND | Verdadeiro se ambas as condições forem verdadeiras | SELECT * FROM alunos WHERE idade > 18 AND curso = 'TI'; |
OR | Verdadeiro se pelo menos uma das condições for verdadeira | SELECT * FROM alunos WHERE idade < 18 OR curso = 'TI'; |
NOT | Inverte o resultado da condição | SELECT * FROM alunos WHERE NOT idade < 18; |
1.4. Operadores Auxiliares
Operador | Descrição | Exemplo |
---|---|---|
IN | Verifica se o valor está em uma lista | SELECT * FROM alunos WHERE curso IN ('TI', 'Engenharia'); |
BETWEEN | Verifica se o valor está dentro de um intervalo | SELECT * FROM produtos WHERE preco BETWEEN 1000 AND 3000; |
LIKE | Busca por padrão | SELECT * FROM alunos WHERE nome LIKE 'Jo%'; |
IS NULL | Verifica se o valor é nulo | SELECT * FROM alunos WHERE idade IS NULL; |
2. Funções em SQL
Funções são usadas para realizar operações em dados, como cálculos matemáticos ou manipulações de strings.
2.1. Funções de Data e Hora
- NOW(): Retorna a data e hora atual.
SELECT NOW();
- CURDATE(): Retorna a data atual.
SELECT CURDATE();
- YEAR(), MONTH(), DAY(): Extraem o ano, mês ou dia de uma data.
SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW());
2.2. Funções Matemáticas
- ABS(): Retorna o valor absoluto.
SELECT ABS(-5);
- ROUND(): Arredonda um número.
SELECT ROUND(10.567, 2);
- CEIL(): Arredonda para o número inteiro superior.
SELECT CEIL(10.2);
2.3. Funções de String
- CONCAT(): Concatena duas ou mais strings.
SELECT CONCAT('Olá', ' Mundo');
- UPPER(): Converte uma string para maiúsculas.
SELECT UPPER('sql');
- LENGTH(): Retorna o comprimento da string.
SELECT LENGTH('SGBD');
2.4. Funções de Agregação
Usadas para realizar cálculos em um conjunto de valores e retornar um único valor.
Função | Descrição | Exemplo |
---|---|---|
COUNT() | Conta o número de linhas | SELECT COUNT(*) FROM alunos; |
SUM() | Soma os valores | SELECT SUM(preco) FROM produtos; |
AVG() | Calcula a média | SELECT AVG(preco) FROM produtos; |
MIN() | Retorna o valor mínimo | SELECT MIN(preco) FROM produtos; |
MAX() | Retorna o valor máximo | SELECT MAX(preco) FROM produtos; |
3. Agrupamento e União de Dados
3.1. GROUP BY: Agrupamento de Dados
O comando GROUP BY é utilizado para agrupar resultados que compartilham um valor comum.
Exemplo: Listar a quantidade de alunos por curso:
SELECT curso, COUNT(*)
FROM alunos
GROUP BY curso;
3.2. UNION: União de Resultados
O comando UNION é utilizado para combinar o resultado de duas ou mais consultas SQL em um único conjunto de resultados.
Exemplo: Combinar dados de duas tabelas:
SELECT nome FROM alunos
UNION
SELECT nome FROM professores;
4. Exercícios Práticos
- Operadores Aritméticos e Relacionais:
- Crie uma consulta que retorne todos os produtos com preço maior que R$ 1000 e multiplique esse preço por 10% de desconto.
SELECT nome, preco, preco * 0.9 AS preco_com_desconto FROM produtos WHERE preco > 1000;
- Operadores Lógicos:
- Liste todos os alunos que têm idade maior que 18 anos e estão matriculados no curso de “TI”.
SELECT nome, idade, curso FROM alunos WHERE idade > 18 AND curso = 'TI';
- Funções de Agregação:
- Liste o preço médio dos produtos.
SELECT AVG(preco) AS preco_medio FROM produtos;
- GROUP BY:
- Liste a quantidade de alunos por curso.
SELECT curso, COUNT(*) FROM alunos GROUP BY curso;
- UNION:
- Liste todos os nomes de alunos e professores, sem repetir.
SELECT nome FROM alunos UNION SELECT nome FROM professores;
5. Desafio
- Liste todos os produtos cujo preço está entre R$ 500 e R$ 2000.
- Agrupe os alunos por curso e mostre a idade média de cada grupo.
- Use uma função de string para concatenar o nome e a cidade dos alunos em uma única coluna.
- Crie uma consulta que faça a união de duas tabelas diferentes e liste os nomes únicos de ambas.
Publicar comentário