Stored Procedures e Triggers

Documentos relacionados
Triggers(Gatilhos) Tiago Alves de Oliveira

BANCO DE DADOS TRIGGERS (GATILHOS) Prof. Fabiano Papaiz IFRN

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Prof. Josenildo Silva

26/04/2017 Triggers no SQL Server: teoria e prática aplicada em uma situação real

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Banco de Dados I Introdução SQL

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

BANCO DE DADOS II Stored Procedure. COTEMIG Gerson Borges

Linguagem SQL Restrições, Triggers e Views

BD II (SI 587) Procedimentos Armazenados

f. Exemplo: verificar condição de aprovação de alunos


IMPLEMENTAÇÃO DE BANCO DE DADOS

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

TRIGGERS Temas abordados

BANCO DE DADOS GERENCIAL 1 A U L A 2

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

Banco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

SISTEMAS DE INFORMAÇÃO

Revisão de Bancos de Dados

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Introdução em Banco de Dados

Fundamentos de Banco de Dados Postgre com Sql

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 09a- Acessando os dados através JDBC

trigger insert, delete, update

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

ESTUDO DE CASO EM PL/SQL

Bancos de Dados I. Integridade semântica

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

BANCO DE DADOS PARA WEB

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

A linguagem SQL

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

BD II (SI 587) Segurança em Banco de Dados. Josenildo Silva.

Restrições de Integridade Semântica

Triggers em SQLite. Fernando Lobo. Base de Dados, Universidade do Algarve

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Múltiplas Tabelas. Disciplina de Banco de Dados

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

Operação de União JOIN

BDII SQL DML II Revisão 8

ACESSO AO BANCO DE DADOS PARTE 2 ALTERAÇÃO, EXCLUSÃO E INCLUSÃO DE REGISTROS

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Aula 12 Revisão. Prof. Filipe Wall Mutz

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

Banco de Dados. Professora: Luciana Faria

BANCO DE DADOS. Vinícius Pádua

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Oracle PL/SQL Triggers

Tarefa Orientada 17 Scripts

Funções Definidas pelo Usuário

Views. uma view é uma tabela virtual. não existe fisicamente na BD. é definida à custa de outras tabelas ou views. CREATE VIEW <nome> AS <query>;

Banco de Dados II. Administração do SGBD Oracle. Tablespaces, usuários, privilégios, papéis e perfis. Gustavo Dibbern Piva

SQL Gatilhos (Triggers)

Stored Procedures. Renata Viegas

Banco de Dados SQL injection

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Transcrição:

e Triggers Professor: Ricardo Luis dos Santos IFSUL 2015

Agenda Rotinas Armazenadas Stored Procedures Exemplos Triggers Exemplos Exercícios 2

Rotinas Armazendas Rotinas Armazenadas são um conjunto de comandos SQL armazenados em SGBD (Sistema Gerenciador de Banco de Dados) Rotinas Armazenadas podem ser Stored Procedures ou Procedimentos Armazenados Triggers ou Gatilhos 3

Stored Procedures são rotinas armazenadas que devem ser executadas por intermédio de invocações explícitas do usuário COMANDO CREATE PROCEDURE minha_procedure() CALL CALL EXIBIR_VENDEDORES(); CALL MOSTRA_VENDAS(); CALL CALCULAR_COMISSAO(); 4

Exemplo de uma stored procedure 5

Exemplo Bloco de comandos de uma que forma stored o procedure stored procedure Substitui temporariamente o ; enquanto símbolo finalizador de comandos SQL Comando para criação de um stored procedure Comandos SQL que compõem o stored procedure 6

Utilizamos o comando CALL para executar um stored procedure 7

Stored procedures são criados para serem utilizados diversas vezes no futuro Mas se, por algum motivo, você precisar apagar o stored procedure, pode usar o comando DROP DROP PROCEDURE EXIBIR_VENDEDORES; 8

Assim como as funções, um stored procedure pode receber utilizar parâmetros, utilizando a sintaxe (MODO nome TIPO... ) nome - Nome do parâmetro, segue as mesmas regras das variáveis tipo - Tipo do parâmetro (Int, Varchar, Decimal, entre outros) MODO IN Indica que o parâmetro é de entrada de dados OUT Indica que o parâmetro é de retorno de dados INOUT Indica que o parâmetro será utilizado para entrada e retorno dos dados 9

Exemplo de Stored Procedure com IN O que esse stored procedure faz? 10

Exemplo de Stored Procedure com IN 11

Exemplo de Stored Procedure com OUT 12

