Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — FGV 2023

Banco de DadosMySQL
Código
fg060694
Banca
FGV
Órgão
CGE-SC
Ano
2023
Nível
Superior
Cargo
Auditor do Estado - Ciências da Computação - Tarde (Conhecimentos Específicos)
É comum, em um sistema de informação que utiliza banco de dados relacional, como por exemplo o MySQL, executar diferentes comandos SQL em sequência para obter um resultado.A depender do que será realizado, muitos SQL em sequência podem ser executados em módulos diferentes do mesmo sistema. Para estimular a reutilização de código, tornar a programação mais simples, além de compartilhar com os servidores de banco de dados o uso de recursos computacionais para executar os comandos SQL, o SGBD permite criar objetos chamados Stored Procedure.Os SGBDs possuem regras estabelecidas para a criação de Stored Procedure. Ao utilizar o MySQL, analise as afirmativas a seguir.I. Na construção de uma Stored Procedure, o MySQL permite o uso do comando RETURN para retornar ao programa principal o valor do dado tratado.II. No MySQL, os parâmetros recebidos por uma Stored Procedure podem ser do tipo IN, que informa que somente aceita dados de entrada, OUT, que informa que o parâmetro é utilizado apenas para retorno, ou INOUT, em que o parâmetro é utilizado para entrada e retorno.III. No MySQL, uma Stored Procedure é finalizada ao utilizar o comando END, uma vez que o sinal de ponto e vírgula delimita o fim da instrução SQL.Está correto o que se afirma em
  1. AII e III, apenas.
  2. BIII, apenas.
  3. CI e II, apenas.
  4. DI e III, apenas.
  5. EII, apenas.
Revelar gabarito e comentário

GabaritoE — II, apenas.

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”.

Stored Procedures no MySQL

Gabarito: letra E. Apenas a afirmativa II está correta. O MySQL realmente suporta os três modos de parâmetro (IN, OUT, INOUT) para stored procedures, conforme descrito. A afirmativa I é falsa porque o comando RETURN é usado em funções, não em procedures, para retornar um valor; em procedures, o retorno é feito por parâmetros OUT/INOUT. A afirmativa III é falsa pois, embora END finalize o corpo da procedure, o ponto e vírgula não delimita o fim da definição da procedure — é necessário alterar o delimitador padrão para evitar conflitos com os comandos internos.

1Parâmetros
IN (entrada, padrão)
OUT (saída)
INOUT (entrada e saída)
2Retorno
RETURN (exclusivo de função)
Parâmetros OUT/INOUT
3Delimitador
Ponto e vírgula separa comandos internos
DELIMITER $$ define fim da procedure
Stored Procedure (MySQL)
LEVELsoulevel.com.br
Stored Procedure (MySQL): Parâmetros (IN (entrada, padrão), OUT (saída), INOUT (entrada e saída)); Retorno (RETURN (exclusivo de função), Parâmetros OUT/INOUT); Delimitador (Ponto e vírgula separa comandos internos, DELIMITER $$ define fim da procedure)

Item I — ❌ Incorreto

No MySQL, stored procedures não utilizam o comando RETURN para devolver valores ao chamador. O RETURN é exclusivo de stored functions. Em procedures, a comunicação com o exterior ocorre exclusivamente por meio de parâmetros dos tipos OUT ou INOUT. Assim, a afirmação está errada.

Item II — ✅ Correto

A sintaxe do MySQL permite declarar parâmetros com os modos IN (entrada, padrão), OUT (saída, o parâmetro pode ser modificado e seu valor final enviado ao chamador) e INOUT (combina entrada e saída). Essa é a definição correta e amplamente documentada.

Item III — ❌ Incorreto

Embora o comando END marque o término do corpo da stored procedure, a afirmação sobre o ponto e vírgula é enganosa. Na criação de uma procedure, o ponto e vírgula é usado para separar comandos SQL dentro do bloco BEGIN...END. Para que o interpretador MySQL entenda onde termina a instrução CREATE PROCEDURE como um todo, é necessário alterar o delimitador (ex.: DELIMITER $$) antes da criação e restaurá-lo após. Portanto, o ponto e vírgula não delimita o fim da procedure.

Conclusão: Apenas o item II está correto, o que corresponde à alternativa E.

PEGA ESSA DICA!

Memorize os modos de parâmetro (IN, OUT, INOUT) e lembre-se de que RETURN é de função, não de procedure. Na prova, desconfie de afirmações que generalizam o uso do ponto e vírgula como delimitador final de definições de objetos.

Link permanente: /questoes/fg060694