Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FCC 2015

Banco de DadosSQL
Código
fc020558
Banca
FCC
Órgão
MPE-PB
Ano
2015
Nível
Superior
Cargo
Analista de Sistemas – Desenvolvedor
Ao tentar executar a instrução INSERT INTO filial (idFilial, idLoja, cidadeFilial, vendasFilial) VALUES (2, 1, 'São Paulo', 340000); será informado pelo SGBD que
  1. Ahá um erro no nome da cidade, pois deveria estar entre aspas duplas.
  2. Bnão foi possível adicionar o registro porque o id da loja não está cadastrado.
  3. Chá um erro na sintaxe da instrução SQL.
  4. Do script SQL foi aplicado com sucesso no banco de dados.
  5. Ehouve uma tentativa de entrada duplicada '2-1' para a chave primária.
Revelar gabarito e comentário

GabaritoE — houve uma tentativa de entrada duplicada '2-1' para a chave primária.

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”.

Violação de Chave Primária em INSERT

Gabarito: letra E. A instrução tenta inserir o par (idFilial=2, idLoja=1), que já existe na tabela Filial (registro de Salvador). Como a chave primária da tabela é composta (idFilial, idLoja), o SGBD rejeitará a operação com erro de duplicidade. As demais alternativas não procedem: a sintaxe está correta, o idLoja=1 existe na tabela Loja, e as aspas simples em 'São Paulo' são adequadas.

A tabela Filial possui a seguinte definição:

CREATE TABLE Filial (
  idFilial INTEGER NOT NULL,
  idLoja INTEGER NOT NULL,
  cidadeFilial VARCHAR(45),
  vendasFilial DOUBLE,
  PRIMARY KEY(idFilial, idLoja),
  FOREIGN KEY(idLoja) REFERENCES Loja(idLoja)
);

Os registros existentes incluem:

  • (2, 1, 'Salvador', 240000)

A tentativa de inserir (2, 1, 'São Paulo', 340000) viola a restrição de chave primária, pois o par (2,1) já está presente. Logo, o SGBD informará erro de entrada duplicada.

Alternativa A — ❌ Incorreta

O erro não está nas aspas: valores string em SQL devem estar entre aspas simples, e 'São Paulo' está correto. Aspas duplas são usadas para identificadores (nomes de colunas/tabelas) e não para valores literais.

Alternativa B — ❌ Incorreta

O idLoja=1 está cadastrado na tabela Loja (registro com nomeLoja='A'). Não há violação de chave estrangeira.

Alternativa C — ❌ Incorreta

A sintaxe INSERT INTO filial (colunas) VALUES (valores); está perfeitamente de acordo com o padrão SQL. Não há erro sintático.

Alternativa D — ❌ Incorreta

O comando não será executado com sucesso devido à violação de chave primária. O SGBD retornará um erro, não uma confirmação de inserção.

Alternativa E — ✅ Correta ⟵ GABARITO

A chave primária composta (idFilial, idLoja) não permite duplicatas. Como o par (2,1) já existe, o SGBD emite erro de entrada duplicada, exatamente como descrito.

Gabarito: letra E.

Link permanente: /questoes/fc020558