Vous êtes sur la page 1sur 48

Instituto Federal da Bahia – IFBA

Campus Vitória da Conquista

Stored Procedures

Prof. Me. Pablo Freire Matos


pablofmatos@gmail.com
Stored Procedures (SP)

 Stored Procedures = Procedimentos Armazenados

 São funções armazenadas no servidor escritas


usando SQL

 Podem receber parâmetros e executar funções


complexas

 Retorna ou não informações para o usuário

Stored Procedures
2
Stored Procedures

 Um dos novos recursos no MySQL 5.0

 Aumento no desempenho
 menos informação

 Enviada entre cliente/servidor


 mais trabalho para o servidor

Stored Procedures
3
Quando utilizar SP?
 Clientes em diferentes linguagens
 Pode ser acessada por diversos programas

 Operações repetitivas
 Facilita a manutenção
 Se houver alguma modificação a ser feita, basta fazê-la no BD

 Segurança
 Aproveita a capacidade do servidor e da otimização do SGBD
 É mais rápido
 Minimiza o tráfego da rede

Stored Procedures
4
Limitações

 A linguagem de escrita de Stored Procedures


pode ser muito limitada para operações mais
complexas

Stored Procedures
5
Stored Procedures (SP)

 Vantagens:
 Garantir as restrições de integridade
 „Reduzir o volume de dados trafegados na rede
 „Melhorar a manutenção do software
 „Melhorar a segurança no acesso aos dados
 „Melhorar o desempenho das aplicações

Stored Procedures
6
Stored Procedures (SP)

 Desvantagens:
 Falta de padronização entre SGBDs, o que acarreta
na dificuldade de portabilidade do código

 „ xistem SGBDs que ainda não disponibilizam esta


E
funcionalidade, inviabilizando a distribuição do
processamento entre aplicação e o SGBD

 Dependência do SGBD

Stored Procedures
7
Banco de Dados Teste

 Iniciar o cliente MySQL

 Criar BD Teste

Stored Procedures
8
DELIMITER

 Utilizar o banco de dados criado

 Verificar a versão do banco

Como voltar ao normal?

Stored Procedures
9
Selecionar Usuário

Stored Procedures
10
Stored Procedures – Sintaxe Procedimento

 Corpo da rotina:
 Declarações de procedimento em SQL válida
 Característica:
 LANGUAGE SQL
 [NOT] DETERMINISTIC
 SQL SECURITY {DEFINER | INVOKER}
 COMMENT string Stored Procedures
11
Exemplo: Olá em SQL

Como mostrar na tela a palavra ‘Ola’ em SQL?

Stored Procedures
12
Procedimento: Exemplo

Como executar (chamar) o procedimento?


Como saber quais os procedimentos criados?
Stored Procedures
13
Procedimento: Exemplo
 Executar o procedimento:

 Procedimentos criados:

 Detalhes dos procedimentos criados:

\G mostrar o resultado no sentido vertical


Stored Procedures
14
Banco de Dados EMPRESA

Stored Procedures
15
Banco de Dados EMPRESA
Funcionário (1/2)
cod func nome depto funcao salario
1 Carlos Macedo Cerri 3 Vendedor 1530,00
2 Henrique Souza Marcos 2 Gerente 1985,75
3 Adriana Araujo da Silva 3 Secretaria 1200,50
4 Solange Aparecida Souza 5 Supervisor 1599,51
5 Marcelo Amorim Pacheco 3 Analista 2250,11
6 Celia Assis do Amaral 2 Secretaria 1200,50
7 Wilson Campos Macedo 3 Programador 1050,00
8 Augusto Aguiar Souza 3 Programador 1050,00
9 Jessica Alves Toledo 2 Supervisor 1700,00

10 Vitoria Cruz Almeida 2 Analista 2000,00


11 Marcio Canuto dos Santos 2 Programador 1200,00
12 Cristina Cachoeira Buzzi 5 Supervisor 1950,00
Stored Procedures
16
Banco de Dados EMPRESA
Funcionário (2/2)
cod func nome depto admissao filhos
1 Carlos Macedo Cerri 3 25/05/2010 null
2 Henrique Souza Marcos 2 01/07/2009 2
3 Adriana Araujo da Silva 3 10/07/2010 1
4 Solange Aparecida Souza 5 08/12/2006 3
5 Marcelo Amorim Pacheco 3 06/06/2005 null
6 Celia Assis do Amaral 2 10/01/2009 1
7 Wilson Campos Macedo 3 07/11/2012 null
8 Augusto Aguiar Souza 3 26/05/2010 null
9 Jessica Alves Toledo 2 05/07/2006 4

