A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Banco de Dados Prof. MSc Wagner Siqueira Cavalcante.

Apresentações semelhantes


Apresentação em tema: "Banco de Dados Prof. MSc Wagner Siqueira Cavalcante."— Transcrição da apresentação:

1 Banco de Dados Prof. MSc Wagner Siqueira Cavalcante

2 Banco de Dados: Stored Procedures e Triggers BD – Stored Procedures e Triggers  Stored Procedure é um conjunto de instruções escrito numa linguagem própria para procedures (procedimentos) e triggers (gatilhos) do SGBD, e que é armazenado como parte do banco de dados.  Stored Procedures reduzem o tráfego na rede, pois são executadas pelo SGBD na máquina servidora de banco de dados.  Stored Procedures não permitem instruções DDL...  Triggers são quase a mesma coisa que stored procedures, exceto pelo modo como são chamadas (e mais alguns pequenos detalhes): –Stored procedures podem ser chamadas por aplicações cliente, outras stored procedures ou triggers. –Triggers são chamados automaticamente quando uma alteração em uma linha da tabela em questão ocorre.

3 Stored Procedures BD – Stored Procedures  Sintaxe de Stored Procedures: CREATE or ALTER PROCEDURE NomedaProcedure ( ) RETURNS AS BEGIN END Parâmetros de entrada:Valores iniciais, que servem para estabelecer o comportamento do procedimento (todos os tipos, exceto BLOB ou ARRAY). Parâmetros de saída:Valores que retornam os resultados desejados, executados pelo procedimento (idem ao acima). Comandos da procedure:Conjunto de instruções SQL...

4 Um livro é escrito por um ou mais escritores, e os registram em uma única Editora, que pode publicar nenhum, um ou vários livros. Porém, nem todos estes livros conseguem ser lançados, embora já estejam registrados. Cada livro está associado a um determinado assunto, e pode ser escrito por um ou vários autores, os quais, por sua vez, podem escrever tantos livros quantos queiram. Autor-Livro Editora Código Nome 0,N 1,N 0,1 é de um publica Lançamento Preço 0,N Livro Código Data de contrato 1,N Autor Matrícula Nome CPF Data de nascimento Endereço pais 1,1 Sigla Descrição Assunto BD – Stored Procedures

5 Tabela AUTOR MATR.NOMECPFENDERECONASCIMpais 501Rogério Luís de C. Costa12345678901Rua Dom Pedro I, 11101/01/1971BR 502Chris Gane11111111111Av La Rue, XV02/02/1952US 503Trish Sarson333333333335th Ave, 33303/03/1963US 505Rogério Matoso Capim44444444444Praça do Centro, banco 404/04/1974BR 507Roger Martin Duvalle55555555555Av Ces La Vue, 55505/05/1985FR 510José Antônio da Silva66666666666Rua 6 de Outubro, 60606/06/1976BR 511Elmasri777777777775th Ave, 77707/07/1967US 521Navathe888888888885th Ave, 88808/08/1958IN 533Silberschatz999999999992nd Ave, 99909/09/1969NO... Um livro é escrito por um ou mais escritores, e os registram em uma única Editora, que pode publicar nenhum, um ou vários livros. Porém, nem todos estes livros conseguem ser lançados, embora já estejam registrados. Cada livro está associado a um determinado assunto, e pode ser escrito por um ou vários autores, os quais, por sua vez, podem escrever tantos livros quantos queiram. Por enquanto, considere apenas a tabela Autor...

6 Tabela AUTOR MATR.NOMECPFENDERECONASCIMpais 501Rogério Luís de C. Costa12345678901Rua Dom Pedro I, 11101/01/1971BR 502Chris Gane11111111111Av La Rue, XV02/02/1952US 503Trish Sarson333333333335th Ave, 33303/03/1963US 505Rogério Matoso Capim44444444444Praça do Centro, banco 404/04/1974BR 507Roger Martin Duvalle55555555555Av Ces La Vue, 55505/05/1985FR 510José Antônio da Silva66666666666Rua 6 de Outubro, 60606/06/1976BR 511Elmasri777777777775th Ave, 77707/07/1967US 521Navathe888888888885th Ave, 88808/08/1958IN 533Silberschatz999999999992nd Ave, 99909/09/1969NO...  Exemplo 01: –Projete o nome, nascimento e país do autor, cujo código é igual a 505: Select nome, nascim, pais From Autor Where Matricula = 505 BD – Stored Procedures

7 Resultado da Consulta: NOMENASCIMpais Rogério Matoso Capim04/04/1974BR  Exemplo 01 (continuação): –Projete o nome, nascimento e país do autor, cujo código será digitado em uma caixa de diálogo: Select nome, nascim, pais From Autor Where Matricula = 505 BD – Stored Procedures Há só UMA resposta!

8 EEEExemplo 01 (continuação): –A–A–A–A seguir, crie um procedimento para executar esta situação: IIIInicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome “SP_Dados_Autor”. set term^ ;CREATE orALTERPROCEDURESP_Dados_Autor (i_codigosmallint) RETURNS (o_nomevarchar(80), o_Nascimdate, o_paisvarchar(30) ) AS BEGIN Selectnome, nascim, pais FromAutor Wherematricula = :i_codigo INTO:o_nome, :o_Nascim, :o_pais; SUSPEND; END^ set term; ^ BD – Stored Procedures Select nome, nascim, pais Firom Autor Where Matricula = 505

