Back

Exemplos em SQL

SQL, ou Structured Query Language, é uma linguagem de programação usada para gerenciar e manipular dados em bancos de dados relacionais. Com SQL, você pode:

  • Consultar dados: Imagine que você está fazendo uma pesquisa e precisa de informações específicas. SQL permite que você peça exatamente o que precisa, como "mostre todos os clientes que compraram um produto X".
  • Atualizar dados: Se você precisar mudar alguma informação, como atualizar o endereço de um cliente, SQL faz isso de forma rápida e precisa.
  • Inserir novos dados: Quando você tem novas informações para adicionar, como novos registros de vendas, SQL faz isso de forma organizada.
  • Excluir dados: Se algum dado não é mais relevante, SQL pode removê-lo facilmente.

Semelhanças com o Excel

Se você já usou o Excel, deve saber que ele também lida com dados em tabelas. SQL e Excel compartilham algumas semelhanças que podem ajudar a entender como SQL funciona:

  • Tabelas: No Excel, você organiza dados em tabelas. Da mesma forma, em SQL, os dados são armazenados em tabelas. Cada tabela tem linhas e colunas, e cada célula pode conter um pedaço de informação.
  • Filtros e Busca: No Excel, você pode usar filtros para encontrar rapidamente as informações que deseja. Em SQL, você usa consultas para buscar e filtrar dados, como "encontrar todos os clientes que compraram mais de R$100 em produtos".
  • Fórmulas e Funções: No Excel, você usa fórmulas para calcular somas, médias e outras análises. SQL também permite fazer cálculos e análises diretamente nas consultas, como somar todos os valores de uma coluna ou calcular a média das vendas.

Enquanto o Excel é uma ferramenta poderosa para análise de dados, SQL é essencial para manipulação e consulta de bancos de dados. Este guia explora como realizar funções comuns do Excel usando SQL, proporcionando uma visão sobre como essas tarefas podem ser executadas em um ambiente de banco de dados.


1. Função IF

Descrição: Em SQL, a função CASE é usada para executar lógica condicional semelhante à função IF do Excel.

Sintaxe:

SELECT 
      CASE WHEN condição THEN valor_se_verdadeiro 
          ELSE valor_se_falso 
              END AS resultado 
FROM tabela;

Exemplo:

SELECT nome,
       CASE WHEN vendas > 10000 THEN 'Alta'
            ELSE 'Baixa'
                END AS categoria_vendas 
FROM vendedores;

Este exemplo classifica os vendedores com base no valor das vendas.


2. Função DATEDIF

Descrição: A função DATEDIF do Excel é equivalente ao uso das funções de data em SQL para calcular a diferença entre datas.

Sintaxe:

SELECT DATEDIFF(day, data_inicial, data_final) AS diferença_dias 
FROM tabela;

Exemplo:

SELECT nome, 
       DATEDIFF(day, data_nascimento, GETDATE()) AS idade_dias 
FROM clientes;

Calcula a idade em dias de cada cliente com base na data de nascimento.


3. Funções PROCV e PROCX

Descrição:

  • PROCV pode ser replicado com uma junção (JOIN) em SQL.
  • PROCX é mais flexível e pode ser replicado usando junções com condições.

Sintaxe PROCV:

SELECT a.campo1, b.campo2 
FROM tabela1 a 
JOIN tabela2 b ON a.chave = b.chave;

Sintaxe PROCX:

SELECT a.campo1, b.campo2 
FROM tabela1 a 
LEFT JOIN tabela2 b ON a.chave = b.chave 
WHERE b.chave IS NOT NULL;

Exemplo PROCV:

SELECT p.nome, c.categoria 
FROM produtos p 
JOIN categorias c ON p.categoria_id = c.id;

Este exemplo recupera o nome dos produtos e suas categorias correspondentes.


4. Funções REPLACE e SUBSTITUTE

Descrição:

  • REPLACE é usado para substituir partes do texto.
  • SUBSTITUTE pode ser replicado com REPLACE, mas não diretamente (se necessário, múltiplas chamadas podem ser usadas).

Sintaxe REPLACE:

SELECT 
      REPLACE(texto, texto_antigo, texto_novo) AS texto_modificado 
FROM tabela;

Exemplo REPLACE:

SELECT 
      REPLACE(nome, 'velho', 'novo') AS nome_atualizado 
FROM produtos;

Substitui todas as ocorrências de "velho" por "novo" no nome dos produtos.


5. Funções UPPER, LOWER e PROPER

Descrição:

  • UPPER converte o texto para maiúsculas.
  • LOWER converte o texto para minúsculas.
  • INITCAP capitaliza a primeira letra de cada palavra.

Sintaxe UPPER/LOWER/INITCAP:

SELECT UPPER(texto) AS texto_maiusculas, 
       LOWER(texto) AS texto_minusculas, 
       INITCAP(texto) AS texto_titulo 
FROM tabela;

Exemplo UPPER:

SELECT UPPER(nome) AS nome_maiusculo 
FROM clientes;

Exemplo LOWER:

SELECT LOWER(nome) AS nome_minusculo 
FROM clientes;

Exemplo INITCAP:

SELECT INITCAP(nome) AS nome_titulo 
FROM clientes;

6. Função CONCAT

Descrição: A função CONCAT junta vários textos em uma única coluna.

Sintaxe:

SELECT CONCAT(texto1, ' ', texto2) AS texto_combinado 
FROM tabela;

Exemplo:

SELECT CONCAT(primeiro_nome, ' ', ultimo_nome) AS nome_completo 
FROM funcionários;

Combina o primeiro e o último nome dos funcionários.


7. Função TRIM

Descrição: A função TRIM remove espaços extras de um texto.

Sintaxe:

SELECT TRIM(texto) AS texto_limpo 
FROM tabela;

Exemplo:

SELECT TRIM(nome) AS nome_limpo 
FROM clientes;

Remove espaços extras ao redor do nome dos clientes.


8. Funções AVERAGE, COUNT, SUM, MIN e MAX

Descrição:

  • AVERAGE calcula a média dos valores.
  • COUNT conta o número de registros.
  • SUM soma os valores.
  • MIN encontra o menor valor.
  • MAX encontra o maior valor.

Sintaxe:

SELECT AVG(valor) AS media_valor, 
       COUNT(*) AS total_registros, 
       SUM(valor) AS soma_valor, 
       MIN(valor) AS menor_valor, 
       MAX(valor) AS maior_valor 
FROM tabela;

Exemplo AVERAGE:

SELECT AVG(salario) AS salario_medio 
FROM empregados;

Exemplo COUNT:

SELECT COUNT(*) AS total_empleados 
FROM empregados;

Exemplo SUM:

SELECT SUM(vendas) AS total_vendas 
FROM transações;

Exemplo MIN/MAX:

SELECT MIN(salario) AS salario_minimo, 
       MAX(salario) AS salario_maximo 
FROM empregados;

9. Tabelas Dinâmicas

Descrição: Em SQL, a funcionalidade semelhante às tabelas dinâmicas do Excel pode ser alcançada com as cláusulas GROUP BY e funções de agregação.

Sintaxe:

SELECT coluna_agrupamento, 
       SUM(valor) AS total_valor, 
       AVG(valor) AS media_valor 
FROM tabela 
GROUP BY coluna_agrupamento;

Exemplo:

SELECT departamento, 
       SUM(salario) AS total_salario, 
       AVG(salario) AS salario_medio 
FROM empregados 
GROUP BY departamento;

Este exemplo resume os salários por departamento, similar a uma tabela dinâmica que agrupa e resume dados.