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

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

BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.

Apresentações semelhantes


Apresentação em tema: "BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo."— Transcrição da apresentação:

1 BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo

2 Aula 19 Linguagem de Consulta a Banco de Dados Stored Procedures
Araújo

3 Stored Procedure ... Programa formado por variáveis, comandos SQL e comandos de controle de fluxo, compilado e armazenado no banco de dados Pode ser executado manualmente ou chamado por um programa de aplicação ou por outro procedimento armazenado Geralmente usado em tarefas repetitivas. Araújo

4 ... Stored Procedure ... Facilita a manutenção, pois uma alteração em stored procedure é feita apenas no servidor Aceita parâmetros de entrada e pode retornar resultados, além de indicar sucesso ou falha na execução Reduz tráfego de dados na rede, além de melhorar a performance de acesso aos dados Execução mais rápida que comandos SQL porque não precisa ser pré-compilada e otimizada a cada execução Araújo

5 ... Stored Procedure ... Tipos de stored procedure no SQL Server
Local – armazenada em servidor local Remota – armazenada em servidor remoto Definida pelo usuário – criada por usuário Do sistema (system stored procedure)– previamente criada e é componente do SGBD : sys.sp_columns, sys.sp_fkeys, sys.sp_helptrigger, sys,sp_helptext, sys.sp_databases, ... Araújo

6 ... Stored Procedure ... Usando Stored Procedure Execução mais rápida
Aplicação Tabela BD Comandos SQL Tabela BD Usando Stored Procedure Execução mais rápida Stored Procedure Aplicação Comandos SQL Araújo

7 ... Stored Procedure ... CREATE PROCEDURE nome-procedure @parametro1 tipo dado1, ... AS comandos sql CREATE PROCEDURE sp_aumenta_sal @dep decimal(2,1) parâmetros AS UPDATE [RH].[dbo].[Func] SET [sal] = sal WHERE ([cdd] aumenta salário para departamento e fator (parâmetros) informados EXEC sp_aumenta_sal P, execução aumenta 50% o salário dos funcionários do departamento de código P Araújo

8 ... Stored Procedure ... CREATE PROCEDURE nome-procedure @parametro1 tipo dado1, ... AS comandos sql CREATE PROCEDURE sp_aumenta_sal cria stored procedure @dep char(1), @fator decimal(2,1) parâmetros AS UPDATE Func SET sal = sal * @fator WHERE (cdd aumenta salário para departamento e fator (parâmetros) informados EXEC sp_aumenta_sal P, execução aumenta 50% o salário dos funcionários do departamento de código P Araújo

9 ... Stored Procedure ... create procedure sp_totdepa
@dep char(1) /* parâmetro */ as select cdd, count(*), sum(sal), avg(sal) from func where cdd group by cdd cria stored procedure sp_totdepa recebendo código do departamento como parâmetro sp_totdepa P /* executa a procedure */ exibe totais de funcionários, salários e média do departamento de código igual a P drop procedure sp_totdepa /* elimina procedura */ Araújo

10 ... Stored Procedure ... exec sp_inc_func 160, Ana, F, 1000.00, A, 180
CREATE procedure sp_inc_func inclui funcionário @mat char(1), @sal numeric int AS if exists (select mat from func where mat begin print 'Funcionário já existe‘ end else begin insert into func @cdd, @matchef ) print 'Funcionário ‘ + ' Incluído!‘ end exec sp_inc_func 160, Ana, F, , A, 180 Araújo

11 ... Stored Procedure ... Araújo
CREATE PROCEDURE SPDinamicaConsultaFunc @mat int , @nom char(5) decimal(7,2) parâmetros AS VARCHAR(1000) -- variável contém comando SQL a executar = ' SELECT mat, nom, sex, sal, cdd FROM Func WHERE 1=1 ' IF IS NOT NULL) montagem do comando select para executar BEGIN + ' AND mat = ' END IF IS NOT NULL) BEGIN + ' AND nom = ' + '''' + '''' END IF IS NOT NULL) BEGIN + ' AND sal = ' END EXECUTE -- executa SQL recém montado Araújo

12 ... Stored Procedure ... Araújo
CREATE PROCEDURE SPDinamicaConsultaFunc @mat int , @nom char(5) decimal(7,2) parâmetros AS VARCHAR(1000) -- variável contém comando SQL a executar = ' SELECT mat, nom, sex, sal, cdd FROM Func WHERE 1=1 ' IF IS NOT NULL) montagem do comando select para executar BEGIN + ' AND mat = ' END IF IS NOT NULL) BEGIN + ' AND nom = ' + '''' + '''' END IF IS NOT NULL) BEGIN + ' AND sal = ' END EXECUTE -- executa SQL recém montado exec SPDinamicaConsultaFunc NULL, NULL, NULL -- executa procedure exibe: mat, nom, sex, sal, cdd de todas linhas de Func Araújo

13 ... Stored Procedure ... mat nom sex sal cdd 100 Gil M 800.00 P
CREATE PROCEDURE SPDinamicaConsultaFunc @mat int , @nom char(5) decimal(7,2) AS ... exec SPDinamicaConsultaFunc NULL, NULL, NULL exibe: mat, nom, sex, sal, cdd de todas as linhas de Func mat nom sex sal cdd 100 Gil M P 110 Ana F A 120 Edu M P 130 Rui M A 140 Eli M P 150 Eva F M Araújo

14 ... Stored Procedure ... CREATE PROCEDURE SPDinamicaConsultaFunc @mat int , @nom char(5) decimal(7,2) AS ... exec SPDinamicaConsultaFunc NULL, NULL, exibe: mat, nom, sex, sal, cdd de quem tem sal = mat nom sex sal cdd 130 Rui M A 140 Eli M P Araújo

15 ... Stored Procedure CREATE PROCEDURE SPDinamicaConsultaFunc @mat int , @nom char(5) decimal(7,2) AS ... exec SPDinamicaConsultaFunc NULL, Ana, NULL exibe: mat, nom, sex, sal, cdd de quem tem nom = Ana mat nom sex sal cdd 110 Ana F A Araújo

16 ... Stored Procedure ... CREATE PROCEDURE SPDinamicaConsultaFunc @mat int , @nom char(5) decimal(7,2) AS ... exec SPDinamicaConsultaFunc NULL, Eva, exibe: mat, nom, sex, sal, cdd de quem tem nom = Eva e salário = mat nom sex sal cdd 110 Eva F A 160 Eva F V Araújo

17 ... Stored Procedure Facilita a manutenção, pois uma alteração em stored procedure é feita apenas no servidor Reduz tráfego de dados na rede, além de melhorar a performance de acesso aos dados Execução mais rápida que comandos SQL porque não precisa ser pré-compilada e otimizada a cada execução Aumenta a segurança, pois o uso de stored procedure não permite acesso às tabelas do banco de dados de forma direta Araújo


Carregar ppt "BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo."

Apresentações semelhantes


Anúncios Google