2008.2. Stored Procedures. Renata Viegas



Documentos relacionados

Procedimentos armazenados

SQL DML. Frederico D. Bortoloti

Projeto de Banco de Dados

Hugo Pedro Proença, 2007

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL Server Ferramenta de administração. SQL Server Management Studio. 1º passo conectar ao banco de dados 2ª Query (consulta) usando SQL

SQL Avançado Continuação. Renata Viegas

Principais Comandos SQL Usados no MySql

Laboratório 4. Base de Dados II 2008/2009

Linguagem SQL Parte I

Banco de Dados I SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Noções de. Microsoft SQL Server. Microsoft SQL Server

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Stored Procedures reduzem o tráfego na rede, pois são executadas pelo SGBD na máquina servidora de banco de dados.

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Laboratório de Banco de Dados II Aula 1. Stored Procedures

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

SQL Procedural. Josino Rodrigues Neto

Introdução ao SQL. Aécio Costa

Integridade dos Dados

CIÊNCIA E TECNOLOGIA DO RIO

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

Structured Query Language (SQL)

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Minicurso3 Introdução ao Banco de Dados MySQL

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Bases de Dados 2007/2008. Aula 8

RESPOSTA AO RECURSO = que corresponde a 260 decimal, alternativa A.

Múltiplas Tabelas. Disciplina de Banco de Dados

Linguagem SQL (Parte I)

Operação de União JOIN

UFES Universidade Federal do Espírito Santo Centro de Ciências Agrárias Departamento de Engenharia Rural Disciplina de Banco de Dados.

Introdução a Sistemas de Bancos de Dados

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Prof.: Clayton Maciel Costa

Bancos de Dados I. Integridade semântica

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Manual de Instalação ( Client / Server ) Versão 1.0

Modelo Cliente/Servidor Por HIARLY ALVES

ESTRUTURA DE SERVER Lílian Simão Oliveira

Manual de Instalação (TEF LOJA)

Linguagem SQL. Comandos Básicos

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Tarefa Orientada 18 Procedimentos armazenados

Banco de Dados. Maurício Edgar Stivanello

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Data Transformation Services (DTS) por Anderson Ferreira Souza

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Prof. Marcelo Machado Cunha

Programação com Acesso a Banco de Dados

Persistência de Dados

SQL. Prof. Márcio Bueno.

Programação SQL. Introdução

Introdução ao SQL. O que é SQL?

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

Lógica de Programação

Prof. Ronaldo R. Goldschmidt. geocities.yahoo.com.br/ronaldo_goldschmidt

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

Figura 01 Kernel de um Sistema Operacional

Profº Aldo Rocha. Banco de Dados

SISTEMA GERENCIADOR DE BANCO DE DADOS

Administração de Usuários e Privilégios no Banco de Dados

Manual do Visualizador NF e KEY BEST

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

DESENVOLVIMENTO DE SOFTWARE

BANCO DE DADOS II. AULA MySQL.

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Bases de Dados 2007/2008. Aula 1. Referências

Bases de Dados. Lab 1: Introdução ao ambiente

SCP - Sistema de Controle de Processo

MANUAL DO USUÁRIO DO SIE-SISTEMA DE INFORMAÇÃO PARA O ENSINO

17/10/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

Linguagem de Consulta - SQL

LISTA DE EXERCÍCIOS. 1. Binário: Bit: Menor unidade de dados; dígito binário (0,1) Byte: Grupo de bits que representa um único caractere


O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros:

Exercícios de SQL. Prof. Márcio Bueno.

NOME SEXO CPF NASCIMENTO SALARIO

Outlook XML Reader Versão Manual de Instalação e Demonstração UNE Tecnologia

EXERCÍCIOS PRÁTICOS. Banco de Dados

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

Treinamento sobre SQL

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr

Comm5 Tecnologia Protocolo MI. Protocolo. Família MI

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

Introdução ao SQL Avançado

Curso PHP Aula 08. Bruno Falcão

Treinamento. DBA Oracle 11g. Duração: 120 horas

SQL/DQL Stored Procedures (Procedimentos armazenados) Sintaxe básica de Stored Procedure:

Transcrição:

Renata Viegas

Definição Conjunto de comandos SQL que são compilados e armazenados no servidor Características Podem ser armazenados no banco de dados e acionados por qualquer programa aplicativo que tenha autorização para execução

Características Uma Stored Procedure (sp) é executada no lado do servidor e seu plano de execução fica na memória, agilizando as próximas chamadas Podem receber um ou mais parâmetros formais Pode retornar diversos valores como parâmetro de saída (output)

