Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2025

Banco de DadosConsultas e Comandos em SQL
Código
qa699098
Banca
FUNDATEC
Órgão
BRDE
Ano
2025
Cargo
Ana Sist ( )

Em SQL, a cláusula                                  do comando                                           inclui tanto a relação dos atributos que constituem a chave estrangeira quanto o nome da relação à qual a chave estrangeira faz referência.

 

Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.

  1. Aprimary key – create table
  2. Bsecond key – alter table
  3. Cunique key – create table
  4. Dforeign key – create table
  5. Eforeign key – drop table
Revelar gabarito e comentário

GabaritoD — foreign key – create table

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

Chave estrangeira (FOREIGN KEY) no comando CREATE TABLE

Gabarito: letra D. A cláusula que inclui tanto a relação dos atributos que constituem a chave estrangeira quanto o nome da relação referenciada é a FOREIGN KEY, e o comando em que essa cláusula aparece é o CREATE TABLE — é exatamente a sintaxe FOREIGN KEY (coluna) REFERENCES tabela_referenciada (chave), usada na definição da estrutura da tabela.

A chave estrangeira (ou foreign key) é o mecanismo do modelo relacional que estabelece a ligação lógica entre duas tabelas: um atributo (ou conjunto de atributos) de uma tabela referencia a chave primária (ou uma chave candidata) de outra tabela. É por meio dela que se implementa a integridade referencial — ou seja, garante-se que um valor presente na coluna da tabela filha exista na coluna referenciada da tabela pai. Sem a chave estrangeira, não há como o banco de dados saber que duas tabelas estão relacionadas, e o modelo relacional perderia sua principal força: a consistência entre dados espalhados em tabelas distintas.

A definição da chave estrangeira pode ocorrer em dois momentos: na criação da tabela (dentro do CREATE TABLE) ou posteriormente, por meio do ALTER TABLE. No CREATE TABLE, a cláusula FOREIGN KEY vem acompanhada da palavra REFERENCES, que indica a tabela e a coluna de destino. Veja o exemplo clássico, em que a tabela professor referencia a tabela departamento:

CREATE TABLE departamento (
    coddepto integer PRIMARY KEY,
    nomedepto varchar(100)
);

CREATE TABLE professor (
    codprof integer PRIMARY KEY,
    nomeprof varchar(100),
    coddepto integer,
    CONSTRAINT fkprofessor FOREIGN KEY (coddepto) REFERENCES departamento
);

Aqui, a cláusula FOREIGN KEY (coddepto) lista o atributo que é a chave estrangeira, e REFERENCES departamento indica a relação à qual ela faz referência. É exatamente essa estrutura que o enunciado descreve: "inclui tanto a relação dos atributos que constituem a chave estrangeira quanto o nome da relação à qual a chave estrangeira faz referência".

A pegadinha da banca está em confundir o comando em que essa cláusula aparece. A FOREIGN KEY pode ser adicionada também com ALTER TABLE (como em ALTER TABLE professor ADD FOREIGN KEY (coddepto) REFERENCES departamento), mas o enunciado fala do comando que inclui a cláusula — e o CREATE TABLE é o comando de definição de estrutura que aceita a cláusula diretamente na criação. Já o DROP TABLE serve para excluir tabelas, não para definir chaves estrangeiras. E PRIMARY KEY e UNIQUE KEY são restrições diferentes, que não fazem referência a outra tabela.

Guarde a distinção central: FOREIGN KEY é a cláusula que referencia outra tabela; CREATE TABLE é o comando que a inclui na definição da estrutura. É nessa fronteira que as alternativas se dividem.

Critério

FOREIGN KEY (CREATE TABLE)

PRIMARY KEY (CREATE TABLE)

UNIQUE KEY (CREATE TABLE)

FOREIGN KEY (ALTER TABLE)

Referencia outra tabela?

Sim, via REFERENCES

Não

Não

Sim, via REFERENCES

Comando que inclui a cláusula

CREATE TABLE

CREATE TABLE

CREATE TABLE

ALTER TABLE (adiciona posteriormente)

Função principal

Estabelecer integridade referencial entre tabelas

Identificar unicamente cada linha da própria tabela

Garantir unicidade de valores em uma coluna

Adicionar vínculo a tabela já existente

Sintaxe típica

FOREIGN KEY (coluna) REFERENCES tabela (chave)

PRIMARY KEY (coluna)

UNIQUE KEY (coluna)

ALTER TABLE ... ADD FOREIGN KEY ...

Alternativa A — ❌ Incorreta

A PRIMARY KEY é a chave primária da própria tabela — ela identifica unicamente cada linha e não faz referência a nenhuma outra relação. O enunciado fala de uma chave que referencia outra tabela, o que é papel exclusivo da FOREIGN KEY. Além disso, a PRIMARY KEY também aparece no CREATE TABLE, mas não é ela que "inclui o nome da relação à qual faz referência".

Alternativa B — ❌ Incorreta

Não existe cláusula SECOND KEY na linguagem SQL padrão. O termo correto para a chave que referencia outra tabela é FOREIGN KEY. Além disso, o ALTER TABLE é usado para modificar uma tabela existente (adicionar/remover colunas ou restrições), e não é o comando que "inclui" a definição da chave estrangeira no sentido do enunciado — embora possa adicioná-la posteriormente, o comando típico de criação é o CREATE TABLE.

Alternativa C — ❌ Incorreta

A UNIQUE KEY garante que os valores de uma coluna sejam todos distintos, mas não estabelece vínculo com outra tabela. Ela é uma restrição de unicidade, não de referência. O enunciado descreve exatamente a função da FOREIGN KEY, que é a única que referencia outra relação.

Alternativa D — ✅ Correta ⟵ GABARITO

A FOREIGN KEY é a cláusula que define a chave estrangeira, listando os atributos que a compõem e, por meio de REFERENCES, o nome da tabela referenciada. O CREATE TABLE é o comando que inclui essa cláusula na definição da estrutura da tabela. A sintaxe FOREIGN KEY (coluna) REFERENCES tabela_referenciada (chave) preenche exatamente as duas lacunas do enunciado.

Alternativa E — ❌ Incorreta

Embora a cláusula FOREIGN KEY esteja correta, o comando DROP TABLE é utilizado para excluir uma tabela existente, não para defini-la. Não faz sentido incluir a definição de uma chave estrangeira em um comando de exclusão. O comando correto para incluir a cláusula é o CREATE TABLE.

NÃO CAIA NESSA!

A banca troca o comando CREATE TABLE por ALTER TABLE (alternativa B) e DROP TABLE (alternativa E). O ALTER TABLE também pode adicionar uma FOREIGN KEY, mas o enunciado fala do comando que inclui a cláusula na definição — e o CREATE TABLE é o comando de criação. Já o DROP TABLE é de exclusão, e não há como definir chave estrangeira nele. Fique atento: a palavra "inclui" aponta para a definição da estrutura, não para alteração ou exclusão.

PEGA ESSA DICA!

Para fixar, lembre-se da sintaxe: CREATE TABLE ... FOREIGN KEY (coluna) REFERENCES outra_tabela (coluna). Se a questão falar em "incluir" a chave estrangeira, o comando é CREATE TABLE; se falar em "adicionar" a uma tabela existente, é ALTER TABLE. E DROP TABLE é só para excluir.

Gabarito: letra D

Link permanente: /questoes/qa699098