Material de Estudo - Concursos

Ciência e Análise de Dados | BLOCO 01: Banco de dados relacionais (SQL)

1. Sublinguagens SQL e comandos essenciais

Conceito O que você precisa saber Como a FCC cobra
DDL Definir/alterar estruturas do BD (tabelas, índices, views). CREATE, ALTER, DROP NÃO mexem em linhas, e sim em estruturas. Enunciados que falam em “definir esquemas de tabelas, índices e visões” descrevem DDL, NÃO DML nem DTL.
DML Manipular dados (linhas) já existentes nas tabelas. Comandos típicos: INSERT, UPDATE, DELETE. Questões trocam UPDATE, INSERT e DELETE por DDL ou DCL. Se altera conteúdo de tupla, é DML.
DQL Consultar dados sem alterar conteúdo. Usa essencialmente o comando SELECT. Muitas questões classificam SELECT como DML; conceitualmente, é DQL quando a operação é de “apenas consulta”.
DCL Controle de acesso e permissões de usuários em tabelas/objetos. Comandos típicos: GRANT, REVOKE. GRANT/REVOKE aparecem como DML ou DDL; FCC cobra que sejam reconhecidos como DCL (controle de acesso).
DTL Controle de transações, garantindo atomicidade e consistência. Comandos típicos: COMMIT, ROLLBACK. Questões que associam COMMIT/ROLLBACK a “definição de estrutura” ou “segurança de acesso” estão erradas; eles pertencem à DTL.
⚠️ Fique esperto! Aqui o bicho pega!
  • UPDATE, INSERT e DELETE NÃO são DDL nem DCL → são comandos DML, porque manipulam linhas já existentes.
  • CREATE, ALTER e DROP NÃO mexem em linhas, e sim em estruturas (tabelas, índices, views) → são DDL.
  • SELECT cai em pegadinha: muita questão o classifica como DML, mas conceitualmente ele é DQL (consulta), pois NÃO altera dados.
  • GRANT/REVOKE aparecem em alternativas como DML ou DDL; o ponto é memorizar que são DCL (controle de acesso).
  • COMMIT/ROLLBACK NÃO garantem segurança de acesso nem definem estrutura: fazem parte da DTL, garantindo atomicidade/consistência das transações.
  • Cuidado com siglas inventadas (DLM, DLL etc.): a banca usa como distrator; se a sigla NÃO está no grupo DDL/DML/DQL/DCL/DTL, desconfie.
🎓 Pareto FCC
  • Decorar a tabela “categoria x propósito x comandos” gera questão objetiva e rápida, muito recorrente em provas.
  • DDL → estrutura (tabelas, índices, views): comandos CREATE, ALTER, DROP.
  • DML → linhas: INSERT, UPDATE, DELETE. Se altera conteúdo de tupla, é DML.
  • DQL → SELECT para recuperar dados. Se a questão falar “apenas consulta”, está cobrando DQL.
  • DCL → GRANT/REVOKE → permissões de usuários em tabelas/objetos.
  • DTL → COMMIT/ROLLBACK → transação “tudo ou nada”, ligada à propriedade de atomicidade.
  • Quando a alternativa falar em “definir esquemas de tabelas, índices e visões”, trata-se de definição de DDL, NÃO de DML nem de DTL.
✍️ Exemplo na prática

[FCC – 2024 – AGR – Pref. Jaboatão dos Guararapes – TI] – https://www.tecconcursos.com.br/questoes/3113360

A questão pede o comando correto para excluir um cidadão com CPF específico: a alternativa certa é DELETE FROM cidadao WHERE CPF = '...'. Ela reforça que DELETE é comando DML, e que a sintaxe correta NÃO usa DELETE * nem ERASE.

2. SELECT básico: projeção, filtros e operadores

