Questão de Banco de Dados — Consultas e Comandos em SQL — Quadrix 2025
- Código
- qa698950
- Banca
- Quadrix
- Órgão
- CRM MS
- Ano
- 2025
- Cargo
- Ana ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). O comando apresentado está incorreto porque omite a coluna data_atendimento, que é uma coluna NOT NULL na tabela Atendimentos — e o enunciado exige registrar o atendimento "no momento atual". Sem fornecer um valor para essa coluna, o INSERT viola a restrição de integridade e a operação falha.
O comando INSERT INTO é a instrução da sublinguagem DML (Data Manipulation Language) responsável por inserir novos registros em uma tabela. Sua sintaxe básica é:
INSERT INTO nome_tabela (coluna1, coluna2, ...)
VALUES (valor1, valor2, ...);A lista de colunas entre parênteses indica quais colunas receberão valores, e a lista VALUES fornece os valores correspondentes, na mesma ordem. Colunas que não aparecem na lista recebem seu valor padrão (DEFAULT) ou NULL — a menos que tenham sido definidas como NOT NULL, caso em que a inserção é rejeitada.
Na tabela Atendimentos criada no enunciado, a coluna data_atendimento é do tipo DATE e não possui a restrição NOT NULL explícita — mas o comando CREATE TABLE não a define como NULL ou NOT NULL, e no padrão SQL, uma coluna sem especificação explícita aceita NULL por padrão. Porém, o enunciado afirma que o atendimento ocorreu "no momento atual", o que exige que a data seja registrada. O comando apresentado não inclui data_atendimento na lista de colunas nem fornece um valor para ela, então o registro ficaria sem data — o que contraria a exigência do problema.
Além disso, a coluna id_atendimento é a chave primária (PRIMARY KEY) e, portanto, não pode ser NULL e deve ser única. O comando também não a inclui, o que significa que ela dependeria de um valor padrão ou de auto-incremento — que não foi definido no CREATE TABLE. Em muitos SGBDs, uma coluna INT PRIMARY KEY sem AUTO_INCREMENT/IDENTITY não gera valor automaticamente, então o INSERT falharia por não fornecer a chave primária.
O comando correto deveria incluir a coluna data_atendimento com o valor atual (ex.: CURRENT_DATE ou NOW()) e, dependendo do SGBD, também a chave primária:
INSERT INTO Atendimentos (id_atendimento, id_medico, id_paciente, data_atendimento, descricao)
VALUES (1, 10, 50, CURRENT_DATE, 'Consulta de rotina');A pegadinha da questão está em omitir a coluna de data, que é essencial para o registro do atendimento "no momento atual". O candidato que apenas verifica os valores de id_medico e id_paciente pode ser induzido a marcar como correto, mas a ausência da data torna o comando inválido para o cenário descrito.
A banca omite a coluna data_atendimento — que é justamente o dado que o enunciado pede para registrar ("no momento atual"). O candidato foca nos IDs e na descrição e esquece que a data é obrigatória para o atendimento. Sempre confira se todas as colunas obrigatórias (NOT NULL ou exigidas pelo contexto) estão presentes no INSERT.
O comando está errado porque:
Omite a coluna data_atendimento: o enunciado exige registrar o atendimento "no momento atual", mas o INSERT não fornece valor para essa coluna. Ela ficaria NULL (ou falharia, se houver restrição), o que não representa o momento atual.
Omite a chave primária id_atendimento: a coluna é INT PRIMARY KEY e não pode ser NULL. Sem um valor explícito ou auto-incremento (não definido no CREATE TABLE), o INSERT viola a restrição de integridade.
A sintaxe em si é válida (INSERT INTO com lista de colunas e VALUES), mas incompleta para o cenário proposto.
Portanto, o comando não atende ao requisito de registrar o atendimento com a data atual e falharia na execução.
Gabarito: letra E (ERRADO)
Link permanente: /questoes/qa698950