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
qa699031
Banca
Quadrix
Órgão
CRP 6 (SP)
Ano
2025
Cargo
TESA ( )
Uma clínica de psicologia mantém um sistema de gerenciamento de pacientes com o modelo de banco de dados relacional simplificado a seguir: • Tabela pacientes (id, nome, data_ nascimento, diagnostico) • Tabela consultas (id, paciente_id, data_ consulta, terapeuta, observacoes) Um técnico da equipe de TI foi encarregado de executar tarefas de manutenção e análise de dados do banco por meio de comandos básicos de SQL. Com base nessa situação hipotética, julgue o item a seguir.   O comando INSERT INTO consultas (paciente_ id, data_consulta, terapeuta) VALUES (3, ‘2025‑07‑12’, ‘Dra. Carla’); está incorreto, pois falta o campo observacoes, que deve, obrigatoriamente, ser preenchido.
  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 obrigatoriedade de colunas

Gabarito: ERRADO (letra E). O comando INSERT INTO consultas (paciente_id, data_consulta, terapeuta) VALUES (3, '2025-07-12', 'Dra. Carla'); está correto, pois a sintaxe do INSERT permite especificar apenas as colunas que se deseja preencher. A coluna observacoes só seria obrigatória se tivesse sido definida com a restrição NOT NULL e sem um valor padrão (DEFAULT), o que não é informado no enunciado. Portanto, a afirmação de que o comando está incorreto por faltar o campo observacoes é falsa.

O comando INSERT é um comando da DML (Data Manipulation Language) utilizado para inserir novos registros (tuplas) em uma tabela. Sua sintaxe básica permite duas formas: a primeira, sem especificar as colunas, exige que os valores sejam fornecidos para todas as colunas da tabela, na ordem em que foram definidas no CREATE TABLE. A segunda forma, que é a utilizada no comando da questão, permite especificar explicitamente quais colunas serão preenchidas, e os valores são fornecidos na mesma ordem das colunas listadas. Nesse segundo caso, as colunas não listadas recebem o valor NULL ou o valor padrão (DEFAULT) definido na criação da tabela, a menos que tenham sido definidas com a restrição NOT NULL e sem valor padrão, caso em que a inserção falharia.

No cenário apresentado, a tabela consultas possui as colunas id, paciente_id, data_consulta, terapeuta e observacoes. O comando INSERT especifica as colunas paciente_id, data_consulta e terapeuta, fornecendo os valores 3, '2025-07-12' e 'Dra. Carla'. Como o enunciado não informa que a coluna observacoes possui a restrição NOT NULL (nem que não possui um valor padrão), a inserção é perfeitamente válida, e a coluna observacoes será preenchida com NULL (ou com o valor padrão, se houver). A afirmação do item, portanto, parte de uma premissa incorreta: a de que toda coluna não preenchida em um INSERT torna o comando inválido, o que não é verdade.

A pegadinha da banca está em explorar a confusão entre a obrigatoriedade de preencher todas as colunas (quando se omite a lista de colunas) e a possibilidade de preencher apenas um subconjunto delas (quando se especifica a lista). O candidato que não domina a sintaxe do INSERT pode acreditar que, por existir uma coluna observacoes na tabela, ela deve ser obrigatoriamente preenchida em toda inserção. No entanto, a regra é clara: a obrigatoriedade de preenchimento é definida pelas restrições da coluna (NOT NULL, DEFAULT), e não pela simples existência da coluna. O comando em questão está sintaticamente correto e será executado com sucesso, inserindo um novo registro com os valores fornecidos e NULL na coluna observacoes.

NÃO CAIA NESSA!

A banca tenta fazer o candidato acreditar que, por existir a coluna observacoes na tabela, ela deve ser obrigatoriamente preenchida em todo INSERT. Isso é falso: a obrigatoriedade é definida pela restrição NOT NULL na criação da tabela, não pela mera existência da coluna. O comando INSERT com lista de colunas explícita é válido e preenche as colunas omitidas com NULL ou com o valor DEFAULT, se houver. Fique atento: a presença de uma coluna não a torna obrigatória.

INSERT INTO
  • 1Sem lista de colunas
    • Exige valores para TODAS as colunas
    • Na ordem do CREATE TABLE
  • 2Com lista de colunas (caso da questão)
    • Preenche apenas as listadas
    • Omitidas recebem NULL ou DEFAULT
    • Falha só se NOT NULL sem DEFAULT
LEVEL · soulevel.com.br

Alternativa E — ✅ Correta (gabarito)

A alternativa E afirma que o item está errado, e é exatamente isso que ocorre. O comando INSERT apresentado está correto, pois a sintaxe INSERT INTO tabela (coluna1, coluna2, ...) VALUES (valor1, valor2, ...) é válida e permite inserir um registro preenchendo apenas as colunas listadas. A coluna observacoes não precisa ser preenchida, a menos que tenha sido definida com NOT NULL e sem valor padrão, o que não é informado. Portanto, a afirmação do item de que o comando está incorreto por faltar o campo observacoes é falsa, tornando a alternativa E a resposta correta.

Gabarito: letra E

Link permanente: /questoes/qa699031