Conceito O que você precisa saber Como a FCC cobra
SELECT Define colunas (projeção) que serão retornadas na consulta. Confusão comum: alternativa afirmando que SELECT “filtra linhas”; na verdade escolhe colunas.
FROM Define tabela(s) de origem dos dados. Questões simples indicam apenas a tabela correta (por exemplo, FROM processos) ao lado da projeção.
WHERE Filtro linha a linha (seleção) sobre os registros. Pegadinha clássica: trocar o papel de SELECT e WHERE; WHERE é quem seleciona as linhas.
ORDER BY Ordenação do resultado final da consulta. Cobrança típica: ordenar por determinada coluna, em ordem crescente (ASC) ou decrescente (DESC), sempre vindo por último na instrução.
⚠️ Fique esperto! Aqui o bicho pega!
  • SELECT escolhe colunas, WHERE escolhe linhas. Questão troca isso com frequência (SELECT ≠ filtragem de linhas).
  • SELECT * retorna todas as colunas; se o enunciado pedir “apenas alguns campos”, o comando precisa listar as colunas e NÃO pode ter *.
  • Para filtrar por ano de uma coluna DATE, é comum uso de função tipo YEAR(data_inicio) ou comparação por faixa de datas; se a alternativa usar data_inicio = 2023, está ERRADA.
  • LIKE precisa de LIKE (e NÃO =) + curingas: % (0+ caracteres) e _ (1 caractere). '%A%' → contém A em qualquer posição; 'A%' → começa com A; '_2%' → 2º caractere é 2.
  • BETWEEN inclui os extremos (é SEMPRE “maior ou igual” e “menor ou igual”); troca por intervalo aberto está ERRADA.
  • IS NULL/IS NOT NULL testam nulos; usar = NULL está ERRADO.
  • DISTINCT remove duplicados; ele atua sobre o conjunto de colunas da lista SELECT, NÃO em uma só isolada.
🎓 Pareto FCC
  • “SELECT completo” segue, em geral, a ordem: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY. Se a alternativa bagunçar (HAVING antes de GROUP BY, ORDER BY no meio), desconfie.
  • WHERE filtra registros antes do agrupamento; HAVING filtra depois (sobre grupos já formados).
  • Operadores de comparação recorrentes: =, <> (diferença), >, <, >=, <=, BETWEEN, IN, LIKE, AND, OR, NOT.
  • Padrões cobrados com LIKE:
    • 'A%' → começa com A;
    • '%A' → termina com A;
    • '%A%' → contém A;
    • '_2%' → segundo caractere igual a 2.
  • Questões adoram pedir “registros fora do intervalo”: a forma típica envolve NOT BETWEEN x AND y.
✍️ Exemplo na prática

[FCC – 2025 – Analista – Pref. SP – TIC] – https://www.tecconcursos.com.br/questoes/3358401

A banca queria a consulta que retorna processos com status = 'Em andamento', iniciados em 2023, ordenados por data_inicio. A alternativa correta usa WHERE status = 'Em andamento' AND YEAR(data_inicio) = 2023 ORDER BY data_inicio ASC, cobrando ao mesmo tempo filtro por ano, uso correto da coluna status e ORDER BY na coluna certa.

3. Funções agregadas, GROUP BY, HAVING e ORDER BY

Conceito O que você precisa saber Como a FCC cobra
Funções agregadas Resumem várias linhas em 1 valor (SUM, AVG, COUNT, MAX, MIN). Usadas para contar linhas, somar valores, calcular média, maior e menor valor em relatórios e consultas de resumo.
GROUP BY Agrupa linhas com valores iguais em 1 ou mais colunas. Permite gerar totais por usuário, tipo, ano etc.; aparece em conjunto com funções agregadas.
HAVING Filtra grupos após o GROUP BY, geralmente usando funções agregadas. Questões testam diferença em relação ao WHERE, com condições como HAVING COUNT(*) > 100 ou HAVING SUM(valor) > 1000.
ORDER BY Ordena o resultado final da consulta. Deve aparecer por último na sintaxe completa, após GROUP BY e HAVING, ordenando por totais ou datas.
⚠️ Fique esperto! Aqui o bicho pega!
  • A sintaxe completa vem com ORDER BY por último: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY .... Qualquer alternativa que traga ORDER BY no meio está errada.
  • HAVING NÃO substitui WHERE: HAVING é para condições que envolvem agrupamentos/funções agregadas (ex.: HAVING SUM(valor) > 1000).
  • Agrupou? Tudo que está no SELECT deve ser:
    • ou coluna do GROUP BY,
    • ou função agregada.
    SELECT com coluna “solta” que NÃO está no GROUP BY nem agregada está errado.
  • COUNT(*) conta linhas, NÃO “colunas numéricas”. COUNT(coluna) ignora nulos dessa coluna.
  • Em problemas “traga a última alteração por usuário”, a combinação típica é SELECT usuario, MAX(data_alteracao) ... GROUP BY usuario; alternativas erradas trocam HAVING ou omitem o GROUP BY.
