Questão de Banco de Dados — SQL — Quadrix 2025
- 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
- CCerto
- EErrado
GabaritoE — Errado
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.
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.
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.
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.
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