20 exemplos de consultas SQL básicas
para iniciantes: Uma visão geral
completa.
O conjunto de dados consiste em duas
tabelas.
CREATE TABLE empregados (
Emp_id INT PRIMARY KEY,
nome VARCHAR (120),
apelido VARCHAR (120),
departamento VARCHAR (120),
salario DECIMAL (10,2));
INSERT INTO empregados (emp_id, name,
apelido, departamento, salario) VALUES (1,
'Paul', 'Garrix', 'Corporativo', 3547.25);
INSERT INTO empregados (emp_id, name,
apelido, departamento, salario) VALUES (2,
'Astrid', 'Fox', 'Privado Individual', 2845.56);
INSERT INTO empregados (emp_id, name,
apelido, departamento, salario) VALUES (3,
'Matthias', 'Johnson', 'Privado Individuals',
3009.41);
INSERT INTO empregados (emp_id, name,
apelido, departamento, salario) VALUES (4,
'Lucy', 'Patterson', 'Privado Individual',
3547.25);
CREATE TABLE vendas (
emp_id INT REFERENCES empregados
(emp_id),
t1_2022 DECIMAL (10,2),
t2_2022 DECIMAL (10,2),
t3_2022 DECIMAL (10,2),
t4_2022 DECIMAL (10,2));
INSERT INTO vendas (emp_id, T1_2022,
T2_2022, T3_2022, T4_2022) VALUES (1,
3471.41, 14789.25, 3478.34, 1254.23);
INSERT INTO vendas (emp_id, T1_2022,
T2_2022, T3_2022, T4_2022) VALUES (2,
5417.81, 12846.23, 8741.54, 3589.99);
INSERT INTO vendas (emp_id, T1_2022,
T2_2022, T3_2022, T4_2022) VALUES (3,
1547.52, 1269.66, 1478.65, 2474.33);
INSERT INTO vendas (emp_id, T1_2022,
T2_2022, T3_2022, T4_2022) VALUES (4,
8715.55, 8465.65, 24747.82, 3514.36);
1. Seleção de todas as colunas de uma
tabela
Essa consulta é útil quando você deseja obter
rapidamente todas as colunas de uma tabela
sem escrever cada coluna
no comando SELECT.
Consulta
SELECT *
FROM empregados;
2. Seleção de uma coluna de uma tabela
Você pode usar essa consulta quando precisar
de apenas uma coluna da tabela.
Consulta
SELECT nome
FROM empregados;
3. Seleção de duas colunas em uma
tabela
Essa consulta é útil para selecionar duas (ou
mais) colunas de uma tabela.
Consulta
SELECT nome, apelido
FROM empregados;
4. Seleção de duas (ou mais) colunas de
uma tabela e filtragem usando
comparação numérica em WHERE
Esta é a visão geral dos operadores de
comparação SQL.
Operadores de
comparação
>
<
>=
<=
<>
Consulta
SELECT
nome,
apelido,
salario
FROM empregados
WHERE salario > 3800;
5. Seleção de duas colunas e filtragem
usando uma condição de igualdade em
WHERE
Consulta
SELECT
nome, apelido
FROM empregados
WHERE apelido = 'Luca';
6. Seleção de duas colunas e ordenação
por uma coluna
Consulta
SELECT
nome, apelido
FROM empregados
ORDER BY apelido;
7. Seleção de duas colunas e ordenação
decrescente por uma coluna
SELECT
nome, apelido
FROM empregados
ORDE
R BY apelido DESC;
8. Seleção de duas colunas de uma
tabela e ordenação descendente por
duas colunas
Consulta
SELECT
nome, apelido, salario
FROM empregados
ORDER BY Salario DESC, apelido ASC;
9. Seleção de duas colunas com uma
condição lógica complexa em WHERE
Os três operadores lógicos básicos do SQL
são AND, OR e NOT.
Consulta
SELECT
nome, apelido, salario
FROM empregados
WHERE salario > 5000 OR salario < 3000;
10. Cálculos simples em colunas
.
Usaremos um dos.
Operadores aritméticos do
SQL
Consulta
SELECT
Emp_id,
T1_2022 + T2_2022 AS vendas_2022
FROM vendas;
11. Usando SUM() e GROUP BY
Consulta
SELECT
departamento,
SUM(Salario) AS total_salarios
FROM empregados
GROUP BY departamento;
Observação: Qualquer coluna não
agregada que apareça
no SELECT também deve aparecer
no GROUP BY. Mas isso é lógico - o objetivo
é agrupar os dados por departamento,
portanto, é claro que a colocaremos
em GROUP BY.
12. Usando COUNT() e GROUP BY
SELECT
departamento,
COUNT(*) AS Empregados_ por_ Departamento
FROM empregados
GROUP BY departamento;
13. Usando AVG() e GROUP BY
Consulta
SELECT
departamento,
AVG(salario) AS Media_Salarial
FROM empregados
GROUP BY departamento;
14. Usando MIN() e GROUP BY
Consulta
SELECT
departamento,
MIN(salario) AS Salário Mínimo
FROM empregados
GROUP BY departamento;
15. Usando MAX() e GROUP BY
Consulta
SELECT
departamento,
MAX(salario) AS Salário_Máximo
FROM empregados
GROUP BY department;
16. Usando SUM(), WHERE e GROUP BY
Consulta
SELECT
departamento,
SUM(salario) AS Salário_Total
FROM empregados
WHERE salario > 3500
GROUP BY departamento;
17. Uso de COUNT(), WHERE e GROUP BY
Consulta
SELECT
departamento,
COUNT(*) AS Número de Empregados
FROM empregados
WHERE Salario > 3500
GROUP BY departamento;
18. Acesso a dados em duas tabelas
usando INNER JOIN
SQL Join
Description
Type
Returns the matching
(INNER)
values from both
JOIN
tables.
Returns all the values
LEFT from the left table
(OUTER) and only the
JOIN matching values from
the right table.
SQL Join
Description
Type
Returns all the values
RIGHT from the right table
(OUTER) and only the
JOIN matching values from
the left table.
FULL
Returns all the rows
(OUTER)
from both tables.
JOIN
Returns all
combinations of all
CROSS
rows from the first
JOIN
and second table, i.e.
the Cartesian product.
Consulta
SELECT
e.emp_id,
[Link],
[Link],
v.t1_2022 + v.t2_2022 + v.t3_2022 +
v.tq4_2022 AS total_sales_2022
FROM empregados e
JOIN vendas v
ON e.emp_id = [Link] emp_id;
19. Acesso a dados em duas tabelas
usando INNER JOIN e filtragem usando
WHERE
Consulta
SELECT
e.emp_id,
[Link],
[Link],
v.t4_2022-v.t3_2022 AS Modanças nas Vendas
FROM empregados e
JOIN vendas v
ON e.emp_id = [Link] emp_id
WHERE v.t4_2022-v.t3_2022 < 0;
20. Acesso a dados em duas tabelas
usando INNER JOIN, filtragem usando
WHERE e classificação com ORDER BY
Consulta
SELECT
e.emp_id,
[Link], [Link], v.t4_2022
FROM empregados e
JOIN vendas v
ON e.emp_id = v.empregados_emp_id
WHERE v.t4_2022 > 5000
ORDER BY v.t4_2022 DESC;