🎓 Pareto FCC
  • Lembrar o papel de cada cláusula:
    • WHERE → filtra linhas antes do agrupamento;
    • GROUP BY → forma grupos;
    • HAVING → filtra grupos prontos;
    • ORDER BY → ordena o resultado final.
  • Funções agregadas mais cobradas:
    • COUNT(*) → número de linhas;
    • SUM(coluna) → soma;
    • AVG(coluna) → média;
    • MAX/MIN → maior/menor valor.
  • Em questões de “agrupamento por tipo com média menor que X”, o par padrão é GROUP BY Tipo + HAVING AVG(coluna) < X.
  • Em cenários de data warehouse (fato/dimensões), agregados com SUM(volume) ou SUM(valor) + GROUP BY dimensões (local, ano, categoria) aparecem com filtros WHERE ano IN (...).
✍️ Exemplo na prática

[FCC – 2025 – AJ – TRT2 – TI] – https://www.tecconcursos.com.br/questoes/3569724

A tabela de log guarda alterações em processos, e a questão pede, para cada usuário, a última data em que alterou a tabela “Processos”. A alternativa correta é SELECT usuario, MAX(data_alteracao) ... WHERE tabela_afetada = 'Processos' GROUP BY usuario, cobrando o uso correto de função agregada + GROUP BY, sem HAVING desnecessário.

4. JOINs e relacionamento entre tabelas

Conceito O que você precisa saber Como a FCC cobra
INNER JOIN Retorna apenas combinações com correspondência nas duas tabelas (interseção). Enunciados que pedem “somente registros com correspondência em ambas” descrevem INNER JOIN, NÃO FULL JOIN.
LEFT JOIN Retorna todas as linhas da tabela da esquerda + correspondentes da direita (ou NULL). Usado para “esquerda completa”; linhas da esquerda sem correspondência aparecem com NULL nos campos da direita.
RIGHT JOIN Retorna todas as linhas da tabela da direita + correspondentes da esquerda. Equivalente “espelhado” do LEFT JOIN; enunciado que diz que RIGHT JOIN descarta linhas sem correspondência na direita está descrevendo INNER JOIN, e está errado.
FULL OUTER Retorna todas as linhas de ambas as tabelas, correspondendo onde possível, com NULLs onde faltar correspondência. Usado para união com NULLs, quando se quer todos os registros de ambos os lados, independentemente de correspondência.
SELF JOIN JOIN da tabela consigo mesma, usando aliases. Aparece em hierarquias e relacionamentos pai/filho, com a mesma tabela referenciada duas vezes no FROM.
⚠️ Fique esperto! Aqui o bicho pega!
  • INNER JOIN só traz registros com correspondência em ambas as tabelas; NÃO confundir com FULL JOIN (que traz tudo) nem com LEFT/RIGHT.
  • Em JOIN por chave estrangeira, a condição correta é algo como p.IDFornecedor = f.IDFornecedor. Se a questão ligar coluna errada (IDPagamento com IDFornecedor), há erro lógico.
  • A sintaxe “velha guarda” FROM A, B WHERE A.id = B.id é um INNER JOIN; se a questão omite a condição, vira produto cartesiano (pegadinha).
  • Em relacionamentos 1:N (ex.: Consumidor x OrdemServico), a chave estrangeira fica na tabela N (OrdemServico) apontando para a chave primária da 1 (Consumidor); JOIN que compara FKs entre si quebra o modelo.
  • Cuidado com enunciados que dizem que RIGHT JOIN “descarta linhas sem correspondência na direita” – isso descreve o INNER JOIN, NÃO o RIGHT.
