FC ConcursosFC Concursos

Questão FC670723

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 tabel

Linguagem SQL

QUADRIX · 2025

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 excluir, por exemplo, o médico de id_medico = 5 da tabela Medicos, garantindo que não existam atendimentos vinculados a ele, pode‑se usar o seguinte comando:

DELETE FROM Medicos WHERE id_medico = 5 AND NOT EXISTS (SELECT 1 FROM Atendimentos WHERE id_medico = 5);

Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

O comando está correto porque acrescenta uma condição que impede apagar o registro do médico caso existam registros filhos na tabela Atendimentos. A cláusula NOT EXISTS avalia uma subquery correlacionada; se a subquery encontrar qualquer atendimento com id_medico = 5, a condição torna‑se falsa e o DELETE não remove a linha.


Essa abordagem evita que o SGBD gere erro de violação de FOREIGN KEY e permite um controle programático mais limpo da operação, pois a instrução falha silenciosamente sem comprometer a integridade referencial.


Na prática, para preservar histórico e auditoria, costuma‑se preferir marcar o médico como inativo via UPDATE em vez de apagar. Usar ON DELETE CASCADE removeria também os atendimentos e pode destruir trilhas de auditoria.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo