Questão de Banco de Dados — Consultas e Comandos em SQL — Avança SP 2026
- Código
- qa431971
- Banca
- Avança SP
- Órgão
- CM Francisco Morato
- Ano
- 2026
- Cargo
- Tec ( )
- ANOME
- BVARCHAR
- CSALARIO
- DCODFUN
- ECHAR
GabaritoD — CODFUN
Gabarito: letra D. A chave primária da tabela cadfun é o campo CODFUN, pois foi o único declarado com a restrição PRIMARY KEY na instrução CREATE TABLE — é ele que identifica unicamente cada registro. As demais alternativas apontam para outros campos ou para tipos de dados, que não exercem essa função.
A chave primária (primary key) é um dos conceitos fundamentais do modelo relacional de banco de dados. Ela é um campo (ou combinação de campos) cujo valor identifica de forma única cada linha da tabela. Isso significa que:
Não pode haver valores repetidos — dois registros não podem ter o mesmo valor de chave primária;
Não pode haver valores nulos — todo registro deve ter um valor para a chave primária.
No comando CREATE TABLE, a restrição PRIMARY KEY pode ser declarada de duas formas principais:
Inline (diretamente na definição da coluna): CODFUN INTEGER NOT NULL PRIMARY KEY — é o caso da questão;
Separada (ao final da lista de colunas): PRIMARY KEY (CODFUN) — útil para chaves compostas.
Na prática, ao declarar uma coluna como PRIMARY KEY, o SGBD cria automaticamente um índice para acelerar as buscas por esse campo e garante as propriedades de unicidade e não-nulidade. É comum que a chave primária seja um campo numérico, como CODFUN, mas isso não é obrigatório — o que a define é a restrição, não o tipo de dado.
A pegadinha desta questão é justamente confundir o papel de cada elemento da instrução SQL: VARCHAR e CHAR são tipos de dados, não campos; NOME e SALARIO são campos, mas não possuem a restrição PRIMARY KEY. O candidato que não lê a instrução com atenção pode marcar qualquer uma dessas opções, mas apenas CODFUN cumpre o papel de chave primária.
Guarde o critério decisivo: a chave primária é o campo que recebe a restrição PRIMARY KEY na definição da tabela — é exatamente isso que separa a alternativa correta das demais.
O campo NOME é definido como VARCHAR(40) NOT NULL, mas não recebe a restrição PRIMARY KEY. Ele é apenas um campo obrigatório da tabela, sem a função de identificar unicamente os registros. A banca incluiu NOME como distrator porque é um campo comum de se imaginar como identificador, mas a definição da tabela é clara.
VARCHAR é um tipo de dado (cadeia de caracteres de tamanho variável), não um campo da tabela. A chave primária é sempre um campo (coluna), nunca um tipo de dado. O candidato que confunde a sintaxe do CREATE TABLE pode marcar esta opção, mas ela não faz sentido como resposta.
O campo SALARIO é definido como DECIMAL(10,2), mas não possui a restrição PRIMARY KEY. Ele é um campo comum de armazenamento de valores monetários, sem função de identificação. A banca o incluiu como distrator por ser um campo numérico, mas a definição da tabela não o marca como chave.
O campo CODFUN é declarado como INTEGER NOT NULL PRIMARY KEY. A restrição PRIMARY KEY aplicada diretamente a ele o define como chave primária da tabela cadfun. É ele que identifica unicamente cada registro, garantindo que não haja valores repetidos nem nulos nesse campo.
CHAR é um tipo de dado (cadeia de caracteres de tamanho fixo), não um campo da tabela. Assim como VARCHAR, é um distrator que confunde a sintaxe do CREATE TABLE com os campos reais. A chave primária é sempre um campo, nunca um tipo.
Gabarito: letra D — o campo CODFUN é a chave primária da tabela cadfun, pois foi o único declarado com a restrição PRIMARY KEY.
Link permanente: /questoes/qa431971