Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce171009
Banca
CESPE / CEBRASPE
Órgão
CNJ
Ano
2024
Nível
Médio
Cargo
Técnico Judiciário - Área Apoio Especializado - Especialidade: Programação de Sistemas

Q77_78.png (438×442)

Tendo como referência o código precedente, julgue o item que se segue, em relação à linguagem de programação Python.A função cursor.execute() é capaz de executar uma consulta SQL que tenha sido passada por uma string.
  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”.

Python: cursor.execute() e execução de consultas SQL

Gabarito: C (CERTO). A função cursor.execute() do módulo mysql.connector do Python é capaz de executar uma consulta SQL passada como uma string, como demonstrado no código do enunciado, onde a variável query contém uma string SQL e é passada como argumento para cursor.execute(query, (line,)). Essa é a forma padrão de executar comandos SQL em Python com conectores de banco de dados.

O conector mysql.connector é a biblioteca oficial da Oracle para conectar Python ao MySQL. Ela fornece a classe cursor, cujo método execute() recebe como primeiro argumento uma string contendo a instrução SQL a ser executada. No código apresentado, a string query é construída com a instrução INSERT INTO ... (content) VALUES (%s) e, em seguida, passada ao método execute(), que envia a instrução ao servidor MySQL para execução. Esse método também aceita parâmetros adicionais, como uma tupla ou dicionário, para substituir os placeholders %s na consulta, evitando problemas de injeção de SQL e garantindo a segurança dos dados.

A afirmação da questão é genérica: "A função cursor.execute() é capaz de executar uma consulta SQL que tenha sido passada por uma string." Isso é verdadeiro, pois é exatamente para isso que o método serve. Ele pode executar qualquer instrução SQL válida, como SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, entre outras, desde que a string contenha a sintaxe correta. No código, a consulta é um INSERT, mas o método funciona igualmente para outros tipos de consulta.

É importante destacar que o método execute() não apenas executa a consulta, mas também pode receber parâmetros para preencher os placeholders, como visto no código: cursor.execute(query, (line,)). Isso permite a execução de consultas parametrizadas, uma prática recomendada para evitar vulnerabilidades de segurança.

A banca explora um conceito básico, mas fundamental, da programação com bancos de dados em Python. O candidato que conhece a API do mysql.connector ou de bibliotecas similares (como sqlite3, psycopg2) sabe que execute() é o método responsável por executar a instrução SQL. A pegadinha poderia estar em afirmar que execute() retorna os resultados da consulta (o que não é verdade para SELECT, pois isso é feito por fetchall() ou fetchone()), mas a questão não aborda isso, limitando-se à capacidade de executar a string SQL.

Alternativa C — ✅ Certo ⟵ GABARITO

A afirmação está correta. O método execute() da classe Cursor do mysql.connector (e de outros conectores de banco de dados em Python) é projetado exatamente para executar uma instrução SQL fornecida como uma string. No código do enunciado, a variável query contém a string "INSERT INTO ... (content) VALUES (%s)" e é passada como primeiro argumento para cursor.execute(query, (line,)). Isso demonstra claramente que a função aceita uma string SQL e a executa no banco de dados. Portanto, a assertiva é verdadeira.

Gabarito: letra C (CERTO).

Link permanente: /questoes/ce171009