Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — Quadrix 2024

Banco de DadosBanco de Dados Relacionais
Código
qg347347
Banca
Quadrix
Órgão
CFP
Ano
2024
Nível
Superior
Cargo
Analista Técnico/TI/Desenvolvimento

Um banco de dados relacional foi criado para registrar os cursos realizados por psicólogos em uma clínica de treinamento. O banco de dados não possui colunas com autoincremento e contém as seguintes tabelas: PSICOLOGO (id_psicologo (PK, INT), nome (VARCHAR), email (VARCHAR)); CURSO (id_curso (PK, INT), nome_curso (VARCHAR), duracao (INT)); INSCRICAO (id_inscricao (PK, INT), id_psicologo (FK, INT), id_curso  (FK, INT), data_inscricao (DATE)); CERTIFICADO (id_certificado (PK, INT), id_inscricao (FK, INT), data_certificado (DATE)).


Com base nessa situação hipotética e na linguagem SQL, julgue o item seguinte.

O comando SQL a seguir permite atualizar a data do certificado para ‘2024‑01‑01’, em que o id_inscricao é igual a 1.UPDATE certificadoSET data_certificado = ‘2024‑01‑01’WHERE id_inscricao = 1;
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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 UPDATE em SQL

Gabarito: CERTO (letra C). O comando UPDATE certificado SET data_certificado = '2024-01-01' WHERE id_inscricao = 1; é sintaticamente válido e semanticamente correto: ele atualiza a coluna data_certificado da tabela CERTIFICADO, definindo o valor '2024-01-01' para todas as linhas em que id_inscricao seja igual a 1. A sintaxe segue o padrão SQL: UPDATE nome_tabela SET coluna = valor WHERE condição. Não há nenhum erro de sintaxe ou de lógica no comando apresentado.

O comando UPDATE é um dos comandos da Linguagem de Manipulação de Dados (DML) do SQL, responsável por modificar dados existentes em uma tabela. Sua sintaxe básica é:

UPDATE nome_da_tabela
SET coluna1 = valor1, coluna2 = valor2, ...
WHERE condição;

A cláusula WHERE é opcional, mas extremamente importante: se omitida, todas as linhas da tabela serão atualizadas. No comando em questão, a cláusula WHERE id_inscricao = 1 restringe a atualização apenas às linhas em que a coluna id_inscricao (que é uma chave estrangeira para a tabela INSCRICAO) tenha o valor 1. Isso garante que apenas o certificado associado à inscrição de id 1 seja alterado.

A tabela CERTIFICADO possui as colunas id_certificado (chave primária), id_inscricao (chave estrangeira) e data_certificado. O comando atualiza a coluna data_certificado para a data '2024-01-01'. O valor da data está entre aspas simples, o que é a forma correta de representar literais de data em SQL (embora o formato exato possa variar conforme o SGBD, o padrão ANSI aceita 'YYYY-MM-DD').

Exemplo prático: suponha que a tabela CERTIFICADO tenha os seguintes registros:

id_certificado

id_inscricao

data_certificado

1

1

2023-12-15

2

2

2023-11-20

Após executar o comando UPDATE certificado SET data_certificado = '2024-01-01' WHERE id_inscricao = 1;, o registro com id_inscricao = 1 terá sua data_certificado alterada para 2024-01-01, enquanto o registro com id_inscricao = 2 permanece inalterado.

A banca explora aqui um ponto que costuma gerar confusão: a diferença entre atualizar uma linha específica (com WHERE) e atualizar todas as linhas (sem WHERE). O comando apresentado é perfeitamente válido e atende ao objetivo descrito no enunciado. Não há qualquer erro de sintaxe, como uso incorreto de palavras-chave, falta de ponto e vírgula (que é opcional em muitos SGBDs) ou referência a coluna inexistente.

NÃO CAIA NESSA!

A banca pode tentar confundir o candidato fazendo-o acreditar que o comando está errado por algum detalhe, como a ausência de WHERE ou a necessidade de usar UPDATE ... JOIN. Mas aqui o WHERE está presente e a sintaxe está correta. O erro comum seria pensar que o comando atualizaria todas as linhas, mas a cláusula WHERE restringe corretamente. Fique atento: em questões de SQL, verifique sempre se a cláusula WHERE está presente e se a condição faz sentido com a estrutura da tabela.

CERTO. O comando SQL apresentado está correto e cumpre exatamente o que o enunciado descreve: atualizar a data do certificado para '2024-01-01' onde o id_inscricao é igual a 1.

Link permanente: /questoes/qg347347