Informática

Noções de linguagem SQL (DDL, DML, SELECT e JOIN)

3 min de leitura13 questões

Cai no edital de Agente PF, Escrivão PF, Papiloscopista PF

Para revisar

Resumo

Essência. SQL (Structured Query Language) é a linguagem declarativa padrão (ISO/ANSI) dos bancos relacionais: diz o que se quer, não como buscar. Divide-se em sublinguagens:

  • DDL (definição): CREATE, ALTER, DROP, TRUNCATE → mexem na estrutura.
  • DML (manipulação): INSERT, UPDATE, DELETE (e SELECT, às vezes separado como DQL) → mexem nos dados.
  • DCL (controle): GRANT, REVOKE → permissões.
  • DTL/TCL (transação): COMMIT, ROLLBACK, SAVEPOINT.

SELECT — ordem de escrita: SELECT colunas FROM tabela WHERE filtro de linhas GROUP BY agrupamento HAVING filtro de grupos ORDER BY ordenação. Ordem lógica de execução: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY.

  • Agregação: COUNT, SUM, AVG, MIN, MAX. COUNT(*) conta linhas; COUNT(coluna) ignora nulos.
  • JOIN: INNER (só correspondências), LEFT (todas da esquerda + correspondências, nulos onde não há), RIGHT, FULL.
  • Nulo: testa-se com IS NULL, nunca = NULL.

Pegadinha Cebraspe. "O comando DELETE remove a tabela do banco" → errado: DELETE apaga linhas; quem remove a tabela é DROP. DELETE sem WHERE apaga todas as linhas, mas a tabela continua.

Visão geral

Basta ler consultas simples e prever o resultado. Os itens mais cobrados: categorias de comando, diferença WHERE × HAVING, tipos de JOIN, DISTINCT e tratamento de nulos.

Regra

Ver íntegra
SELECT uf, COUNT(*) AS total
FROM ocorrencias
WHERE ano = 2025
GROUP BY uf
HAVING COUNT(*) > 100
ORDER BY total DESC;

Lê-se: das ocorrências de 2025, conte por UF, mostre só as UFs com mais de 100 e ordene da maior para a menor.

ComandoCategoriaEfeito
CREATE TABLEDDLCria tabela
ALTER TABLEDDLAltera estrutura
DROP TABLEDDLRemove tabela e dados
TRUNCATEDDLEsvazia a tabela (mantém estrutura)
INSERT / UPDATE / DELETEDMLInclui / altera / exclui linhas
GRANT / REVOKEDCLConcede / retira permissão
COMMIT / ROLLBACKDTLConfirma / desfaz transação

Pontos-chave

  • WHERE filtra linhas antes do agrupamento e não aceita função de agregação; HAVING filtra grupos.
  • DISTINCT elimina linhas repetidas do resultado.
  • LIKE: % = qualquer sequência; _ = um caractere. 'Jo%' pega João, Jonas.
  • IN, BETWEEN (inclusivo nas pontas), ORDER BY padrão crescente (ASC).
  • UNION remove duplicatas; UNION ALL mantém.
  • UPDATE sem WHERE altera todas as linhas.
  • Visão (VIEW): consulta armazenada que funciona como tabela virtual.

Como a banca cobra

  • "Os comandos CREATE, ALTER e DROP pertencem à DDL" → certo.
  • "A cláusula HAVING é usada para filtrar grupos formados pelo GROUP BY" → certo.
  • "Em um LEFT JOIN, só aparecem as linhas com correspondência nas duas tabelas" → errado (esse é o INNER JOIN).
  • "A condição WHERE coluna = NULL retorna os registros com valor nulo" → errado (usa-se IS NULL).
  • "TRUNCATE remove a estrutura da tabela" → errado (remove as linhas; a estrutura fica).
Referência

Mapa mental

  • Sublinguagens
    • DDL: CREATE, ALTER, DROP, TRUNCATE
    • DML: INSERT, UPDATE, DELETE
    • DQL: SELECT
    • DCL: GRANT, REVOKE
    • DTL: COMMIT, ROLLBACK
  • SELECT
    • SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY
    • WHERE filtra linhas
    • HAVING filtra grupos
    • COUNT, SUM, AVG, MIN, MAX
  • JOIN
    • INNER: só correspondências
    • LEFT: tudo da esquerda
    • FULL: tudo dos dois lados
  • Detalhes
    • IS NULL, nunca = NULL
    • LIKE: % várias, _ uma
    • UNION remove duplicatas
  • ⚠️ Pegadinha
    • DELETE apaga linhas; DROP apaga tabela

Estude Agente PF no app

Grátis, sem cartão

Começar, é grátis

Estude este tópico no app

Grátis, sem cartão. Tudo do PRO liberado.

Criar conta grátis