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

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