Questão FC372814
Considere que em um banco de dados PostgreSQL 13, aberto e funcionando em condições ideais, existam duas tabelas: Cidades (com os campos NomeCidade e Estado) e Populacao (com os ca
Linguagem SQL
FCC · 2022
Considere que em um banco de dados PostgreSQL 13, aberto e funcionando em condições ideais, existam duas tabelas: Cidades (com os campos NomeCidade e Estado) e Populacao (com os campos Cidade, NumHabitantes, NumVaras). A tabela Cidades foi criada pelo comando:
CREATE TABLE Cidades (NomeCidade VARCHAR(80) PRIMARY KEY, Estado VARCHAR(40));
Para que, ao se inserir ou atualizar algum registro na tabela Populacao, seja verificado se o campo Cidade corresponde a uma cidade existente na tabela Cidades, deve-se utilizar uma chave estrangeira. Isso é feito utilizando o comando SQL na criação da tabela Populacao:
CREATE TABLE Populacao (Cidade VARCHAR(80) ...I..., NumHabitantes INT, NumVaras INT);
A lacuna I é corretamente preenchida com
- FOREIGN KEY (Cidade) REFERENCES Cidades(NomeCidade)
- FOREIGN KEY REFERENCES Cidades(NomeCidade)
- REFERENCES Cidades(NomeCidade)
- FOREIGN KEY Cidades(NomeCidade)
- REFERENCES FOREIGN KEY (Cidade) TO Cidades(NomeCidade)
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A lacuna é corretamente preenchida por REFERENCES Cidades(NomeCidade). Ao definir o atributo Cidade VARCHAR(80) REFERENCES Cidades(NomeCidade) na criação da tabela, você declara inline uma chave estrangeira que aponta para a coluna NomeCidade da tabela Cidades.
Isso estabelece automaticamente a integridade referencial: o SGBD rejeitará inserts ou updates em Populacao.Cidade cujo valor não exista em Cidades.NomeCidade, garantindo consistência entre tabelas.
Como NomeCidade foi criado como PRIMARY KEY, é um alvo válido para REFERENCES. Opcionalmente, você pode acrescentar cláusulas como ON DELETE ou ON UPDATE para controlar comportamento em deleções/atualizações na tabela referenciada.
Conteúdo do catálogo FC Concursos · Atualizado em