Procedimentos armazenados permitem armazenar comandos SQL no servidor para serem executados posteriormente de forma concisa. Eles podem receber parâmetros de entrada e saída, definir variáveis e lógica condicional para manipular dados de forma padronizada em diferentes aplicações. Sua sintaxe inclui nome, parâmetros, corpo com comandos SQL e pode retornar valores.
2. ● É um conjunto de comandos SQL que
pode ser armazenados no servidor.
3. Vantagens
● Os comandos não precisam ser reenviados, basta
apenas fazer referência a ele.
● Pode-se criar uma biblioteca de funções no Servidor.
● Várias aplicações escritas em diferentes linguagens
que realizam uma mesma tarefa.
● Permite a padronização da entrada de dados
5. SINTAXE
proc_name: seu procedimento armazenado deve ter um
nome, para quando for chamado, podermos então usá-lo;
6. SINTAXE
Existem 3 tipos de parâmetros em uma Stored Procedure:
● IN => este é um parâmetro de entrada, ou seja, um parâmetro cujo seu valor
será utilizado no interior do procedimento para produzir algum resultado;
● OUT => este parâmetro retorna algo de dentro do procedimento para o lado
externo, colocando os valores manipulados disponíveis na memória ou no
conjunto de resultados;
● INOUT => faz os dois trabalhos ao mesmo tempo!
7. SINTAXE
parameters: nessa parte do procedimento, informaremos
os parâmetros da seguinte forma: [IN | OUT | INOUT]
nome_parametro tipo_dado.
8. SINTAXE
characteristics: as características do procedimento pode
apresentar. Como não utilizaremos inicialmente tais
características, vamos nos ater a sintaxe principal. Questões
de segurança, se é determinística ou não, qual a linguagem
que estamos utilizando e se nosso procedimento modificará
dados na banco de dados, são algumas das características
que poderemos definir neste item, as quais não serão
abordadas nessas aula.
9. SINTAXE
corpo_da_rotina: onde são definidos os comandos SQL que
farão alguma manipulação e/ou defenderão alguma lógica,
podendo retornar ou não algum resultado.
11. EXEMPLO (Variáveis)
DELIMITER $$
CREATE PROCEDURE empresa.OLA ()
BEGIN
DECLARE Mensagem VARCHAR(11);
SET Mensagem = ‘Alo, Mundo’;
SELECT Mensagem;
END $$
DELIMITER ;
12. EXEMPLO (Parâmetros)
DELIMITER $$
CREATE PROCEDURE empresa.OLA (IN NOME VARCHAR(40))
BEGIN
SELECT CONCAT('OLÁ ',NOME, ' HORA CERTA: ',NOW()) OI;
END $$
DELIMITER ;
13. EXEMPLO (IN,OUT)
DELIMITER $$
CREATE PROCEDURE SOMA(IN A INTEGER, IN B INTEGER, OUT S)
BEGIN
SET S = A+B;
END $$
DELIMITER ;
CALL SOMA(5,3,@saida);
SELECT @saida;
14. EXEMPLO (IF)
DELIMITER $$
CREATE PROCEDURE COMPARA(IN A INTEGER, IN B INTEGER)
BEGIN
DECLARE RESP VARCHAR(20);
IF (A > B) THEN
SET RESP =‘A MAIOR QUE B’;
ELSE
SET RESP =‘A MENOR QUE B’;
END IF
SELECT RESP;
END $$
DELIMITER ;