Questão de Banco de Dados — Consultas e Comandos em SQL — FCC 2026
Banco de Dados›Consultas 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 é:
AINSERT processo VALUES (1, '2025-00123', 'Criminal'), (2, '2025-00124', 'Cível');
BINSERT INTO processo (id, numero, tipo) VALUES (1, '2025-00123', 'Criminal'), (2, '2025-00124', 'Cível');
CINSERT INTO processo (numero, tipo) VALUES ('2025-00123', 'Criminal'), ('2025-00124');
DINSERT INTO processo VALUES (DEFAULT, '2025-00123', 'Criminal'), (DEFAULT, '2025-00124', 'Cível');
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 idAUTO_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.