Questão de Banco de Dados — Consultas e Comandos em SQL — FGV 2024
Banco de Dados›Consultas e Comandos em SQL
Código
fg165239
Banca
FGV
Órgão
TJ MS
Ano
2024
Cargo
Tec NS ( )
Na linguagem SQL, as constraints são usadas para especificar regras para os dados armazenados em uma tabela. A constraint que garante que a coluna não contenha valores nulos, que todos os valores da coluna sejam únicos e que a coluna identifique unicamente cada registro da tabela é o:
ACHECK
BUNIQUE
CNOT NULL
DFOREIGN KEY
EPRIMARY KEY
Revelar gabarito e comentário▾
GabaritoE — PRIMARY KEY
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”.
Constraints em SQL: PRIMARY KEY e a identificação única de registros
Gabarito: letra E. A PRIMARY KEY é a constraint que, por definição, garante simultaneamente que a coluna não contenha valores nulos (NOT NULL), que todos os valores sejam únicos (UNIQUE) e que a coluna identifique unicamente cada registro da tabela. É a única que reúne as três propriedades exigidas pelo enunciado — as demais alternativas garantem apenas uma ou duas delas.
As constraints (restrições) em SQL são regras aplicadas às colunas de uma tabela para garantir a integridade e a confiabilidade dos dados armazenados. Cada uma tem um papel específico: NOT NULL impede valores nulos, UNIQUE impede duplicatas, CHECK valida condições, FOREIGN KEY estabelece vínculos entre tabelas e PRIMARY KEY combina unicidade e não-nulidade para identificar cada linha de forma inequívoca.
A PRIMARY KEY é o conceito central do modelo relacional: ela é a chave que identifica cada registro de forma única. Na prática, quando você define uma coluna como PRIMARY KEY, o banco de dados automaticamente cria uma restrição UNIQUE (impedindo valores repetidos) e uma restrição NOT NULL (impedindo valores nulos) sobre ela. É por isso que ela é a única que atende integralmente ao que o enunciado pede.
Um exemplo concreto: em uma tabela de clientes, a coluna id_cliente definida como PRIMARY KEY garante que cada cliente tenha um identificador diferente (unicidade) e que nenhum cliente fique sem identificador (não-nulidade). Já uma coluna email com UNIQUE garante que não haja emails repetidos, mas ainda aceita valores nulos — ou seja, não identifica unicamente todos os registros.
A pegadinha desta questão está em reconhecer que a PRIMARY KEY é a única constraint que combina as três características. O candidato que conhece apenas as definições isoladas de UNIQUE e NOT NULL pode se confundir, mas a PRIMARY KEY é exatamente a interseção dessas duas, acrescida do papel de identificador principal da tabela.
Guarde esta distinção: UNIQUE garante unicidade, mas permite nulos; NOT NULL garante não-nulidade, mas permite duplicatas; PRIMARY KEY garante ambos e ainda define a identidade do registro. É nessa fronteira que as alternativas se separam.
Critério
PRIMARY KEY (E)
UNIQUE (B)
NOT NULL (C)
CHECK (A)
FOREIGN KEY (D)
Não permite valores nulos
✅ Sim
❌ Não (permite nulos)
✅ Sim
❌ Não
❌ Não
Garante unicidade dos valores
✅ Sim
✅ Sim
❌ Não
❌ Não
❌ Não
Identifica unicamente cada registro
✅ Sim
❌ Não (apenas evita duplicatas)
❌ Não
❌ Não
❌ Não
Função principal
Chave primária do registro
Evitar duplicatas
Tornar campo obrigatório
Validar condição
Integridade referencial
Alternativa A — ❌ Incorreta
A constraint CHECK é usada para limitar os valores aceitos em uma coluna, definindo uma condição que deve ser verdadeira para os dados inseridos ou atualizados. Ela não garante unicidade nem não-nulidade — apenas valida se o valor atende a uma regra específica, como CHECK (sexo IN ('F', 'M')). Portanto, não atende a nenhuma das três características exigidas.
Alternativa B — ❌ Incorreta
A constraint UNIQUE garante que todos os valores da coluna sejam únicos, mas não impede valores nulos. Conforme o próprio material explica, "a coluna ainda assim aceita null, porém engines diferentes tratam de forma diferente essa questão". Como o enunciado exige que a coluna não contenha valores nulos, a UNIQUE sozinha não é suficiente.
Alternativa C — ❌ Incorreta
A constraint NOT NULL garante que a coluna não contenha valores nulos, tornando o campo obrigatório. Porém, ela não garante unicidade — nada impede que dois registros tenham o mesmo valor na coluna. Como o enunciado exige que todos os valores sejam únicos e que a coluna identifique unicamente cada registro, a NOT NULL não atende ao requisito completo.
Alternativa D — ❌ Incorreta
A constraint FOREIGN KEY é usada para estabelecer um vínculo entre duas tabelas, garantindo a integridade referencial. Ela não garante unicidade nem não-nulidade na coluna onde é aplicada — apenas assegura que o valor exista na tabela referenciada. Portanto, não atende a nenhuma das características exigidas pelo enunciado.
Alternativa E — ✅ Correta ⟵ GABARITO
A PRIMARY KEY é a única constraint que combina as três propriedades: não permite valores nulos (como NOT NULL), garante que todos os valores sejam únicos (como UNIQUE) e identifica unicamente cada registro da tabela. É a chave primária do modelo relacional, usada para identificar cada linha de forma inequívoca. O material confirma que a PRIMARY KEY é a restrição que define a identidade do registro, e o exemplo CREATE TABLE fornecedores (cod_fornec SMALLINT PRIMARY KEY) ilustra exatamente esse uso.
PEGA ESSA DICA!
Para questões que pedem a constraint que "identifica unicamente cada registro", lembre-se do trio: PRIMARY KEY = UNIQUE + NOT NULL + identificador. Se a alternativa mencionar apenas unicidade ou apenas não-nulidade, ela está incompleta — a resposta certa é sempre a que reúne as três funções.