10 Vitoria Cruz Almeida 2 23/05/2006 1


11 Marcio Canuto dos Santos 2 29/07/2008 null
12 Cristina Cachoeira Buzzi 5 14/07/2011 2
Stored Procedures
17
Seleção Funcionário

Stored Procedures
18
Stored Procedures: Parâmetros
 Três modos de parâmetros que podem ser
declarados:
 IN - Indica que o parâmetro é de entrada (Default)
 OUT - Indica que o parâmetro é de saída
 INOUT - Indica que o parâmetro é de entrada e saída

 Sintaxe:
[ IN | OUT | INOUT ] nome_parametro tipo
 Tipo: Qualquer tipo de dados válido no MySQL

Stored Procedures
19
Parâmetro de Entrada (Exemplo)

@x = 4

Stored Procedures
20
Parâmetro: Passagem por Valor

Qual o valor de X?

Stored Procedures
21
Parâmetro: Passagem por Referência

E agora.
Qual o valor de X?

Stored Procedures
22
Parâmetro: Passagem por Referência

E agora.
Qual o valor de X?

Stored Procedures
23
Blocos de Funções

Stored Procedures
24
Parâmetro de Saída (Exemplo)

Stored Procedures
25
Parâmetro de Entrada/Saída (Exemplo)

Stored Procedures
26
Atualização Funcionário

Stored Procedures
27
Inserção Funcionário

Como é a chamada?
Stored Procedures
28
Variáveis Locais

Stored Procedures
29
Variáveis Locais (outra forma)

Stored Procedures
30
Escopo de Variáveis

Stored Procedures
31
Desvios Condicionais (IF THEN ELSE)

Stored Procedures
32
Desvios Condicionais (IF ELSEIF)

Stored Procedures
33
Desvios Condicionais (CASE)

Stored Procedures
34
Laço de Repetição (WHILE)

Stored Procedures
35
Exercício WHILE
Mostrar a saída do exemplo anterior em uma única linha.

Stored Procedures
36
Exercício
1. Criar o procedimento sp_ParImpar que
informa se um número é par ou ímpar.

2. Criar o procedimento sp_NomeMes que


exiba o nome do mês, de acordo com o
número (1=Jan, 2=Fev, 3=Mar, ..., 12=Dez).

3. Criar o procedimento sp_Pares que exiba


os números pares entre dois números
inteiros informados, sendo o 1º número
menor do que o 2º número).
Stored Procedures
37
Exercício1: Número Par ou Ímpar

Stored Procedures
38
Exercício 2: Nome do Mês

Stored Procedures
39
Exercício 3: Pares

Stored Procedures
40
Exercício 3: Pares (Outra Solução)

Stored Procedures
41
Procedimento e Função

 Procedimento
 pode ou não retornar valores
 pode retornar mais de um resultado

 Função
 OBRIGATORIAMENTE deve retornar um valor
 só retorna um único resultado

Stored Procedures
42
Stored Procedures – Sintaxe Função

Stored Procedures
43
Função: Exemplo
Qual o maior salário dos funcionários?

Stored Procedures
44
Função: Exemplo (Outra Forma)
Qual o maior salário dos funcionários?

Stored Procedures
45
Função: Exemplo
Qual o funcionário que possui o maior salário?

Stored Procedures
46
Leitura Recomendada

 Seção 9.6 do Capítulo 9:


 ELMASRI, R; NAVATHE, S. B. Sistemas de Banco de Dados.
4ª ed. São Paulo: Pearson, 2005.

 Capítulo 11:
 TONSIG, L. S. MySQL: Aprendendo na Prática. Rio de Janeiro:
Ciência Moderna, 2006.

Stored Procedures
47
Leitura Complementar
 FEUERSTEIN, S.; HARRISON, G. MySQL Stored
Procedure Programming. United States of America:
O'Reilly, 2006.

 DEV.MYSQL. 13.1.15 CREATE PROCEDURE and


CREATE FUNCTION Syntax. Disponível em:
<http://dev.mysql.com/doc/refman/5.5/en/create-
procedure.html>.

Stored Procedures
48

Vous aimerez peut-être aussi