Cursos / Redes de Computadores / Conceitos de Banco de Dados / Aula

arrow_back Aula 08 - Linguagem SQL - Stored Procedures e Funções

Usando estruturas de programação em procedimentos armazenados - pt.2

Agora que vimos a utilização das estruturas de decisão, vamos discutir um dos exemplos de estrutura de repetição. O quadro a seguir apresenta a estrutura do WHILE em MySQL. A sintaxe pode ser explicada do seguinte modo: ENQUANTO (WHILE) a condição é satisfeita EXECUTE (DO) um grupo de comandos em SQL.

AخA
1
WHILE condição DO
2
    comandos em SQL
3
END WHILE

Para exemplificar a utilização da estrutura WHILE ... END WHILE num procedimento armazenado, imagine que precisamos definir um procedimento para reajustar os preços da tabela produtos do nosso banco de dados sistvendas, com a condição de que os preços de todos os produtos sejam reajustados de um percentual fixo, enquanto um determinado preço médio não seja atingido. O quadro a seguir apresenta uma solução para esse problema. Analise com atenção a sequência de comandos apresentada.

7
1
mysql> CREATE PROCEDURE ReajustePreco (preco_medio decimal(10,2), percentual int)
2
    BEGIN
3
        WHILE (SELECT AVG(prod_preco) FROM produtos) < preco_medio DO
4
            UPDATE produtos
5
            SET prod_preco = prod_preco*(1+percentual/100);
6
        END WHILE;
7
    END;

Observe que no quadro anterior é definido um procedimento com dois parâmetros de entrada (preco_medio, percentual), que são usados dentro de uma estrutura de repetição (WHILE) de modo que, ENQUANTO a média dos preços dos produtos for menor que preco_medio, todos os produtos têm seu valor atualizado de um determinado percentual. A Figura 6 apresenta a construção do procedimento descrito anteriormente no MySQL.

Figura 06 - Tela do MySQL após o comando CREATE PROCEDURE com estrutura WHILE, CALL e SELECT.
Tela do MySQL após o comando CREATE PROCEDURE com estrutura WHILE, CALL e SELECT.
Fonte: MySQL 5.7 Command Line Client

Além da criação do procedimento discutido no destaque anterior, a Figura 6 traz um exemplo de uso do procedimento informando como parâmetros de entrada, preco_medio igual a 850.00 e percentual igual a 10; a tabela de produtos em que se pode constatar o aumento dos preços quando comparada com tabela similar mostrada na Figura 1 e o uso do SELECT para calcular o novo preço médio depois da aplicação do aumento.

Vamos treinar um pouco o uso das estruturas de decisão e repetição?

Versão 5.3 - Todos os Direitos reservados