Questão de Banco de Dados — SQL — Quadrix 2024
- Código
- qg347394
- Banca
- Quadrix
- Órgão
- CFP
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista Técnico/TI/Suporte
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). O comando apresentado está incorreto porque a ordem dos elementos está invertida: a palavra CONSTRAINT deve vir antes do nome da restrição, e não depois de PK. A sintaxe correta seria ALTER TABLE psicologo ADD CONSTRAINT pk_psicologo_cod_crp PRIMARY KEY (cod_crp);. A forma apresentada no enunciado (ADD PK CONSTRAINT ...) não é válida na linguagem SQL padrão.
O comando ALTER TABLE é utilizado para modificar a estrutura de uma tabela já existente, e uma de suas finalidades é adicionar restrições (constraints), como a chave primária. A chave primária é uma restrição que identifica de forma única cada registro de uma tabela, garantindo que os valores da coluna (ou combinação de colunas) sejam únicos e não nulos. Para adicionar uma chave primária a uma tabela existente, a sintaxe correta é:
ALTER TABLE nome_da_tabela
ADD CONSTRAINT nome_da_restricao PRIMARY KEY (coluna1, coluna2, ...);Observe que a palavra CONSTRAINT é seguida pelo nome que se deseja dar à restrição, e depois pela cláusula PRIMARY KEY com as colunas entre parênteses. No comando do enunciado, a ordem foi trocada: ADD PK CONSTRAINT psicologo.cod_crp PRIMARY KEY (cod_crp);. Isso está errado porque PK não é uma palavra-chave válida nesse contexto, e o nome da restrição (psicologo.cod_crp) está no lugar errado. Além disso, o nome da restrição não deve incluir o nome da tabela com ponto — o nome da restrição é um identificador simples, como pk_psicologo_cod_crp.
É importante distinguir a sintaxe de adição de chave primária da sintaxe de criação de tabela. No CREATE TABLE, a chave primária pode ser definida inline (diretamente na coluna) ou como uma restrição de tabela. Por exemplo:
CREATE TABLE psicologo (
cod_crp INTEGER PRIMARY KEY
);Ou, para dar um nome à restrição:
CREATE TABLE psicologo (
cod_crp INTEGER,
CONSTRAINT pk_psicologo_cod_crp PRIMARY KEY (cod_crp)
);No ALTER TABLE, a forma de adicionar a chave primária é semelhante à segunda opção do CREATE TABLE, mas com a cláusula ADD:
ALTER TABLE psicologo
ADD CONSTRAINT pk_psicologo_cod_crp PRIMARY KEY (cod_crp);A pegadinha da questão está na inversão da ordem dos elementos. O candidato pode reconhecer que o comando está relacionado à adição de uma chave primária e marcar como correto, sem perceber que a sintaxe está errada. A banca explora exatamente esse descuido.
O comando ALTER TABLE psicologo ADD PK CONSTRAINT psicologo.cod_crp PRIMARY KEY (cod_crp); está incorreto. A ordem correta é ADD CONSTRAINT nome_da_restricao PRIMARY KEY (coluna). A palavra PK não é uma palavra-chave válida nesse contexto, e o nome da restrição não deve conter o nome da tabela com ponto. A forma correta seria:
ALTER TABLE psicologo
ADD CONSTRAINT pk_psicologo_cod_crp PRIMARY KEY (cod_crp);Portanto, a afirmação de que o comando é empregado para implementar uma restrição de integridade de chave primária está errada, pois o comando como escrito não é válido.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/qg347394