🎓 Pareto FCC
  • Padrão clássico de JOIN em relatórios: SELECT f.NomeFornecedor, f.CNPJ, p.ValorPagamento FROM Pagamentos p INNER JOIN Fornecedores f ON p.IDFornecedor = f.IDFornecedor.
  • Para “listar entidades que têm ao menos um registro relacionado”, pode-se usar INNER JOIN ou EXISTS/IN em subquery; a FCC gosta de EXISTS.
  • Em consultas “traga serviços prestados a cada consumidor”, o FROM costuma começar pela tabela “lado 1” (Consumidor) e fazer INNER JOIN com a “lado N” (OrdemServico) pela FK.
  • É essencial ler os aliases: FROM Consumidor c INNER JOIN OrdemServico s ON c.codigo_cons = s.codigo_cons; inverter a igualdade raramente muda o resultado, mas inverter quem é quem é caminho para cair em pegadinha.
✍️ Exemplo na prática

[FCC – 2025 – AMCI – CGM/SP – Geral] – https://www.tecconcursos.com.br/questoes/3365789

A questão exige uma consulta que liste NomeFornecedor, CNPJ e ValorPagamento, relacionando Pagamentos com Fornecedores. A alternativa certa usa INNER JOIN Fornecedores f ON p.IDFornecedor = f.IDFornecedor, cobrando a ligação correta FK → PK e evitando produtos cartesianos e JOINs com colunas erradas.

5. Definição de tabelas, tipos de dados e restrições

Conceito O que você precisa saber Como a FCC cobra
Tipos básicos Tipos numéricos, de caracteres, booleanos e de data/tempo: INT, DECIMAL(p,s), CHAR(n), VARCHAR(n), BOOLEAN, DATE, TIME. Diferença entre CHAR(n) (tamanho fixo, preenche com espaços) e VARCHAR(n) (tamanho variável) aparece em pegadinhas sobre armazenamento e comparações.
NOT NULL Torna o campo obrigatório, sem aceitar valores nulos. Exemplo clássico: Nome VARCHAR(50) NOT NULL; alternativas erradas sugerem que campo NOT NULL pode ficar sem valor.
DEFAULT Define valor padrão se nada for informado na inserção. Exemplo: Casado BOOLEAN DEFAULT FALSE; questões trocam DEFAULT por UNIQUE ou outra restrição indevida.
UNIQUE Garante que valores NÃO podem se repetir na coluna. Comparações com PRIMARY KEY destacam que UNIQUE permite NULL (conforme SGBD), enquanto PK implica NOT NULL.
PRIMARY KEY / FOREIGN KEY PK identifica unicamente o registro; FK referencia PK (ou UK) em outra tabela. Exemplos: PRIMARY KEY (CPF) / FOREIGN KEY (CPF_AUTOR) REFERENCES AUTOR(CPF), cobrando integridade referencial.
⚠️ Fique esperto! Aqui o bicho pega!
  • PRIMARY KEY implica UNIQUE + NOT NULL; se a alternativa disser que PK “pode repetir” ou “pode ser nula”, está errada.
  • UNIQUE permite NULL (salvo ajustes específicos em SGBDs); a prova usa essa diferença como pegadinha em comparação com PK.
  • FOREIGN KEY SEMPRE aponta para PK/UK de outra tabela (ou da própria, em auto-relacionamento). Se a FK referencia registro ainda NÃO existente, viola integridade referencial.
  • DROP TABLE apaga a tabela inteira, estrutura + dados. TRUNCATE TABLE remove apenas linhas, mantendo a tabela (mais rápido que DELETE em massa).
  • CHECK implementa regras de negócio (ex.: salário > mínimo) diretamente na tabela; questões trocam por DEFAULT ou UNIQUE.
  • Tipos: CHAR(n) é tamanho fixo (preenche com espaços), VARCHAR(n) é variável; o SQL considera espaços à direita irrelevantes em comparações de CHAR (pegadinha fina).