Exemplo de Stored Procedure com OUT Essa instrução nos permite armazenar o resultado em uma determinada variável 13

Exemplo de Stored Procedure com OUT 14

Exemplo de Stored Procedure com INOUT 15

Exemplo de Stored Procedure com INOUT 16

Exemplo de Stored Procedure com diversos parâmetros 17

Exemplo de Stored Procedure com diversos parâmetros 18

Obviamente podemos encapsular um stored procedure dentro de outro Podemos inclusive fazer a retirada da chata passagem de parâmetros 19

Invocando Note Agora não precisamos criar as variáveis de output Não precisamos fazer o select das variáveis 20

Vamos criar um novo banco de dados 21

Crie a seguinte stored procedure 22

Crie a seguinte stored procedure Observe os vários resultados gerados, olhe para cada um deles 23

TRIGGERS 24

Triggers Triggers ou Gatilhos são rotinas armazenadas associadas a eventos percebidos automaticamente pelo SGBD Não há a necessidade de invocarmos explicitamente tais rotinas para estas serem executadas Quando um determinado evento programado ocorre, a trigger (gatilho) é disparado automaticamente 25

Triggers DELETE FROM PRODUTO WHERE CODPRODUTO = 1; Quando a tabela ItemPedido foi criado, foi definida uma chave estrangeira para Produto Foi utilizada uma cláusula ON DELETE RESTRICT foi utilizada Assim um erro é gerado ao tentar excluir um produto que possua pedidos cadastrados 26

Triggers Criando um trigger que dispara sempre que ocorre uma exclusão em PRODUTO 27

Triggers Instrução que permite criar uma Criando um trigger que dispara sempre que trigger ocorre uma exclusão em PRODUTO Código que será executado quando a trigger é disparada 28

Triggers Define qual evento disparará a trigger. Os valores aceitos são: Criando um trigger que dispara sempre que ocorre INSERT, REPLACE, DELETE ou UPDATE uma exclusão em PRODUTO Tabela na qual a trigger ficará monitorando eventos Define que a trigger será executada antes da operação que a disparou. Os valores aceitos são: BEFORE: executa a trigger antes da operação AFTER: executa a trigger depois da operação 29

Triggers Criando um trigger que dispara sempre que ocorre uma exclusão em PRODUTO Dados utilizados nas instruções OLD (dados antigos) e NEW (novos dados). Lembrando que: Triggers sobre INSERT possuem apenas NEW Triggers sobre DELETE possuem apenas OLD Triggers sobre UPDATE ou REPLACE possuem ambos OLD e NEW 30

Triggers Criando um trigger que dispara sempre que ocorre uma exclusão em PRODUTO Dados utilizados nas instruções OLD (dados antigos) e NEW (novos dados). Lembrando que: Triggers sobre INSERT possuem apenas NEW Triggers sobre DELETE possuem apenas OLD Triggers sobre UPDATE ou REPLACE possuem ambos OLD e NEW 31

Triggers Vamos fazer algumas alterações no BANCO_DO_BUTUCA 32

Triggers Vamos fazer algumas alterações no BANCO_DO_BUTUCA O que esse trigger faz? 33

Triggers Vamos fazer algumas alterações no BANCO_DO_BUTUCA 34

EXERCÍCIOS Utilizando o BD compubras crie os seguintes stored procedures 1. Exiba a quantidade total vendida dos produtos (group by por codproduto) (exibir id, nome do produto e quantidade) 2. Exiba todas as vendas efetuadas (número do pedido, cliente, total da venda e o vendedor) 3. Calcule a comissão para todos os vendedores com base nas vendas do mês/ano (mês e ano serão parâmetros IN) 35

EXERCÍCIOS Utilizando o BD banco_do_butuca crie os seguintes stored procedures 1. Efetuar o saque em uma conta corrente 2. Efetuar o depósito em uma conta corrente 3. Listar contas com saldo maior que o valor informado 4. Setar o saldo de todas as contas (valor informado) REMOVER O SAFE UPDATES NAS CONFIGS 36

EXERCÍCIOS Utilizando o BD banco_do_butuca crie os seguintes triggers 1. Ao deletar uma conta apague também as movimentações salvas (AFTER) 2. Ao criar uma conta salvar um registro em movimentação com saldo antigo e atual igual a 0 (AFTER) 3. Antes de cadastrar uma nova conta verifique se o saldo informado é igual a 0, se não for setar para 0 (BEFORE) 4. Antes de deletar uma conta, salvar um registro em movimentação de que a conta está zerada (BEFORE) 37

e Triggers Professor: Ricardo Luis dos Santos IFSUL 2015