Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2021

Banco de DadosSQL
Código
fg044923
Banca
FGV
Órgão
SEFAZ-ES
Ano
2021
Nível
Superior
Cargo
Auditor Fiscal da Receita Estadual - Manhã
Assinale o script SQL de criação das tabelas T, R e S, que esteja correto sintaticamente e seja compatível com as respectivas instâncias exibidas anteriormente.
  1. Acreate table T(A int not null, B varchar(64),primary key (A))create table R(D int not null, E datetime,F money,primary key (D))create table S(G int not null, H int, I int,primary key(G,H),foreign key (G) references T(A),foreign key (H) references R(D))
  2. Bcreate table T(A int not null, B varchar(32),primary key (A))create table R(D int not null, E datetime,F money,primary key (D))create table S(G int not null, H int, I int,primary key(G),primary key(H),foreign key (G) references T(A),foreign key (H) references R(D))
  3. Ccreate table T(A int not null, B varchar(64),primary key (A))create table R(D int not null, E datetime,F money,primary key (D))create table S(G int not null, H int, I int,primary key(G,H),foreign key (H) references T(A),foreign key (G) references R(D))
  4. Dcreate table T(A int not null, B varchar(32),primary key (A))create table R(D int not null, E datetime,F money,primary key (D))create table S(G int not null, H int, I int,primary key(G),primary key(H),foreign key (G) references T(A),foreign key (H) references R(D))
  5. Ecreate table T(A int not null, B varchar(32),primary key (A))create table R(D int not null, E datetime,F money,primary key (D))create table S(G int not null, H int, I int,primary key(G,H),foreign key (G) references T(1),foreign key (H) references R(2))
Revelar gabarito e comentário

GabaritoA — create table T(A int not null, B varchar(64), primary key (A)) create table R(D int not null, E datetime, F money, primary key (D)) create table S(G int not null, H int, I int, primary key(G,H), foreign key (G) references T(A), foreign key (H) references R(D))

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

SQL: Criação de Tabelas com Chaves Estrangeiras

Gabarito: letra A. Apenas o script A define corretamente o tamanho do campo B da tabela T como varchar(64), suficiente para armazenar o maior valor das instâncias ("Distribuidora São João de Artigos para Festas S" – 37 caracteres), além de declarar a chave primária composta (G, H) em S e as chaves estrangeiras apontando para as tabelas certas (G → T(A), H → R(D)).

A banca testa dois pontos críticos: (1) a largura do campo B em T, que deve acomodar todos os registros; (2) a sintaxe de PRIMARY KEY e FOREIGN KEY. A tabela S exige chave primária composta (G, H) porque as instâncias mostram pares únicos, e cada chave estrangeira deve referenciar a coluna correta.

Alternativa A — ✅ Correta ⟵ GABARITO

  • T: A int not null, B varchar(64)varchar(64) é suficiente para todos os valores de B (o maior tem 37 caracteres). Chave primária correta em A.

  • R: D int not null, E datetime, F money, chave primária em D — compatível.

  • S: primary key(G,H) → único PRIMARY KEY válido; foreign key (G) references T(A) e foreign key (H) references R(D) — referências corretas conforme os dados.

Alternativa B — ❌ Incorreta

  • T.B com varchar(32): insuficiente para o maior registro (37 caracteres).

  • S com duas declarações primary key(G) e primary key(H): sintaxe inválida – uma tabela só pode ter uma chave primária.

Alternativa C — ❌ Incorreta

  • S: as chaves estrangeiras estão trocadas: foreign key (H) references T(A) e foreign key (G) references R(D). Isso não corresponde às instâncias, onde G referencia T.A e H referencia R.D.

Alternativa D — ❌ Incorreta

  • T.B com varchar(32): insuficiente.

  • S com duas PRIMARY KEY: inválido.

Alternativa E — ❌ Incorreta

  • T.B com varchar(32): insuficiente.

  • S: foreign key (G) references T(1) e foreign key (H) references R(2). Sintaxe inválida: REFERENCES exige o nome da coluna, não um número.

PEGA ESSA DICA!

Em questões de SQL DDL, verifique sempre o tamanho dos campos comparando com os dados das instâncias. A banca adora colocar varchar(32) onde caberia só com varchar(64). Além disso, lembre: uma tabela só pode ter uma PRIMARY KEY, e chaves estrangeiras devem referenciar a coluna correta – jamais troque a tabela de destino.

Gabarito: letra A

Link permanente: /questoes/fg044923