Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FCC 2026

Banco de DadosConsultas e Comandos em SQL
Código
fc142239
Banca
FCC
Órgão
MPE AP
Ano
2026
Cargo
Ana Min ( )
No sistema de controle processual de um Ministério Público, em um banco de dados MySQL aberto e em condições ideais, existe a tabela processo, definida abaixo: CREATE TABLE processo (   id INT AUTO_INCREMENT PRIMARY KEY,   numero VARCHAR(20),   tipo VARCHAR(50) ); Um técnico precisa registrar dois novos processos: um de número "2025-00123", do tipo "Criminal", e outro de número "2025-00124", do tipo "Cível".   O comando SQL correto e válido para inserir esses registros é:
  1. AINSERT processo VALUES (1, '2025-00123', 'Criminal'), (2, '2025-00124', 'Cível');
  2. BINSERT INTO processo (id, numero, tipo) VALUES (1, '2025-00123', 'Criminal'), (2, '2025-00124', 'Cível');
  3. CINSERT INTO processo (numero, tipo) VALUES ('2025-00123', 'Criminal'), ('2025-00124');
  4. DINSERT INTO processo VALUES (DEFAULT, '2025-00123', 'Criminal'), (DEFAULT, '2025-00124', 'Cível');
  5. EINSERT INTO processo (id, numero, tipo) (DEFAULT, '2025-00123', 'Criminal'), (DEFAULT, '2025-00124', 'Cível');
Revelar gabarito e comentário

GabaritoD — INSERT INTO processo VALUES (DEFAULT, '2025-00123', 'Criminal'), (DEFAULT, '2025-00124', 'Cível');

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comando INSERT no MySQL: sintaxe correta e uso de AUTO_INCREMENT

Gabarito: letra D. Para inserir dois registros em uma tabela com coluna id definida como AUTO_INCREMENT, a sintaxe correta é INSERT INTO processo VALUES (DEFAULT, '2025-00123', 'Criminal'), (DEFAULT, '2025-00124', 'Cível'); — o uso de DEFAULT na coluna de autoincremento faz o MySQL gerar automaticamente o próximo valor, sem precisar especificar o id manualmente. As demais alternativas falham por omitir a cláusula VALUES, por fornecer número incorreto de valores, ou por usar sintaxe inválida.

O comando INSERT é um comando da sublinguagem DML (Data Manipulation Language), responsável por inserir novos registros (linhas) em uma tabela. Sua sintaxe básica é:

INSERT INTO nome_da_tabela [(coluna1, coluna2, ...)] VALUES (valor1, valor2, ...);

Quando se omite a lista de colunas, é obrigatório fornecer valores para todas as colunas da tabela, na ordem em que foram definidas no CREATE TABLE. No caso da tabela processo, a ordem é id, numero, tipo. Como id é AUTO_INCREMENT, o MySQL permite usar a palavra-chave DEFAULT para que o banco atribua automaticamente o próximo valor inteiro sequencial. Isso evita conflitos de chave primária e é a prática recomendada.

A alternativa D usa exatamente essa abordagem: fornece DEFAULT para a coluna id e os valores para numero e tipo, em dois conjuntos de valores separados por vírgula, permitindo inserir múltiplas linhas em um único comando. Essa é uma funcionalidade padrão do MySQL e de outros SGBDs.

A pegadinha da questão está em confundir a necessidade de especificar o id manualmente (alternativas A e B) com o uso correto de DEFAULT (alternativa D). Muitos candidatos acham que precisam informar o valor do id para inserir, mas com AUTO_INCREMENT isso é opcional — e usar DEFAULT é a forma mais segura. Além disso, a alternativa C erra ao fornecer apenas um valor para o segundo registro, e a alternativa E usa uma sintaxe inválida (faltando a palavra-chave VALUES).

Guarde a regra de ouro: em colunas AUTO_INCREMENT, use DEFAULT ou omita a coluna na lista de colunas — nunca forneça um valor fixo, a menos que queira controlar manualmente o identificador. É exatamente esse critério que separa a alternativa correta das demais.

Alternativa A — ❌ Incorreta

Falta a cláusula VALUES. A sintaxe correta exige INSERT INTO ... VALUES (...). Além disso, fornece valores fixos para id (1 e 2), o que pode conflitar com a autoincrementação e não é a prática recomendada. O erro específico é a omissão de VALUES.

Alternativa B — ❌ Incorreta

Embora a sintaxe INSERT INTO processo (id, numero, tipo) VALUES ... seja válida, ela especifica explicitamente o id com valores fixos (1 e 2). Isso não é um erro de sintaxe, mas é desnecessário e pode causar conflito se a tabela já tiver registros. A questão pede o comando "correto e válido" — e a forma mais adequada é usar DEFAULT para o id, como na alternativa D. Portanto, está incorreta por não aproveitar a autoincrementação.

Alternativa C — ❌ Incorreta

O segundo conjunto de valores ('2025-00124') fornece apenas um valor, mas a tabela tem três colunas (id, numero, tipo). Como não há lista de colunas, o MySQL espera valores para todas as colunas. Além disso, o primeiro conjunto também está incompleto (faltam os valores para id e tipo). Erro de número de valores.

Alternativa D — ✅ Correta ⟵ GABARITO

Usa DEFAULT para a coluna id AUTO_INCREMENT, permitindo que o MySQL gere automaticamente os valores 1 e 2 (ou os próximos disponíveis). A sintaxe INSERT INTO processo VALUES (DEFAULT, '2025-00123', 'Criminal'), (DEFAULT, '2025-00124', 'Cível'); é válida e insere os dois registros corretamente. É a forma recomendada para tabelas com autoincremento.

Alternativa E — ❌ Incorreta

Falta a palavra-chave VALUES. A sintaxe correta é INSERT INTO ... VALUES (...), não INSERT INTO ... (...). Além disso, a estrutura (DEFAULT, ...) sem VALUES é inválida. Erro de sintaxe.

Gabarito: letra D

Link permanente: /questoes/fc142239