Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2025

Banco de DadosSQL
Código
qg602052
Banca
Quadrix
Órgão
CRP - SP
Ano
2025
Nível
Médio
Cargo
Técnico Especializado em Suporte Administrativo - Técnico em Tecnologia da Informação e Comunicação
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 seguinte.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 INTO e colunas opcionais no SQL

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; as demais colunas (como observacoes) recebem o valor padrão ou NULL, a menos que tenham sido definidas como NOT NULL sem valor padrão — o que não é informado no enunciado. A afirmação de que o campo observacoes deve ser obrigatoriamente preenchido é falsa, pois a obrigatoriedade de uma coluna depende da definição do esquema da tabela, e não da simples existência do campo.

O comando INSERT INTO é a instrução da linguagem SQL (subconjunto DML — Data Manipulation Language) utilizada para inserir novos registros em uma tabela. Sua sintaxe básica é:

INSERT INTO nome_da_tabela (coluna1, coluna2, coluna3, ...) VALUES (valor1, valor2, valor3, ...);

A cláusula que lista as colunas entre parênteses é opcional. Quando omitida, o banco de dados assume que os valores serão fornecidos para todas as colunas da tabela, na ordem em que foram definidas. Quando presente, apenas as colunas listadas recebem os valores fornecidos; as colunas não listadas são preenchidas com:

  • o valor padrão definido na criação da tabela (cláusula DEFAULT), se houver;

  • NULL, se a coluna aceitar nulos;

  • um erro, se a coluna for NOT NULL e não tiver valor padrão.

No caso do enunciado, a tabela consultas possui as colunas id, paciente_id, data_consulta, terapeuta e observacoes. O comando especifica explicitamente as colunas paciente_id, data_consulta e terapeuta, fornecendo os valores correspondentes. A coluna observacoes não é mencionada, portanto será preenchida com NULL (ou com o valor padrão, se definido). Isso não torna o comando incorreto — a menos que a coluna observacoes tenha sido criada com a restrição NOT NULL sem valor padrão, o que não é informado no texto-base.

A pegadinha da questão está em afirmar que a omissão de uma coluna no INSERT é, por si só, um erro. Na verdade, a omissão é perfeitamente válida e comum em bancos de dados relacionais, desde que as colunas omitidas aceitem NULL ou tenham valor padrão. A obrigatoriedade de preenchimento é uma característica do esquema da tabela, não da sintaxe do comando.

Para ilustrar, considere uma tabela clientes com colunas id, nome e email, onde email é opcional. O comando INSERT INTO clientes (nome) VALUES ('João'); é válido e insere um registro com email = NULL. Da mesma forma, o comando do enunciado é válido, pois observacoes é uma coluna que, pelo contexto, não é obrigatória.

A distinção importante é entre a sintaxe do comando (que está correta) e a semântica em relação ao esquema (que depende da definição da tabela). A banca explora exatamente essa confusão: o candidato pode pensar que, por existir uma coluna observacoes, ela precisa ser preenchida. No entanto, a regra do SQL é clara: colunas não listadas no INSERT recebem NULL ou valor padrão, salvo restrição NOT NULL.

Guarde o critério decisivo: a omissão de colunas no INSERT é válida, desde que as colunas omitidas aceitem NULL ou tenham valor padrão. É exatamente nesse ponto que a afirmação do enunciado falha.

  1. 1Lista de colunas confere?
  2. 2Colunas omitidas aceitam NULL?
  3. 3Comando é válido
LEVEL · soulevel.com.br

Alternativa C — ❌ Incorreta

A alternativa afirma que o comando está incorreto porque falta o campo observacoes, que seria obrigatório. Isso é falso: a sintaxe do INSERT permite especificar apenas as colunas desejadas, e as demais recebem NULL ou valor padrão. A obrigatoriedade de uma coluna é definida no esquema da tabela (restrição NOT NULL), e o enunciado não informa que observacoes possui tal restrição. Portanto, o comando é válido.

Alternativa E — ✅ Correta ⟵ GABARITO

A alternativa afirma que o comando está correto, pois a omissão da coluna observacoes não o torna inválido. De fato, a sintaxe do INSERT está correta: especifica as colunas paciente_id, data_consulta e terapeuta com os valores correspondentes. A coluna observacoes não é obrigatória por padrão, e o comando é perfeitamente executável.

NÃO CAIA NESSA!

A banca tenta fazer o candidato acreditar que toda coluna existente na tabela precisa ser preenchida no INSERT. Na verdade, a omissão é válida — o que define a obrigatoriedade é a restrição NOT NULL no esquema, não a existência da coluna. Fique atento: se o enunciado não mencionar NOT NULL, a coluna é opcional.

PEGA ESSA DICA!

Na prova, ao analisar um INSERT, verifique: (1) se a lista de colunas corresponde aos valores fornecidos; (2) se as colunas omitidas aceitam NULL ou têm valor padrão. Se ambas as condições forem satisfeitas, o comando é válido. Essa é a técnica para resolver questões desse tipo rapidamente.

Gabarito: letra E

Link permanente: /questoes/qg602052