- Descubra os comandos SQL essencial e exemplos práticos para consulta, gerenciamento e segurança em bases de dados.
- Aprenda a usar SELECT, WHERE, JOIN, GROUP BY, funções de agregação e visualizações, usando sintaxe e casos de uso do mundo real.
- Reunir-se Truques avançado, gerenciamento de permissões e perguntas frequentes para dominar SQL em ambientes profissionais.
A Linguagem de Consulta Estruturada (SQL) é uma daquelas ferramentas que, uma vez dominada, se torna sua melhor aliada para interagir com qualquer banco de dados relacional. Se você já se perguntou como acessar, modificar, excluir ou analisar grandes volumes de dados com facilidade e eficiência, o SQL é a resposta que você estava procurando. Aprender a usar os comandos SQL corretamente faz toda a diferença entre ser um usuário básico e se tornar um verdadeiro especialista em gerenciamento e análise de dados.
Neste artigo, compilei uma lista abrangente dos principais comandos SQL, acompanhada de explicações claras e exemplos práticos, abrangendo desde o básico até consultas mais avançadas. Também mostrarei truques e detalhes que muitas vezes são negligenciados em artigos mais superficiais, para que você possa aproveitar ao máximo seus bancos de dados, seja você um iniciante ou alguém que busca aprimorar suas habilidades. Prepare-se para mergulhar no mundo do SQL e descobrir como essa linguagem pode transformar a maneira como você trabalha com informações.
O que é SQL e por que ele ainda é essencial?
SQL , ou Linguagem de Consulta Estruturada, é uma linguagem de programação projetada especificamente para gerenciar e manipular bancos de dados relacionais. Embora tenha sido desenvolvida na década de 70, ela continua sendo a solução padrão para comunicação com bancos de dados como MySQL, PostgreSQL, SQL Server, MariaDB e Oracle Database, entre outros.
O motivo de sua longevidade é simples: o SQL permite tudo, desde tarefas básicas como consultar dados até operações avançadas como unir tabelas complexas, criar estruturas, atualizar registros em massa e definir permissões . Além disso, sua sintaxe é simples o suficiente para que qualquer pessoa se familiarize rapidamente com ela, mas poderosa o bastante para resolver problemas complexos de negócios.
Profissionais de diversas áreas — de desenvolvedores, analistas e administradores de banco de dados a cientistas de dados — confiam no SQL para processar, limpar e analisar dados críticos para seus projetos e organizações.
Categorias de comando SQL: DQL, DML, DDL e DCL
Antes de analisarmos os exemplos, vale lembrar que os comandos SQL podem ser agrupados em diferentes categorias de acordo com sua função:
- DQL (Linguagem de Consulta de Dados): Estas são as frases para consultar dados, como SELECIONE.
- DML (linguagem de manipulação de dados): Eles manipulam registros, com comandos como INSIRA, ATUALIZAÇÃO y EXCLUIR.
- DDL (linguagem de definição de dados): Eles gerenciam a estrutura do banco de dados, por exemplo, CRIAR, ALTERAR, GOTA y TRUNCAR.
- DCL (linguagem de controle de dados): Eles controlam permissões e acesso, usando GRANT y REVOGAR.
Cada tipo de comando desempenha uma função essencial no gerenciamento diário de bancos de dados. É importante saber qual comando usar em cada situação para evitar erros ou até mesmo desastres no gerenciamento de dados.
Principais comandos SQL: Fundamentos e exemplos práticos
Dominar comandos SQL básicos abre portas para praticamente qualquer tarefa de gerenciamento ou análise de dados. A seguir, explicarei os mais relevantes, como funcionam e fornecerei exemplos de uso para ajudar você a aprendê-los.
SELECT: O rei das consultas
O comando SELECT é a base da maioria das operações SQL. Ele permite recuperar dados armazenados em uma ou mais tabelas.
Sintaxe geral:
SELECIONE coluna1, coluna2, ... DE nome_tabela;
Para obter todas as colunas de uma tabela, basta usar o asterisco:
SELECIONE * DE funcionários;
Se você quiser filtrar dados específicos, você pode adicionar condições:
SELECIONE nome, idade DE funcionários ONDE idade > 30;
Graças ao comando SELECT, você pode recuperar desde um único valor até conjuntos de dados complexos, aplicar funções de agregação, calcular colunas derivadas e preparar informações para relatórios ou visualizações.
ONDE: Filtrando resultados com precisão
A cláusula WHERE permite especificar condições para selecionar apenas as linhas que atendem a determinados critérios. É um filtro fundamental para qualquer consulta.
Sintaxe básica:
SELECIONE * DE produtos ONDE preço < 100;
Você pode combinar condições usando operadores lógicos como AND , OR e NOT , bem como operadores de comparação ( =, <, >, <=, >=, <> ).
Por exemplo, para recrutar funcionários de vendas com menos de 30 anos:
SELECIONE * DE funcionários ONDE departamento = 'Vendas' E idade < 30;

