Stored Procedure, Function and Trigger

Slides:



Advertisements
Apresentações semelhantes
Palestras, oficinas e outras atividades
Advertisements

Circuitos Lógicos e Organização de Computadores Capítulo 6 – Blocos com Circuitos Combinacionais Ricardo Pannain
Banco de Dados SQL Stored Procedures
Sumário, aula 10 Exercícios sobre elasticidade Elasticidade e despesa
Triggers Marilde Santos.
Sequences Marilde Santos. O que são Sequences? Valores sequenciais podem ser gerados automaticamente pelo Oracle com o uso de sequences. A sequence gera.
Manipulação de Arquivos de Dados
Java: Comandos Básicos
MC542 Organização de Computadores Teoria e Prática
While While Condição // comandos End While. Exemplos While Var contador As Integer contador = 0 While (contador < 10) contador += 1 console.ConsoleWrite(contador)
Classificação. 2 Métodos de Classificação Os métodos de classificação podem ser dos tipos: Classificação interna – quando toda a coleção de itens a classificar.
Listas Encadeadas Circulares Listas Duplamente Encadeadas
1 A Linguagem SQL Todo Banco de Dados apresenta uma Linguagem para definição e uma para manipulação de dados. Com relação aos Bancos de Dados Relacionais,
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
PL/SQL (Procedural Language/Structured Query Language)
Procedimentos e Funções
Ronaldo Celso Messias Correia
Html5- Desenvolvendo Aplicações. Html5- Introdução a SQL Métodos OpenDatabase (utilizado para criar ou abrir uma Base de Dados); Transaction (permite.
Capítulo 4 Controle de fluxo. 2Capítulo 4 – Controle de fluxo Controle de fluxo if / else switch / case while do / while for break / continue Instruções.
Grupo Paralelismo – Unesp RC
FORTRAN 90 Denise Yumi Takamura.
SQL Procedural Junho/2006.
SQL procedural – parte 2.
Subconsultas em SQL. Subconsulta Estrutura geral SELECT.... FROM.... WHERE [at] OPERADOR ( SELECT... FROM... [WHERE... ]) Declaração SELECT localizada.
Funções de Linha 17/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
Funções de Linha 24/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Sql-3 ( final ).
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
Teste Estrutural de Software
Mais sobre classes Baseada no Livro: Deitel&Deitel - C++ How To program Cap. 7 Prentice Hall 1994 SCE 213 Programação Orientada a Objetos, ICMC - USP 2.
Aplicação com PHP Desenvolvendo. Conteúdo parte 2 Um script MySQL para a table (blg_blog.sql) e um script para popular a table com uma conta de administrador.
Formação de Administradores de Redes Linux LPI – level 1 SENAC TI Fernando Costa SQL (Structure Query Language)
Curso Técnico em Informática La Salle - Canoas
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Entendendo as definições de classe
The Data Warehouse Toolkit
Transporte Escolar Fluvial
Provas de Concursos Anteriores
Banco de dados Profª Kelly Medeiros.
© GfK 2012 | Title of presentation | DD. Month
Microsoft SQL Server 2008 SPARSE. Ambiente de teste Uma tabela é criada com 3 campos: CREATE TABLE [dbo].[Cliente_com_campos_basicos] ( [IdCliente] int.
Usando Java no Oracle Por Edson Almeida Junior
Prof. Eduardo Mantovani Prof. Fábio de P. Santos AES 2007.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
HandyBoard & Interactive C. HandyBoard Especificações –Clock de 2 MHz –32 Kb de RAM –7 entradas para sensores analógicos –9 entradas para sensores digitais.
MINISTÉRIO DO PLANEJAMENTO Projeto de Lei Orçamentária 2011 Ministro Paulo Bernardo Silva Brasília, novembro de 2010.
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
Monitoria GDI Aula Prática
EXERCÍCIOS PARA GUARDA-REDES
Primeira aula de PL/SQL Parte II
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Funções ou procedures Professor Esp. Diego André Sant’Ana
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Cursor Professor Esp. Diego André Sant’Ana
RT-EXPERT Artis Corp. C calling program RTSUB [rule set subroutine] RTSUB [rule set subroutine] RTSUB [rule set subroutine]... DSL Decision Support Language.
Monitoria GDI Aula Prática
Desenvolvendo um script SQL
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Rio Verde - Goiás - Brasil
GINÁSTICA LABORAL UM NOVO CAMINHO.
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
Aula 13 - Triggers. Triggers no SGBD Postgres  Os Triggers (Gatilhos) são funções preparadas para serem disparadas no caso de alguma alteração ocorrer.
Recursos de Programação
BANCO DE DADOS Araújo Lima Out / 2017 Araújo.
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
MS-SQL Server Structure Query Language
Transcrição da apresentação:

Stored Procedure, Function and Trigger

Objetivos Programando no banco de dados Stored Procedure Function Trigger

1. Programando no banco de dados 1.1 Variáveis 1.2 Controle de fluxo

1.1 Variáveis Declaração de variáveis: Atribuindo valor à variável: DECLARE @limit int DECLARE @min int, @max int Atribuindo valor à variável: SET @min = 0, @max = 100 SET @limit = 10 Atribuindo valor à no bloco SQL: SELECT @price = price FROM titles WHERE  title_id = 'PC2091'

1.2 Controle de fluxo 1.2.1 BEGIN…END 1.2.2 IF…ELSE 1.2.3 CASE … WHEN 1.2.4 RETURN [n] 1.2.5 WHILE 1.2.6 PRINT

1.2.1 BEGIN…END Define os blocos de código (início/fim) Outras linguagens de programação: C#, Java, C: { … } Pascal, Delphi: BEGIN … END

1.2.2 IF…ELSE Condicional IF Condição Código T-SQL | bloco de código Exemplo: IF (SELECT vendasAno FROM livros WHERE livro_id = 'PC1035') > 5000 PRINT ‘Vendas no ano são que R$5000,00 para PC1035.‘

1.2.3 CASE … WHEN CASE input_expression WHEN  when_expression  THEN result_expression  [WHEN when_expression  THEN result_expression…n] [ELSE else_result_expression ] END Exemplo: SELECT CASE regra WHEN '30' THEN ‘Pagar 30 dias após a nota final' WHEN '60' THEN ' Pagar 60 dias após a nota final '   WHEN ‘No ato' THEN ‘Pagar quando receber a nota fiscal'      ELSE ‘Nenhum'     END as RegrasPagamentos FROM vendas Outras linguagens de programação C#, Java: Switch … Case ; VB: Select … Case

1.2.4 RETURN [n] Pode ser usado para Trigger, Procedure ou Function e returna um valor.

1.2.5 WHILE Repete o bloco de código enquanto a condição for verdadeira WHILE Condição  Código SQL | bloco de códico [BREAK] Código SQL | bloco de código [CONTINUE] Exemplo: WHILE (SELECT AVG(comissao) FROM vendas) < 25 BEGIN UPDATE  vendas  SET comissao = comissao * 1.05 IF (SELECT MAX(comissao)FROM vendas) > 27 BREAK ELSE CONTINUE END SELECT MAX(comissao) AS “Comissão Máxima"  FROM vendas

1.2.6 PRINT Mostra mensagem no SQL Query Analyze (Console) PRINT string Outras linguagens de programação: Java: System.out.print C#, VB.NET: Console.WriteLine

2. Stored Procedure 2.1 O que é uma Stored Procedure? 2.2 Stored Procedure vs. comando SQL 2.3 Criar, alterar e apagar uma procedure

2.1 O que é uma Store Procedure? Uma stored procedure é uma coleção de comandos T-SQL que SQL Server compila em um plano de execução. A Procedure é armazenada em um area de cache da memoria queando é executada pela primeira vez. Isso é feito para que o SQL Server não precise recompilar ela cada vez que for ser executada. Ela aceita parametros de entrada, parâmetros de saída e pode retornar mensagens de sucesso ou falha.

2.2 Stored Procedure vs. Comando SQL SQL Statement Stored Procedure Criação - Verifica sintaxe - Compila Primeira execução - Verifica sintaxe - Compila Executa Returna dados Primeira execução Execute Returna dados Segunda execução - Verifica sintaxe - Compila Executa Returna dados Segunda execução Executa Returna dados

2.3 Criar, alterar e apagar uma procedure 2.3.1 Criar uma Procedure 2.3.2 Alterar uma Procedure 2.3.3 Apagar uma Procedure

2.3.1 Create a Procedure 2.3.1.1 Sintaxe 2.3.1.2 Exemplo 1 (sem parametros) 2.3.1.3 Exemplo 2 (com parametros) 2.3.1.4 Exemplo 3 (usando RETURN)

2.3.1.1 Sintaxe CREATE PROC[EDURE] nome_procedure [ @nome_parametro tipo_parametro] [= default] OUTPUT][,...,n] AS  CódigoT-SQL (s)

2.3.1.2 Exemplo 1 (sem parametros) CREATE PROC Membros_Departamento AS SELECT Dep_Nome, COUNT(Emp_ID) NumeroMembros FROM Departamentos D, Empregados E WHERE D.Dep_ID = E.Dep_ID GROUP BY Dep_Nome Run Procedure Execute Membros_Departamento

2.3.1.3 Exemplo 2 (com parametros) CREATE PROC Membros_Departamento @DeptNome varchar(50) AS SELECT Dep_Nome, COUNT(Emp_ID) NumeroEmpregados FROM Departamentos D, Empregados E WHERE D.Dep_ID = E.Dep_ID and Dep_Nome = @DeptNome GROUP BY Dep_Nome Run Procedure Execute Membros_Departamento ‘Contabilidade’

2.3.1.4 Exemplo 3 (Using RETURN ) CREATE PROC GROUPLEADER_MEMBERS @Cod_Emp varchar(10) = null AS IF @ Cod_Emp is null BEGIN PRINT ‘Por favor entre com o código do empregado!' RETURN END SELECT * FROM Empregados WHERE Cod_Emp = @ Cod_Emp ORDER BY Nome

2.3.2 Update a Procedure ALTER PROC[EDURE] procedure_name [ @nome_paramtro tipo_parametro] [= default] [OUTPUT] [,...,n] AS código t-sql

2.3.3 Delete a Procedure DROP PROCEDURE  nome_procedure

3. Function 3.1 O que é uma Function? 3.2 Scalar functions - Exemplo 3.3 Inline Table-valued Functions - Exemplo 3.4 Multi-statement Table-Valued Functions - Exemplo

3.1 O que é uma Function? SQL Server suporta três tipos de definição de funções: Scalar functions Inline table-valued functions Multi-statement table-valued functions

3.2 Scalar functions - Exemplo CREATE FUNCTION ReceitaDiaria(@data datetime) Returns money AS BEGIN DECLARE @total money SELECT @total = sum(Quantidade * Preco) FROM Pedidos_Venda s, Pedidos_Venda_Items si WHERE s.Numero = si.Numero and year(Data) = year(@data) and month(Data) = month(@data) and day(Data)= day(@Date) RETURN @total END Use: select ReceitaDiaria(GETDATE())

3.3 Inline Table-valued Functions - Exemplo CREATE FUNCTION MediaPrecoPorItem (@ preco money = 0.0) RETURNS table AS RETURN ( SELECT Descricao_Item, Preco_Item FROM Itens WHERE Preco_Item > @preco) Use: select * from MediaPrecoPorItem (15.00)

3.4 Multi-statement Table-Valued Functions - Exemplo CREATE FUNCTION MediaPrecoPorItem (@ preco money = 0.0) RETURNS @table table (Descricao varchar(50) null, Preco money null) AS begin insert @table SELECT Descricao_Item, Preco_Item FROM Itens WHERE Preco_Item > @preco return end Use: select * from MediaPrecoPorItem(15.00)

4. Trigger 4.1 O que é uma Trigger? 4.2 Sintaxe de criação 4.3 Habilitar/Desabilitar 4.4 Tabelas de valores inseridos e excluídos 4.5 Exemplo 4.6 Outras funções

4.1 O que é uma Trigger? Trigger é um procedimento que é executado automaticamente como parte de uma modificação de dados. A trigger é criada em uma tabela e associada com uma ou mais ações ligadas com uma modificação de dados (INSERT, UPDATE, or DELETE). Quando uma das ações para que a trigger está definida ocorre, a trigger é acionada automaticamente Alguns exemplos de uso de triggers: Manutenção de dados duplicados Complexas restrições de coluna Integridade referencial em cascata Padrões complexos Inter-banco de dados de integridade referencial

4.2 Sintaxe de criação CREATE TRIGGER nome_trigger ON <nome_tabela> <{FOR | AFTER}> {[DELETE] [,] [INSERT] [,] [UPDATE]} AS Código SQL [...n]

4.3 Habilitar/Desabilitar Sitaxe para desabilitar Disable trigger <trigger_name> on <table_name> Sitaxe para habilitar Enable trigger <trigger_name> on <table_name>

4.4 Deleted and Inserted tables Quando você cria uma trigger, você tem acesso a duas tabelas temporárias (a tabela de valores apagados e inseridos). Eles são representados como tabelas, mas diferentemente das tabelas de banco de dados. Eles são armazenados na memória não no disco. Quando um insert, update ou delete é executed. Todos os dados serão copiados para essa tabela com a mesma estrutura. Os valores inseridas e excluídas são acessíveis apenas dentro da trigger. Uma vez que a trigger é concluída, essas tabelas não estão mais disponíveis. Inserted Table Deleted Table novo antigo Insert Update Delete

4.5 Exemplo CREATE TRIGGER Print_Update ON Invetario_Bicicleta FOR UPDATE AS PRINT “A tabela invertário de bicicletas foi atualizada"

4.6 Outras Funções Ver conteúdo da trigger sp_helptext <trigger name> Ver número de triggers na a table sp_helptrigger <table name>

?