9 CREATE orALTERPROCEDURESP_Dados_Autor (i_codigo smallint) RETURNS (o_nome varchar(80), o_Nascim date, o_pais varchar(30) )ASBEGIN Select nome, nascim, pais From Autor Where matricula = :i_codigo INTO:o_nome, :o_Nascim, :o_pais; SUSPEND;END^ BD – Stored Procedures  Exemplo 01 (final): –E para usar o procedimento criado? SELECT * FROMSP_Dados_Autor ( 505 );

10 Tabela AUTOR MATR.NOMECPFENDERECONASCIMPAIS 501Rogério Luís de C. Costa12345678901Rua Dom Pedro I, 11101/01/1971BR 502Chris Gane11111111111Av La Rue, XV02/02/1952US 503Trish Sarson333333333335th Ave, 33303/03/1963US 505Rogério Matoso Capim44444444444Praça do Centro, banco 404/04/1974BR 507Roger Martin Duvalle55555555555Av Ces La Vue, 55505/05/1985FR 510José Antônio da Silva66666666666Rua 6 de Outubro, 60606/06/1976BR 511Elmasri777777777775th Ave, 77707/07/1967US 521Navathe888888888885th Ave, 88808/08/1958IN 533Silberschatz999999999992nd Ave, 99909/09/1969NO... BD – Stored Procedures  Exemplo 02: –Agora, experimente projetar os nomes, nascimento e países dos autores, cujo país seja igual ao informado: Select nome, nascim, pais From Autor Where pais = 'BR'

11 Resultado da Consulta NOMENASCIMPAIS Rogério Luís de C. Costa01/01/1971BR Rogério Matoso Capim04/04/1974BR José Antônio da Silva06/06/1976BR BD – Stored Procedures  Exemplo 02 (continuação): –Agora, experimente projetar os nomes, nascimento e países dos autores, cujo país seja igual ao informado: Select nome, nascim, pais From Autor Where pais = 'BR’ Há MAIS QUE UMA resposta!

12  Exemplo 02 (continuação): –Crie, então, o procedimento armazenado para executar esta situação:  Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome “dadosproprietario2” e a execute. CREATE orALTERPROCEDURESP_Dados_Autor2 (in_paisvarchar(30)) RETURNS (out_Nomevarchar(80), out_Nascimdate, out_paisvarchar(30) ) AS BEGIN INTO:out_Nome, :out_Nascim, :out_pais; SUSPEND; END BD – Stored Procedures Select nome, nascim, pais From Autor Where pais = :in_pais

13  Exemplo 02 (continuação): –Crie, então, o procedimento armazenado para executar esta situação:  Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome “dadosproprietario2” e a execute. CREATE orALTERPROCEDURESP_Dados_Autor2 (in_pais varchar(30)) RETURNS (out_Nome varchar(80), out_Nascim date, out_pais varchar(30) )ASBEGIN Select nome, nascim, pais From Autor Where pais = :in_pais INTO:out_Nome, :out_Nascim, :out_pais; SUSPEND;END BD – Stored Procedures Oops! Problemas, já que há mais que uma resposta! Usar:FOR SELECT... DOSUSPEND;

14  Exemplo 02 (continuação): –Crie, então, o procedimento armazenado para executar esta situação:  Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome “dadosproprietario2” e a execute. CREATE orALTERPROCEDURESP_Dados_Autor2 (in_pais varchar(30)) RETURNS (out_Nome varchar(80), out_Nascim date, out_pais varchar(30) )ASBEGIN FORSelect nome, nascim, pais From Autor Where pais = :in_pais INTO:out_Nome, :out_Nascim, :out_pais DOSUSPEND;END BD – Stored Procedures Agora, sem o “;” aqui

15  Exemplo 02 (continuação): –E para usar o procedimento criado? CREATE or ALTER PROCEDURESP_Dados_Autor2 (in_paisvarchar(30)) RETURNS (Out_Nome varchar(80), Out_nascim date, Out_pais varchar(30) )ASBEGIN FOR Select nome, nascim, pais From Autor Where pais =:in_pais INTO:Out_nome, :Out_nascim, :Out_pais DOSUSPEND;END BD – Stored Procedures SELECT * FROMSP_Dados_Autor2 ( ‘BR’ ); CREATE or ALTER PROCEDURESP_Dados_Autor2 (in_paisvarchar(30)) RETURNS (Out_Nome varchar(80), Out_nascim date, Out_pais varchar(30) )ASBEGIN FOR Select nome, nascim, pais From Autor Where pais =:in_pais INTO:Out_nome, :Out_nascim, :Out_pais DOSUSPEND;ENDSP_Dados_Autor2 (in_pais ) :in_pais

16  Exemplo 02 (final): –Experimente, também: BD – Stored Procedures SELECT nome as “Nome do autor” FROMSP_Dados_Autor2 ( :”Digite o país” );

17  Exercício 01: –Crie um procedimento para calcular o valor médio dos livros de uma determinada editora, informada como parâmetro. –Salve-o com o nome de “SP_avglivros” –Compile-o e efetive-o (commit) –Chame-o, via SQL, com o parâmetro predefinido (‘Brasoft Editora’, por exemplo) BD – Stored Procedures  Exercício 02: –Projete os títulos, datas de lançamento e valores dos livros que têm o seu valor maior que o valor médio daquele informado via argumento de entrada, baseado no procedimento “avglivros”.


Carregar ppt "Banco de Dados Prof. MSc Wagner Siqueira Cavalcante."

Apresentações semelhantes


Anúncios Google