Académique Documents
Professionnel Documents
Culture Documents
Stored Procedures
Stored Procedures
2
Stored Procedures
Aumento no desempenho
menos informação
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
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
Dependência do SGBD
Stored Procedures
7
Banco de Dados Teste
Criar BD Teste
Stored Procedures
8
DELIMITER
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
Stored Procedures
12
Procedimento: Exemplo
Procedimentos criados:
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
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.
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
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.
Stored Procedures
48