🎓 Pareto FCC
  • Estrutura básica de criação de tabela: CREATE TABLE ALUNO ( CPF CHAR(11) PRIMARY KEY, Nome VARCHAR(50) NOT NULL, Data_Nascimento DATE NOT NULL );
  • Domínios personalizados (CREATE DOMAIN) aparecem menos, mas indicam reaproveitamento de regra de tipo (ex.: TIPO_PLACA AS CHAR(7)).
  • Comandos de limpeza/remoção:
    • DROP TABLE → some com a tabela;
    • TRUNCATE TABLE → zera as linhas;
    • DELETE FROM tabela WHERE ... → apaga linha a linha, respeitando WHERE.
  • Quando a questão falar em “registro proposto viola restrição de unicidade no PostgreSQL”, o foco está em como o SGBD lida com restrições de unicidade e no uso de cláusulas como ON CONFLICT para definir comportamento.
✍️ Exemplo na prática

[FCC – 2024 – Analista Gov – SEAD/PI – TI] – https://www.tecconcursos.com.br/questoes/3410661

A pergunta tratava de lidar com conflito de unicidade no PostgreSQL e cobrava o uso de ON CONFLICT para definir a ação alternativa. Isso cai diretamente na ideia de restrições de unicidade e no comportamento do SGBD quando elas são violadas.

Checklist de Prova (revisão relâmpago)

  • Sublinguagens: DDL (CREATE/ALTER/DROP), DML (INSERT/UPDATE/DELETE), DQL (SELECT), DCL (GRANT/REVOKE), DTL (COMMIT/ROLLBACK).
  • SELECT completo: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY (ORDER BY sempre por último).
  • WHERE filtra linhas; HAVING filtra grupos; GROUP BY exige que colunas no SELECT sejam agregadas ou estejam no agrupamento.
  • Funções agregadas: COUNT(*) conta linhas; SUM, AVG, MAX, MIN operam sobre colunas em consultas de resumo.
  • LIKE com curingas: % (0+ caracteres), _ (1 caractere); '_2%' → segundo caractere 2; BETWEEN x AND y inclui os extremos.
  • JOIN: INNER (interseção), LEFT/RIGHT (mantém tabela da esquerda/direita), FULL (todas); atenção à condição tabela1.PK = tabela2.FK.
  • PRIMARY KEY = UNIQUE + NOT NULL; UNIQUE pode aceitar NULL; FOREIGN KEY aponta para PK/UK e garante integridade referencial.
  • DROP TABLE apaga estrutura + dados; TRUNCATE apaga só linhas; DELETE apaga conforme WHERE.

Módulo VI - Análises Estratégicas

Neste módulo, você entenderá a importância das análises estratégicas para sua preparação. Aprenda a explorar o perfil e as características das principais bancas examinadoras, otimizando suas estratégias de estudo e aumentando suas chances de sucesso nos concursos públicos.

Compreenda a importância de análises detalhadas para direcionar sua preparação de maneira eficiente.

Explore o perfil e as características das principais bancas examinadoras para otimizar sua estratégia de estudo.

Módulo V - Direcionamento por Estágios

Neste módulo, você aprenderá a identificar seu estágio de preparação e a importância da fase pré-edital. Iremos guiá-lo através dos estágios básico, intermediário e avançado, fornecendo técnicas específicas para cada fase. Além disso, você descobrirá como otimizar sua preparação no período pós-edital, garantindo que esteja completamente preparado para o dia da prova.

Compreenda a estrutura dos diferentes estágios de preparação e a importância de se posicionar corretamente.

Aprenda a identificar em que estágio você se encontra e a relevância da preparação pré-edital.

Diretrizes e estratégias para quem está começando a preparação para concursos.

Abordagens específicas para quem já possui uma base e deseja aprofundar os estudos.

Técnicas avançadas para quem está próximo da aprovação e precisa de refinamento final.

Estratégias para otimizar sua preparação após a publicação do edital.

Módulo IV - Organização e Planejamento

Neste módulo, você aprenderá a criar ciclos de estudo eficazes, planejar suas semanas de maneira produtiva e desenvolver um planejamento detalhado do zero. Além disso, iremos guiá-lo na criação de cadernos de questões, utilizando filtros essenciais e organizando por blocos de assunto e matéria, para garantir uma preparação completa e focada.

Entenda a importância da organização e do planejamento eficazes para alcançar a aprovação.

Aprenda a criar e manter um ciclo de estudos que maximize seu tempo e produtividade.

Estruture seu planejamento semanal para garantir uma preparação equilibrada e consistente.

