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.
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))
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))
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))
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))
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 umaPRIMARY KEY, e chaves estrangeiras devem referenciar a coluna correta – jamais troque a tabela de destino.