INSERIR: Adicionando novos registros
Com o comando INSERT, você pode adicionar novas linhas a uma tabela. Isso é essencial para manter seus bancos de dados atualizados com informações recentes.
Sintaxe geral:
INSERIR EM produtos (nome, preço) VALORES ('Teclado', 29.99);
Se você quiser adicionar vários registros em uma única consulta, você também pode fazer isso:
INSERIR EM produtos (nome, preço) VALORES ('Mouse', 15.50), ('Monitor', 120.00);
Lembre-se de que, se você omitir a lista de colunas, deverá fornecer um valor para cada campo da tabela, respeitando sua ordem.
ATUALIZAÇÃO: Modificando dados existentes
O comando UPDATE permite alterar o valor de um ou mais campos em registros que atendam a uma condição específica. É útil para corrigir erros ou atualizar informações.
Sintaxe:
ATUALIZAR funcionários DEFINIR salário = salário * 1.05 ONDE departamento = 'Marketing';
Neste exemplo, todos os funcionários de Marketing terão seus salários aumentados em 5%. É essencial usar a cláusula WHERE sempre que você atualizar a tabela, a menos que realmente queira modificá-la por completo.
DELETE: Exclusão de dados
Para excluir registros, use DELETE juntamente com uma condição, evitando assim a exclusão acidental de todos os dados da tabela.
Exemplo:
EXCLUIR DE produtos ONDE id_produto = 10;
Se você omitir a cláusula WHERE, todas as linhas da tabela serão excluídas. Cuidado!
ORDEM POR: Organizando resultados
A cláusula ORDER BY é usada para classificar os resultados de uma consulta de acordo com uma ou mais colunas. Por padrão, a ordem será crescente, mas você pode especificar ASC ou DESC conforme necessário.
SELECIONAR * DE funcionários ORDEM POR salário DESC;
Você pode combinar várias colunas na classificação:
SELECIONE * DE produtos ORDEM POR categoria ASC, preço DESC;
GROUP BY e funções de agregação: SUM, AVG, MIN, MAX, COUNT
GROUP BY permite agrupar resultados de acordo com uma ou mais colunas, o que é muito útil em conjunto com funções como SUM() (soma), AVG() (média), MIN (mínimo), MAX (máximo) e COUNT (contagem).
Por exemplo, para saber quantos produtos existem em cada categoria:
SELECIONE categoria, CONTAR(*) DE produtos AGRUPAR POR categoria;
Ou para calcular a conta total para cada cliente:
SELECIONE customer_id, SOMA(valor) DE vendas GRUPO POR customer_id;
Você pode filtrar os grupos resultantes usando a cláusula HAVING :
SELECIONE departamento, MÉDIA(salário) DE funcionários AGRUPAR POR departamento TENDO MÉDIA(salário) > 2000;
LIMIT e OFFSET: Limitando o número de resultados
Quando suas tabelas contêm milhares de registros, o comando LIMIT é essencial para exibir apenas uma parte dos resultados, melhorando o desempenho e a legibilidade.
SELECIONE * DE produtos LIMITE 10;
Com a função DESLOCAMENTO, você pode pular um certo número de linhas, o que é útil para paginação:
SELECIONE * DE produtos LIMITE 10 DESLOCAMENTO 20;
ENTRE, EM e COMO: Condições ONDE Avançadas
Essas palavras-chave expandem as possibilidades de filtragem:
- ENTRE: Selecione valores dentro de um intervalo.
SELECIONE * DE funcionários ONDE salário ENTRE 1000 E 3000;
- IN: Pesquisar por vários valores.
SELECIONE * DE produtos ONDE categoria EM ('Computadores', 'Eletrônicos'); - GOSTAR: Procure padrões no texto.
SELECIONE * DE clientes ONDE nome COMO 'A%';
Caracteres curinga, como % (qualquer número de caracteres) e _ (um único caractere), também podem ser usados para personalizar ainda mais as pesquisas LIKE.
JOIN: Cruzamento de informações entre tabelas
Uma das grandes vantagens do SQL é a capacidade de combinar dados de diferentes tabelas usando JOINs . Os mais comuns são:
- JUNÇÃO INTERNA: Retorna linhas correspondentes em ambas as tabelas.
- ASSOCIAÇÃO À ESQUERDA: Retorna todas as linhas da tabela da esquerda e quaisquer correspondências da tabela da direita (preenchendo com NULL se não houver correspondência).
- JUNTE-SE À DIREITA: Retorna todas as linhas da tabela da direita e as linhas correspondentes da esquerda.
- JUNÇÃO EXTERNA COMPLETA: Retorna todas as linhas de ambas as tabelas (preenchidas com NULL onde não há correspondência).
Exemplo de INNER JOIN:
SELECIONE orders.id, customers.name DE orders INNER JOIN customers EM orders.customer_id = customers.id;
ASSOCIAÇÃO À ESQUERDA:
SELECIONE funcionários.nome, vendas.valor DE funcionários ESQUERDA JUNTE vendas EM funcionários.id = vendas.id_funcionário;
ALTER, CREATE e DROP: Modificando a estrutura do banco de dados
Além de manipular dados, o SQL permite definir e modificar a estrutura de tabelas e outros objetos de banco de dados:
- CRIAR: Para criar novos objetos (tabelas, visualizações, índices, usuários…).
CRIAR TABELA produtos (id INT CHAVE PRIMÁRIA, nome VARCHAR(100), preço DECIMAL(8,2));
- ALTERAR: Para modificar a estrutura de um objeto existente.
ALTER TABLE produtos ADD descrição VARCHAR(255);
ALTER TABLE produtos ALTER COLUMN preço SET NOT NULL;
- DERRUBAR: Para excluir objetos do banco de dados.
Produtos DROP TABLE;
DROP USER exemplo_usuário CASCADE;
Visualizações (VIEW): Consultas reutilizáveis e filtragem avançada
As views são objetos virtuais que representam uma consulta salva. Elas funcionam como uma tabela, mas não armazenam dados; apenas apontam para informações em outras tabelas. São úteis para simplificar consultas complexas, centralizar filtros e facilitar o acesso a informações específicas.
CRIAR EXIBIR active_employees COMO SELECIONAR * DE funcionários ONDE ativo = 1;
Você pode consultar a visualização como se fosse uma tabela:
SELECIONE * DE funcionários_ativos;
As visualizações são ideais para gerenciar permissões e exibir apenas dados relevantes para determinados usuários.
Funções de agregação e cálculos em colunas
O SQL permite trabalhar com funções de agregação e operadores aritméticos para realizar cálculos com dados:
- SOMA(): Soma total de uma coluna.
- Média(): Média aritmética.
- MIN() e MAX(): Mínimo e máximo.
- CONTAR(): Número de registros.
Por exemplo, se você quiser o número de funcionários por departamento:
SELECIONE departamento, CONTAR(*) DE funcionários AGRUPAR POR departamento;
Ou o maior salário por departamento:
SELECIONE departamento, MÁXIMO(salário) DE funcionários AGRUPAR POR departamento;
Você pode até criar colunas calculadas diretamente na consulta:
SELECIONE nome, salário * 0.95 AS net_salary FROM funcionários;
Usando aliases (AS) para tabelas e colunas
Em consultas, você pode atribuir nomes temporários a colunas e tabelas usando o comando AS . Isso facilita a leitura dos resultados e a escrita de consultas complexas.
Por exemplo:
SELECIONE e.name COMO funcionário, d.name COMO departamento DE funcionários COMO e JOIN departamentos COMO d EM e.department_id = d.id;
Dessa forma, o resultado mostrará colunas com nomes personalizados. Usar aliases é especialmente útil ao executar JOINs ou quando colunas têm nomes longos ou indefinidos.
Exemplos avançados de consultas SQL: resolva casos do mundo real
Para se tornar autossuficiente em SQL, você precisa enfrentar desafios do mundo real. Abaixo, você encontrará exemplos ampliados extraídos de casos práticos que ajudarão a consolidar seu conhecimento.
Consultar todos os funcionários de um departamento e suas vendas totais
SELECIONE e.id, e.name, SOMA(v.amount) COMO total_vendas DE funcionários e JUNTE vendas v EM e.id = v.employee_id ONDE e.departamento = 'Vendas' AGRUPAR POR e.id, e.name;
Este exemplo mostra como unir tabelas, aplicar funções de agregação e filtrar resultados.
Cálculo do salário médio e máximo por departamento
SELECIONE departamento, MÉDIA(salário) COMO salário_médio, MÁXIMO(salário) COMO salário_máximo DE funcionários AGRUPAR POR departamento;
Dessa forma, você pode analisar a distribuição salarial e identificar desigualdades ou áreas com maiores incentivos.
Contar produtos por faixa de preço usando CASE
SELECIONE O CASO QUANDO preço < 50 ENTÃO 'Barato' QUANDO preço < 150 ENTÃO 'Médio' SENÃO 'Caro' FIM COMO faixa_de_preço, CONTAGEM(*) COMO quantidade DE produtos AGRUPAR POR faixa_de_preço;
O uso do CASE permite criar categorias personalizadas dentro da consulta.
Exemplo de consulta para encontrar registros duplicados
SELECIONE nome, COUNT(*) DE clientes GROUP BY nome HAVING COUNT(*) > 1;
Isso ajuda você a manter seu banco de dados limpo e livre de dados redundantes.
Identifique o enésimo maior salário (subconsultas)
SELECIONE O PRINCIPAL 1 SALÁRIO DE (SELECIONE O PRINCIPAL N SALÁRIO DISTINTO DE funcionários ORDEM POR SALÁRIO DESC) ORDEM POR SALÁRIO ASC;
Perfeito para responder perguntas em entrevistas técnicas ou produzir relatórios avançados.
Excluir registros antigos automaticamente
EXCLUIR DE toras ONDE data < AGORA() - INTERVALO 6 MESES;
Ideal para bancos de dados de produção onde você precisa controlar o tamanho das tabelas.
Dicas e truques úteis em SQL
Dominar SQL não se resume apenas a saber escrever consultas básicas. Aqui estão algumas dicas para ajudá-lo a tirar o máximo proveito da linguagem:
- Sempre use WHERE em UPDATE e DELETE para evitar modificações ou exclusões acidentais em massa.
- Coloque índices nas colunas mais consultadas para acelerar pesquisas e associações.
- Prefira JOINs explícitos a WHERE para unir tabelas: facilita a manutenção e a legibilidade.
- Use funções de agregação e GROUP BY para relatórios e análises automáticas sem depender de planilhas externas.
- Teste em um banco de dados de teste antes de fazer grandes mudanças.
- Controle permissões com GRANT e REVOKE para garantir a segurança dos seus dados.
- Aproveite as vistas (VIEW) para simplificar o acesso a informações complexas e centralizar a lógica de negócios.
- Não use SELECT * em excesso, pois você pode trazer mais dados do que o necessário e deixar o sistema lento.
- Comente sobre consultas complexas para facilitar a manutenção futura.
Perguntas frequentes sobre comandos SQL em entrevistas e casos da vida real
Dominar SQL é essencial para se destacar em entrevistas técnicas e resolver problemas do dia a dia. Aqui estão algumas perguntas e respostas típicas para ajudar você a se preparar:
- O que é um INNER JOIN?
Esta é a junção padrão em SQL; ela retorna linhas que correspondem a ambas as tabelas. Exemplo:SELECIONE * DE UMA JUNÇÃO INTERNA B EM A.id = B.a_id;
- Para que serve LEFT JOIN?
Retorna todas as linhas da tabela da esquerda e quaisquer correspondências da tabela da direita. Exemplo:SELECIONE * DE funcionários ESQUERDA JUNTE vendas EM funcionários.id = sales.employee_id;
- Qual é a diferença entre DROP e DELETE?
EXCLUIR exclui linhas de uma tabela, enquanto GOTA remove completamente o objeto (tabela, exibição, usuário) do banco de dados. - É possível reverter após um ALTER?
Não, porque ALTER é DDL e muitos sistemas fazem commits automaticamente. É importante ter certeza antes de usá-lo. - O que são pseudocolunas?
São colunas virtuais geradas pelo sistema, como ROWID, USER ou CURRVAL no Oracle. - Como criar uma visualização?
CRIAR VIEW view_employees COMO SELECIONAR nome, salário DE funcionários;
- Como conceder permissões?
CONCEDER SELECIONAR NO inventário PARA ana, rita;
- Como excluir um usuário junto com seus dados?
DROP USER usuário CASCADE;
Expressões regulares e operadores especiais em SQL
Uma parte menos conhecida, mas muito poderosa, do SQL é a capacidade de buscar padrões usando expressões regulares e operadores avançados. Por exemplo:
- %: Representa qualquer sequência de caracteres de qualquer comprimento (usado em LIKE).
- _: Representa um único caractere (também em LIKE).
- | : Alternância, procurar uma coisa ou outra.
- *: Repetição de um caractere zero ou mais vezes.
Gerenciamento avançado: funções, permissões e segurança
Gerenciar um banco de dados envolve mais do que apenas consultar e modificar dados. É crucial controlar quem pode acessar, modificar ou excluir informações usando comandos como GRANT , REVOKE ou gerenciamento avançado de funções (ROLE).
CRIAR FUNÇÃO gerente;
CONCEDER SELECIONAR, INSERIR, ATUALIZAR funcionários PARA o gerente;
GERENTE DE CONCESSÃO PARA juan, maria;
Isso permite centralizar a segurança e simplificar o gerenciamento de permissões em grandes ambientes. Para obter mais informações sobre gerenciamento de permissões, consulte nosso artigo sobre automação e administração.
Escritor apaixonado pelo mundo dos bytes e da tecnologia em geral. Adoro compartilhar meu conhecimento por meio da escrita, e é isso que farei neste blog, mostrar a vocês tudo o que há de mais interessante sobre gadgets, software, hardware, tendências tecnológicas e muito mais. Meu objetivo é ajudá-lo a navegar no mundo digital de uma forma simples e divertida.