Aula 09-10-2023 - Stored Procedures

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 22

Plano de aula

Banco de Dados : Stored Procedures Procedimentos Armazenados


Parâmetros
Prof. Ovídio Francisco Variávies
Estruturas de controle
Exercícios
Introdução
O contexto

O gerenciamento de bancos de dados, de maneira


geral, possui processos que podem ser automatizados.

Por exemplo:

● Inserir e atualizar registros


● Fazer consultas parametrizadas
● Backups
● Implementar regras de negócio
● Validar dados
● Encapsular comandos sensíveis como DELETE,
INSERT, UPDATE…

Stored Procedures Prof. Ovídio Francisco


O contexto

Uma Stored Procedure é uma rotina armazenada no


banco de dados.

Podem conter comandos SQL, além de algoritmos com


variáveis, loops e estruturas de decisão.

Uma procedure é semelhante a um método na linguagem


Java ou Python.

Podem ainda ser usadas para restringir acesso a grupos de


usuários, aumentando com isso a segurança do banco de
dados.

Assim, é possível agilizar processos na aplicação.

Stored Procedures Prof. Ovídio Francisco


Stored Procedures
Stored Procedures

Veja abaixo a sintaxe mínima para criação de uma Stored Procedure:

Stored Procedures Prof. Ovídio Francisco


Stored Procedures

Para criar uma procedure que simplesmente seleciona dados:

Stored Procedures Prof. Ovídio Francisco


Stored Procedures

Para esse exemplo considere as seguintes tabelas:

Stored Procedures Prof. Ovídio Francisco


Stored Procedures - Delimiters

Como você já sabe, todo comando SQL deve terminar com um ";",
chamado delimiter.

A criação de uma Stored Procedure é um comando que, a


princípio, deve terminar com ";".

https://dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html
Stored Procedures Prof. Ovídio Francisco
Stored Procedures - Delimiters

Ocorre que os comandos dentro de uma Stored Procedure


também devem terminar com um ";". Então desse jeito, temos
um conflito:

- Um ";" encerra um comando dentro da procedure ou encerra


a própria Procedure?

Para resolver isso, a SQL nos permite alterar o delimiter padrão


como o comando:

delimiter $

https://dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html
Stored Procedures Prof. Ovídio Francisco
Stored Procedures - Delimiters

Devemos então:
1. Alterar o delimitador para ”$”;
2. Criar a procedure e encerrá-la com o novo delimitador ”$”;
3. Alterar novamente o delimitador para ”;”

O comando completo para criação da procedure do exemplo é:

https://dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html
Stored Procedures Prof. Ovídio Francisco
Stored Procedures

Uma procedure é executada por meio do comando call:

Stored Procedures Prof. Ovídio Francisco


Parâmetros
Stored Procedures

Uma procedure também pode receber parâmetros:

Stored Procedures Prof. Ovídio Francisco


Stored Procedures

Uma procedure também pode receber parâmetros:

Parâmetro de
Entrada

Stored Procedures Prof. Ovídio Francisco


Stored Procedures

Considere a necessidade de criar um produto,


informando seus dados e o nome da marca.

Assim, o sistema deve encontrar o id da marca


e cadastrar junto aos demais dados do
produto.

Stored Procedures Prof. Ovídio Francisco


Stored Procedures
É possível ainda criar variáveis para gerar dados:

Stored Procedures Prof. Ovídio Francisco


Stored Procedures
É possível ainda criar variáveis para gerar dados:

Seleciona o id da
marca especificada

Calcula o lucro

Stored Procedures Prof. Ovídio Francisco


Stored Procedures
O seguinte trecho de código

gera:

Stored Procedures Prof. Ovídio Francisco


Para saber mais...

https://dev.mysql.com/doc/refman/8.0/en/create-procedure.html

https://medium.com/@peter.lafferty/mysql-stored-procedures-101-6b4fe230967

https://www.a2hosting.com/kb/developer-corner/mysql/mysql-stored-functions-and-pro
cedures

https://www.w3resource.com/mysql/mysql-procedure.php

https://www.paladion.net/blogs/are-stored-procedures-safe-against-sql-injection

https://dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html

Stored Procedures Prof. Ovídio Francisco


Exercícios
Exercícios

● Crie um banco de dados para armazenar alunos, cursos e


professores de uma universidade.

● Faça a modelagem do banco e identifique as entidades, seus


atributos e relacionamentos.

● Crie o modelo físico do banco de dados (script SQL).

● Utilize Stored Procedures para automatizar a inserção e seleção


dos cursos.

● O aluno possui um email que deve ter seu endereço gerado


automaticamente no seguinte formato:

[email protected]

(Desafio) - Como fica o email se duas pessoas tiverem o mesmo nome e


sobrenome?

Stored Procedures Prof. Ovídio Francisco

Você também pode gostar