Classificação das Stored Procedure: definidas pelo usuário System Stored Procedure: disponibilizadas pelo sistema de banco de dados para execução de tarefas administrativas Podem ser executadas em qualquer banco Estão armazenadas no banco de dados master Todas as stored procedures iniciam por sp_

System Stored Procedure: Exemplos de System : sp_helpdb: exibe informações sobre um BD específico sp_addtype: define novos tipos de dados sp_droplogin: remove um usuário do SQL Server

Vantagens: Desempenho Ex.: Seja a consulta SELECT codigop, nome, COUNT(*) FROM Projeto p, Alocacao a WHERE p.codproj = a.codigop GROUP BY p.codproj, p.nome Se vários usuários realizarem esta consulta o tráfego de rede será alto. No entanto, se criarmos uma stored procedure para executar esta consulta, os usuário necessitaram apenas de um comando para executar a consulta anterior: EXEC nomeprocedimento;

Manutenção Facilita o gerenciamento Encapsulam rotinas de uso freqüente no próprio servidor, estando disponível para várias aplicações Parte da lógica do sistema pode ser armazenada no próprio BD, em vez de ser codificada em várias aplicações

Sintaxe CREATE PROCEDURE <nome> [parâmetro] AS <instrução SQL> Regras O nome da procedure deve seguir as regras para criação de identificadores Nome do parâmetro deve iniciar por @ e deve ser único na lista de argumentos, seguido do seu tipo @mes int, @ano int, @nome varchar Todos os parâmetros são considerados de entrada, exceto se houver OUTPUT após sua definição

Para ser executada, é necessário fazer uma chamada ao comando EXECUTE EXEC[UTE] <nome da sp> [valor do parâmetro]

CREATE PROCEDURE MostraEmpregadosDep @nomedep varchar(50) = Pessoal AS SELECT e.mat, e.nome, e.endereco, e.salario FROM Empregados e, Departamento d WHERE e.codd = d.codd and d.nomed = @nomedep Uma chamada a este procedimento seria: EXEC MostraEmpregadosDep Informatica

Exemplo: Criar uma procedure que exiba o título e a editora de cada livro. CREATE PROCEDURE listar AS SELECT l.titulo, e.nome FROM livro l, editora e WHERE l.codedit = e.codedit EXEC listar

Exemplo: Criar uma procedure que exiba o total de salários pagos a um determinado setor da empresa. CREATE PROCEDURE sptotalsal @setor char(3) AS SELECT SUM(salario) FROM funcionario WHERE setor = @setor EXEC sptotalsal INF

- Exemplos Modelo Relacional Exemplo: SCP Crie : SP1 tem como parâmetro de entrada o código do funcionário, e mostra todas as datas dos pedidos que foram feitos por este funcionário. SP2 mostra todos os pedidos realizados no dia 23/08/2007

- Exemplos SP3 tem como parâmetros de entrada o código do cliente e o código da cidade que o cliente mora, e mostra os nomes dos produtos comprados por este cliente, e o estado que o cliente mora. SP4 tem como parâmetro de entrada a sigla do setor, e mostra quantos funcionários existe neste setor, e uma soma do salários pagos aos funcionários.

com parâmetros de saída Obtenha a quantidade de mensagens que o usuário aluno1 recebeu. CREATE PROCEDURE getnummens @usuario char(8), @quant smallint OUTPUT AS SELECT @quant=count(*) Criação FROM da si_recebedor procedure getnummens com 1 parâmetro WHERE destinatario entrada = @usuario (@usuario) e 1 parâmetro de saída (@quant). O valor retornado pelo SELECT é armazenado na variável @quant

com parâmetros de saída Chamada: 1. USE javamail O banco javamail é selecionado 2. DECLARE @quant smallint Em seguida, é declarada a variável de saída @quant. 3. EXECUTE getnummens aluno1, @quant OUTPUT 4. SELECT @quant quantidade Na execução da procedure, aluno1 é o parâmetro de entrada e @quant recebe o valor que virá de dentro da procedure Por fim, o comando SELECT se encarrega de exibir o resultado que a variável @quant recebeu

com parâmetros de saída 1. USE javamail 2. DECLARE @quant smallint 3. EXECUTE getnummens aluno1, @quant OUTPUT 4. SELECT @quant quantidade

com parâmetros de saída Criar uma procedure que receba o câmbio do dolar, a quantidade de reais, e retorne o valor convertido em dolares. CREATE PROCEDURE spcambio @dolar decimal(4,2), @reais decimal(7,2), @final decimal(7,2) output AS SELECT @final = @reais/@dolar

com parâmetros de saída Executando a procedure... DECLARE @res decimal(7,2) EXEC spcambio 2.33, 2500, @res output SELECT @res Conversao