Buscar

Stored Procedures - Banco de dados

Prévia do material em texto

Stored Procedures 
(Procedimentos Armazenados)
Prof. Daniel de Oliveira
danielcmo@ic.uff.br
Projeto de Banco de Dados para 
Sistemas de Informação
2018/2
Stored Procedures no MySQL
• Contém uma sequência de comandos SQL armazenados no 
banco de dados e que podem ser invocados pelos usuários
• Sintaxe:
Create Procedure <proc-name> 
(param_spec1, param_spec2, …, param_specn ) 
begin
-- execution code
end;
Onde cada param_spec possui a seguinte forma:
[in | out | inout] <param_name> <param_type>
• in : valores passados para a procedure como entrada,
• out : permite que dados sejam passados da procedure para o 
programa que a invocou
Exemplo
Precisamos de uma procedure 
para atualizar os dados do 
salário
Exemplo
Passo 1: Mudar o delimiter (i.e., character de terminação) do 
SQL statement de ponto e vírgula (;) para qualquer outra
coisa (e.g., //) 
Usamos ponto e vírgula nos scripts!!!
Exemplo
Passo 2:
1. Defina a procedure updateSalary que recebe como
parâmetro um ID de departamento.
2. O corpo da procedure atualiza o totalsalary da tabela
deptsal. 
3. Termine a procedure usando o delimitador definido no 
passo 1 (//)
Exemplo
Passo 3: Mude o delimiter de novo para ponto e vírgula (;)
Como invocar?
Passo 4: Invocar a procedure com o commando call
Exemplo
Passo 5: Verificar o salário atualizado na tabela deptsal
Stored Procedures no MySQL
• show procedure status
• Use drop procedure to remove a stored 
procedure
Stored Procedures no MySQL
• Podemos declarar variáveis em stored procedures
• Podemos usar estruturas de controle de fluxo (IF-
THEN-ELSE ou loops WHILE e REPEAT)
• MySQL também oferece suporte a cursores.
• Iteração sobre um conjunto de tuplas retornadas por
uma consulta.
• Referência:
http://www.mysqltutorial.org/mysql-stored-procedure-
tutorial.aspx
Exemplo com Cursores
• No exemplo anterior a gente atualizou um 
registro na tabela deptsal
• E se quisesse atualizar todos?
Dropar a procedure 
antiga
Uso dos cursores
Outro Exemplo
• Criar uma procedure para aumentar o salário
de todos os funcionários
Outro Exemplo
Outro Exemplo

Continue navegando

Outros materiais