Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — Quadrix 2025

Banco de DadosConsultas e Comandos em SQL
Código
qa698950
Banca
Quadrix
Órgão
CRM MS
Ano
2025
Cargo
Ana ( )
O Hospital Campo Grande está implementando um novo sistema de banco de dados para gerenciar informações sobre médicos, pacientes e atendimentos. O banco de dados apresenta as tabelas a seguir.   CREATE TABLE Medicos (        id_medico INT PRIMARY KEY,        nome VARCHAR(100),        especialidade VARCHAR(50),        salario DECIMAL(10,2) ); CREATE TABLE Pacientes (        id_paciente INT PRIMARY KEY,        nome VARCHAR(100),        data_nascimento DATE ); CREATE TABLE Atendimentos (        id_atendimento INT PRIMARY KEY,        id_medico INT,        id_paciente INT,       data_atendimento DATE,       descricao VARCHAR(100),       FOREIGN KEY (id_medico) REFERENCES Medicos(id_medico),       FOREIGN KEY (id_paciente) REFERENCES Pacientes(id_paciente) );   Com relação à situação hipotética apresentada e aos comandos SQL, julgue o item seguinte.   Para registrar um atendimento em que o médico de id_medico = 10 atendeu o paciente de id_paciente = 50 no momento atual, o comando correto é: INSERT INTO Atendimentos (id_medico, id_paciente, descricao) VALUES (10, 50, ‘Consulta de rotina’);
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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”.

Comando INSERT e a coluna data_atendimento

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 NULLa 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.

NÃO CAIA NESSA!

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.

Item — ❌ ERRADO

O comando está errado porque:

  1. 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.

  2. 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.

  3. 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