Descubra como iniciar um planejamento detalhado desde o início, alinhado aos seus objetivos.

Explore os diferentes tipos de cadernos de questões e aprenda a aplicar os principais filtros.

Organize suas questões por blocos temáticos para uma revisão focada e eficiente.

Estruture cadernos de questões por matéria para aprofundar seus conhecimentos específicos.

Módulo III - Metodologia de Estudos

Neste módulo, você vai explorar a metodologia de estudos detalhada e aprender como aplicar técnicas eficazes, desde o estudo da teoria e da lei seca até a revisão espaçada e automática. Abordaremos também como estudar e revisar por questões, analisar métricas, evoluir seu percentual de acertos, e preparar-se para provas discursivas, jurisprudência, legislação específica, exatas, contabilidade e tecnologia da informação.

Compreenda o sistema que irá guiar sua preparação de forma eficiente e organizada.

Explore os princípios e técnicas que sustentam um estudo eficaz e produtivo.

Aprenda a dominar a teoria e as leis secas com abordagens práticas e detalhadas.

Utilize técnicas de revisão espaçada e automática para fixar o conteúdo de forma duradoura.

Integre questões práticas em seu estudo para reforçar o aprendizado e avaliar seu progresso.

Aprenda a medir e interpretar seu desempenho com análises de métricas eficazes.

Desenvolva estratégias para melhorar continuamente seu percentual de acertos em provas.

Técnicas e práticas para se destacar em provas discursivas e redações.

Abordagens especializadas para entender e aplicar a jurisprudência relevante.

Foco na legislação específica para seu concurso e como estudá-la de forma eficaz.

Métodos de estudo para matérias de exatas, incluindo matemática e raciocínio lógico.

Estratégias para dominar contabilidade, desde os conceitos básicos até os mais avançados.

Abordagens para se preparar para questões relacionadas à tecnologia da informação e informática.

Módulo II - Ferramentas de Estudo para Concursos

Neste módulo, você conhecerá as ferramentas essenciais para otimizar sua preparação para concursos. Aprenda a usar PDFs, videoaulas, Tec Concursos, criar resumos, mapas mentais, simulados, e a aplicar técnicas como Anki, ChatGPT e estudo reverso para maximizar seu desempenho e alcançar a aprovação.

descrição das ferramentas abordadas (PDFs, videoaulas, Tec Concursos, resumos, mapas mentais, Anki, ChatGPT, estudo reverso) e a importância de cada uma no contexto da preparação para concursos.

Aprender a tirar o máximo proveito dessas ferramentas, otimizando tempo e absorvendo o conteúdo de forma mais eficaz.

Técnicas de resumo eficiente, criação de mapas mentais visuais e interativos, e a importância dos simulados na preparação para concursos, incluindo como criá-los e utilizá-los.

Melhorar significativamente a retenção de informações importantes, garantindo que o conhecimento seja revisado de forma periódica e eficiente.

Explorar como utilizar o ChatGPT para otimizar a preparação para concursos públicos.Exemplos práticos de uso do ChatGPT para tirar dúvidas, gerar resumos, criar perguntas de revisão e simular interações

Conceito e vantagens do estudo reverso, passos para aplicar a técnica em diferentes matérias e exemplos práticos de como utilizá-la para maximizar a compreensão e memorização.

Módulo I - Introdução ao Manual

Neste módulo, você terá uma visão geral do manual, aprenderá os aspectos fundamentais dos concursos públicos, e descobrirá como preparar seu psicológico. Além disso, ensinaremos a criar uma rotina de estudos eficaz e a evitar os erros mais comuns cometidos pelos candidatos.

Você terá uma introdução sobre o que esperar do Manual, seus principais componentes, e como ele está organizado para maximizar seu aprendizado e eficiência.

Detalhes sobre o funcionamento dos concursos, tipos de cargos, etapas do processo seletivo, e a importância da preparação adequada.

Abordar a importância do preparo mental e emocional para enfrentar os desafios dos concursos.

Passos para criar um cronograma de estudos, técnicas de gerenciamento de tempo, e dicas para manter a consistência e a disciplina.

Integre questões práticas em seu estudo para reforçar o aprendizado e avaliar seu progresso.