Banco de Dados PLPGSQL. Prof. Dr. Joel da Silva

Documentos relacionados
Programação em SGDB s

SQL Procedural. Josino Rodrigues Neto

Introdução Sintaxe Básica Retornos Múltiplos Junções em Funções Comando Case Atividade. de Banco de Dados (CREATE FUNCTION) Bruno Neiva Moreno

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

Sistemas de Informação

Sumário. Discussão Exercícios. Discussão Exercícios. Discussão Exercícios. Discussão Exercícios. Programando com SQL Stored Procedures

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

PL/pgSQL por Diversão e Lucro

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes

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

Funções Definidas pelo Usuário

Linguagens Procedurais no PostgreSQL: Funcoes. Linguagens Procedurais no PostgreSQL: Funcoes

GES013 - Sistema de Banco de Dados Funções e Gatilhos no PostgreSQL

BD II (SI 587) Procedimentos Armazenados

Bancos de Dados I. Integridade semântica

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl

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

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

[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL

Funções em PostgreSQL

Linguagens de Programação

Sharding e replicação com Citus

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Logado no OracleXE vamos acessar a opção:

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

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

PostgreSQL 8.0. Diogo Biazus

Consultoria e Treinamento em Bancos de Dados Relacionais

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

Oracle PL/SQL Overview

Acadêmico: Fabiano Bender. Orientadora: Joyce Martins FURB 2012/2

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

Linguagem de programação: Pascal

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

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

PL/pgSQL. Introdução. Introdução. Introdução

Aula 12 Revisão. Prof. Filipe Wall Mutz

Monitoria GDI. Aula Prática. OR (Aula 1)

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

10g PRINCIPAIS SERVIDORES UNIVERSAIS

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

1 Da aula teórica ao Java

Regras de Negócios é com o Elefante!

FESURV UNIVERSIDADE DE RIO VERDE FACULDADE DE CIÊNCIA DA COMPUTAÇÃO. Stored Procedures e Triggers

PostgreSQL Desenvolvedor

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Revisão C++ - Parte 1

Linguagem Algorítmica OO. Linguagem Algorítmica

INTRODUÇÃO AO MYSQL PROF. ME. HÉLIO ESPERIDIÃO

Balanceando a carga e particionando os dados com PL/PROXY. Palestrante: João Cosme de Oliveira Júnior

14/9/2009. Banco de Dados

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

Conceitos básicos de programação

Triggers no PostgreSQL

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger


IEC Banco de Dados I Aula 11 Técnicas de Programação SQL

Linguagem PL/SQL e Triggers

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

Banco de Dados II. PL/SQL Introdução. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

A U L A 9 F U N Ç Õ E S A G R E G A D A S E C Á L C U L O S

Marcos Alexandruk Marcos Alexandruk

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

Linguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira

Processamento de INDUSTRIA 4.0. Big Data. Aula #9 - Transações em escala (BigData??) AVENTUREIROS DO BAIRRO PROIBIDO, FONTE: GOOGLE

UFG - Instituto de Informática

Análise Semântica e Tratamento de Erros Dependentes de Contexto

In I t n rto r d o u d ç u ão ã o à à Com o pu p t u a t ç a ão ã Linguagem Fortran! " 1

Banco de Dados. Professora: Luciana Faria

Marcelo Henrique dos Santos

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Aula 12 Revisão. Prof. Filipe Wall Mutz

Tratamento de Exceções

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

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Aula 15 - Aula sobre Funções e Procedimentos

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves Rui Barradas Hélton Miranda 68477

FERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE

Monitoria GDI Aula Prática. DML + PL/SQL parte 1

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

ao paradigma imperativo

Programação WEB I Funções

INTRODUÇÃO AO MYSQL. Eng. Computação

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Linguagem de Programação

Elementos básicos das linguagens de programação

Transcrição:

Banco de Dados PLPGSQL Prof. Dr. Joel da Silva

- Introdução 2

- Introdução A PLPGSQL ou PL/pgSQL é uma linguagem estendida da SQL que tem por objetivo auxiliar as tarefas de programação no PostgreSQL. Ela incorpora à SQL características procedurais, como os benefícios e facilidades de controle de fluxo de programas que as melhores linguagens possuem. Por exemplo loops estruturados (for, while) e controle de decisão (if then else). PLPGSQL é uma PL/SQL significa "Procedural Language extensions to SQL", que pode ser usado em bancos de dados. O PL/SQL é a linguagem SQL com construções de programação similares a outras liguagens. Apesar do QUERY constar no nome, ela não é apenas de consulta (inclusão, alteração,...) Documentação e artigos para leitura: Versão Atual (Inglês): http://www.postgresql.org/docs/current/static/plpgsql.html Livro Practical PostgreSQL: http://www.faqs.org/docs/ppbook/book1.htm Tradução para Português (v 8.0) http://pgdocptbr.sourceforge.net/pg80/plpgsql.html WIKILIVROS PostgreSQL Prático: http://pt.wikibooks.org/wiki/postgresql_pr%c3%a1tico/fun%c3%a7%c3%b5es_definidas_pelo_usu %C3%A1rio_e_Triggers/PlpgSQL http://www.codeproject.com/articles/33734/how-to-write-pl-pgsql-functions-for-postgresql-8-3 http://postgres.cz/wiki/pl/pgsql_(en) 3

- Introdução Estrutura de uma função CREATE OR REPLACE FUNCTION OLA_MUNDO() RETURNS VOID AS $$ -- assinatura da função DECLARE -- declaração de variáveis nome varchar(50) := TSI - IFFarroupilha'; -- início de um bloco de instruções RAISE NOTICE 'OLÁ %',nome; END; --final de um bloco $$ LANGUAGE plpgsql; -- final da função Executando uma função select OLA_MUNDO() -- comando para chamar a função 4

Estrutura de uma função com parâmetros CREATE OR REPLACE FUNCTION OLA_MUNDO(nome varchar) RETURNS VOID AS $$ RAISE NOTICE 'OLÁ %',nome; END; $$ LANGUAGE plpgsql; select OLA_MUNDO( IFFarroupilha Frederico Westphalen') 5

Estrutura de uma função com parâmetros CREATE OR REPLACE FUNCTION SOMAR(n1 integer, n2 integer) RETURNS integer AS $$ RAISE NOTICE 'SOMA DOS VALORES : '; RETURN $1 + $2; END; $$ LANGUAGE plpgsql; select somar(2,4) 6

Exemplo utilizando a base dvd rental Listar todos os pagamentos realizados juntamente com a soma de total de todos os pagamentos; CREATE OR REPLACE FUNCTION PAGAMENTOS() RETURNS VOID AS $$ DECLARE pagamentos RECORD; pagamento float; total float; RAISE NOTICE '#### SELECIONANDO PAGAMENTOS ####'; total = 0; FOR pagamentos IN SELECT payment_id, payment.amount FROM payment where amount >0 LOOP pagamento = pagamentos."amount"; total = total + pagamento; RAISE NOTICE 'Valor ==> % ', pagamento; END LOOP; RAISE NOTICE 'Total ==> % ', round(total::numeric,2); RETURN;END;$$LANGUAGE plpgsql; --chamada para a função SELECT PAGAMENTOS(); 7

Exemplo utilizando a base dos correios Exemplo de Função para listar dados de uma tabela /* Função para selecionar somente as localidades do RS*/ CREATE OR REPLACE FUNCTION LOCALIDADES_RS() RETURNS VOID AS $$ DECLARE localidades RECORD; nome_localidade varchar; RAISE NOTICE '#### SELECIONANDO LOCALIDADES ####'; FOR localidades IN SELECT * FROM "LOG_LOCALIDADE" WHERE "UFE_SG" = 'RS' LOOP nome_localidade = localidades."loc_no"; RAISE NOTICE 'Nome da Localidade ==> % ', nome_localidade; END LOOP; RETURN; END; $$LANGUAGE plpgsql; --chamada para a função SELECT LOCALIDADES_RS() 8

Exemplo utilizando a base dos correios Exemplo de Função para listar dados de uma tabela /*Função para selecionar somente as localidades de um estado passado como parâmetro */ CREATE OR REPLACE FUNCTION LOCALIDADES_DO_ESTADO(estado varchar) RETURNS VOID AS $$ DECLARE localidades RECORD; nome_localidade varchar; RAISE NOTICE '#### SELECIONANDO LOCALIDADES ####'; FOR localidades IN SELECT * FROM "LOG_LOCALIDADE" WHERE "UFE_SG" = estado LOOP --FOR localidades IN SELECT * FROM "LOG_LOCALIDADE" WHERE "UFE_SG" = $1 LOOP nome_localidade = localidades."loc_no"; RAISE NOTICE 'Nome da Localidade ==> % ', nome_localidade; END LOOP; RETURN; END; $$LANGUAGE plpgsql; --chamada para a função SELECT LOCALIDADES_DO_ESTADO('SP') 9

Exemplo utilizando a base dos correios Exemplo de Função para listar dados de uma tabela /*Função para concatenar o nome da localidade com o nome do estado*/ CREATE OR REPLACE FUNCTION LOCALIDADE_ESTADO() RETURNS VOID AS $$ DECLARE localidades RECORD; nome_localidade varchar; nome_estado varchar; nome_completo varchar; RAISE NOTICE '#### CONCATENANDO NOMES DE LOCALIDADES E NOMES DE ESTADOS ####'; FOR localidades IN SELECT * FROM "LOG_LOCALIDADE" LOOP nome_localidade = localidades."loc_no"; nome_estado = localidades."ufe_sg" ; nome_completo = nome_localidade '-' nome_estado; RAISE NOTICE '% ', nome_completo; END LOOP; RETURN; END; $$LANGUAGE plpgsql; --chamada para a função SELECT LOCALIDADE_ESTADO() 10

- Exercício Crie uma função chamada ENDERECO. A função deve receber como parâmetro um CEP qualquer e retornar o nome do logradouro, a localidade, o tipo de localidade, o bairro, e o nome e sigla do estado correspondente. 11