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

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

Utilizando funções escalares

Agora que já sabemos criar funções, vamos exemplificar duas formas de executá-las, imprimindo seu resultado na tela. Observe os comandos ilustrados no destaque a seguir e, na Figura 9, a resposta do SGBD à sua execução.

 

Tela do MySQL  após diversos comandos SELECT e SET.

Os dois primeiros exemplos utilizam o comando SELECT para imprimir na tela o resultado das funções Total_Vendas() e Total_Vendas2(), sendo passado nesta última o parâmetro 3, ou seja, se deseja saber o número de itens vendidos do produto de código igual a 3. Resultado similar pode ser obtido utilizando o comando SET para atribuir o resultado de uma função a uma variável e em seguida imprimindo o mesmo na tela usando SELECT. Observe que nesse caso o SGBD reconhece que uma variável está sendo definida pela inserção do caractere “@” antes do seu nome e que não é necessário associar um tipo específico a ela, sendo uma forma alternativa de se definir uma variável.

Embora já saibamos como criar uma função e obter o resultado da sua execução, ainda não mostramos como ela pode ser utilizada na manipulação de dados num SGBD. Para isso, vamos exemplificar a seguir, dois casos de uso da função Total_Vendas2() criada anteriormente.

No primeiro exemplo, a função Total_Vendas2() é usada numa consulta para gerar as linhas de uma coluna denominada Vendas, mostrando assim o total de vendas de cada produto associado a tabela produtos. No segundo exemplo, temos um caso similar, porém, a função também é utilizada na cláusula WHERE para filtrar os produtos com venda superior ou igual a 15 unidades. A Figura 10 apresenta o resultado das consultas anteriores ao serem processadas no MySQL.

Tela do MySQL após diversos comandos SELECT utilizando a função Total_Vendas2().

Finalmente, para excluir uma função do banco de dados, você deve utilizar o comando DROP FUNCTION, o qual tem sua sintaxe descrita no destaque a seguir. E a resposta do SGBD a esse comando aplicado nas funções criadas anteriormente é ilustrada na Figura 11.

Tela do MySQL após os comandos DROP FUNCTION.

Versão 5.3 - Todos os Direitos reservados