Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL
|
|
- Maria do Loreto Graça Covalski
- 8 Há anos
- Visualizações:
Transcrição
1 Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco de Dados(SGBD) PostGreSQL. Uma linguagem procedural é uma linguagem de programação que é usada para especificar uma sequência de passos que são seguidos para produzir um resultado pretendido. Ela pode ser usada para agrupar sequências de comandos SQL com comandos de programação dentro do servidor de banco de dados, reduzindo a sobrecarga de rede e comunicação das aplicações cliente que precisam requisitar dados do banco. Através da linguagem pode-se: criar procedimentos de funções(stored procedures) e gatilhos(triggers) adicionar estruturas de controle a linguagem SQL realizar procedimentos complexos 2) Estrutura da linguagem A linguagem PL/pgSQL é estruturada em blocos. Um bloco é definido como: [ <<rótulo>> ] [ DECLARE declarações ] instruções END; O código do bloco principal começa com a seção de declaração DECLARE. O corpo do código começa com a palavra-chave e termina com a palavra chave END. O corpo deve retornar um valor do tipo especificado na palavra-chave RETURN. Todas as declarações e instruções dentro do bloco devem ser terminadas por ponto-e-vírgula. Um bloco contido dentro de outro bloco deve conter um ponto-e-vírgula após o END, entretanto, o END final que conclui o corpo da função não requer o ponto-e-vírgula. Todas as palavras chave e identificadores podem ser escritos misturando letras maiúsculas e minúsculas. Existem dois tipos de comentários no PL/pgSQL. O hífen duplo (--) começa um comentário que se estende até o final da linha. O /* começa um bloco de comentário que se estende até a próxima ocorrência de */. Os sub-blocos podem ser utilizados para agrupamento lógico, ou para limitar o escopo de variáveis a um pequeno grupo de instruções.
2 EXEMPLO: CREATE FUNCTION func_escopo() RETURNS integer AS DECLARE quantidade integer := 30; RAISE NOTICE 'Aqui a quantidade é %', quantidade; -- A quantidade aqui é 30 quantidade := 50; Criar um sub-bloco -- DECLARE quantidade integer := 80; RAISE NOTICE 'Aqui a quantidade é %', quantidade; -- A quantidade aqui é 80 END; RAISE NOTICE 'Aqui a quantidade é %', quantidade; -- A quantidade aqui é 50 RETURN quantidade; END; LANGUAGE plpgsql; => SELECT func_escopo(); NOTA: Aqui a quantidade é 30 NOTA: Aqui a quantidade é 80 NOTA: Aqui a quantidade é 50 func_escopo OBS: 1)o comando RAISE NOTICE funciona como um display. 2)variáveis podem ser de qualquer tipo de dados suportado pelo SQL como integer, varchar, char, etc. Alguns exemplos: userid integer, quantidade numeric(5), url varchar. Variáveis de tipos: O %TYPE fornece o tipo de dado da variável ou da coluna da tabela. Pode ser usado para declarar variáveis que armazenam valores do banco de dados. Por exemplo, se existir uma coluna chamada id_usuario na tabela USUARIOS, podemos declarar uma variável com o mesmo tipo de dado desta coluna como: id_usuario usuarios.id_usuario%type; Usando-se %TYPE não há necessidade de conhecer o tipo de dado da estrutura referenciada. Além disso, se este tipo de dado for alterado, não haverá necessidade de mudar a definição da função. Variáveis de linha: Uma variável de tipo composto é chamada de variável de linha. Este tipo de variável pode armazenar toda uma linha de resultado de um comando SELECT. Os campos individuais são acessados usando a notação VARIAVEL_LINHA.CAMPO.
3 Uma variável_linha pode ser declarada como tendo o mesmo tipo das lnhas de uma tabela ou visão usando a notação: nome_da_tabela%rowtype; Variáveis de registro: Uma variável tipo-registro é semelhante a uma variável tipo-linha, mas não possuem uma estrutura pré-definida. Assumem a estrutura da linha para a qual é atribuída pelo comando SELECT em tempo de execução. create or replace function var_linha() returns varchar as 'Declare var disciplina%rowtype; resultado varchar; Begin select into var * from disciplina where codigo=''inf03''; resultado:= var.registro ''--'' var.nome; return resultado; End;' language 'plpgsql'; OBS: 1) A cláusula SELECT INTO pode ser usada para atribuir os resultados de um comando SELECT para uma lista de variáveis ou uma variável do tipo linha. Se uma linha ou lista de variáveis for usada como destino, os valores selecionados devem corresponder exatamente a estrutura do destino, senão ocorrerá um erro em tempo de execução. Se a consulta não retornar nenhuma linha, são atribuídos valores nulos aos destinos. Se a consulta retornar várias linhas, somente a primeira é atribuída ao destino enquanto as demais são desprezadas. 2) Usar 2 pliques '' ao invés de aspas quando fizer referência a algum literal. COMANDOS DE DESVIOS E INTERAÇÕES: Execução condicional: O PL/PGSQL possui 4 formas de IF: IF... THEN IF... THEN... ELSE IF... THEN... ELSE IF IF... THEN... ELSIF... THEN... ELSE IF-THEN É a forma mais simples. As instruções entre o THEN e o END são executadas se a condição for verdadeira. If v_nota <> 0 then Update histórico set nota=v_nota where matricula=v_matricula; end if; IF-THEN-ELSE A instrução IF-THEN-ELSE permite especificar um conjunto alternativo de instruções se a
4 condição for avaliada como FALSO. If v_nota <> 0 then Update histórico set nota=v_nota where matricula=v_matricula; eles Update histórico set nota=null where matricula=v_matricula; end if; IF-THEN-ELSE-IF Permite o aninhamento de IF, como no comando a seguir. if v_nota >= 6 then situacao:= aprovado else if nota < 6 then situacao := reprovado ; else situacao := sem nota ; end if; end if; IF-THEN-ELSIF Permite verificar muitas alternativas em uma instrução. Necessita de somente um END IF. IF temp = 25 THEN resultado := TEMPERADO ; ELSIF temp > 25 THEN resultado := QUENTE ; ELSIF temp < 25 THEN resultado := FRIO ; ELSE resultado := TEMP NULO ; END IF; TIPOS DE CONSTRUÇÕES DE REPETIÇÃO LOOP Define um laço incondicional repetido indefinidamente até ser terminado por uma instrução EXIT ou RETURN. Nos laços aninhados pode ser usado um rótulo na instrução EXIT para especificar o nível de aninhamento que deve ser terminado. Sintaxe: LOOP instruções EXIT Se nenhum rótulo for especificado, o laço mais interno é finalizado e a instrução após o END LOOP é executada a seguir. Se WHEN estiver presente, a saída do laço ocorre somente se a condição especificada for verdadeira, senão o controle passa para a instrução após o EXIT. Sintaxe: EXIT [rotulo] [WHEN expressao]
5 EXEMPLOS: LOOP algum processamento if contador > 0 THEN EXIT; sair do laço END IF; LOOP algum processamento EXIT WHEN contador > 0; o mesmo do exemplo acima algum processamento if nota > 0 THEN EXIT; Erro: EXIT não pode ser usado for a de LOOP END IF; END; WHILE A instrucao WHILE repete a sequencia de instrucoes enquanto a expressão for avaliada como verdade. A expressão é verificada antes de cada entrada no corpo do laco. (sintaxe) WHILE expressão LOOP Instruções While contador < 10 LOOP --algum processamento Contador:=contador+1; FOR Cria um laco que interage em um intervalo de inteiros. A variavel usada no laco e definida automaticamente como do tipo integer e somente existe dentro do laco. Normalmente o passo da interacao é 1, mas quando REVERSE é especificado se torna -1. Sintaxe: FOR nome IN [REVERSE] expressao.. expressao LOOP Instrucoes Exemplos: FOR i in LOOP --algum processamento RAISE NOTICE i is %, i;
6 FOR i in REVERSE LOOP --algum processamento RAISE NOTICE i is %, i; Se o limite inferior for maior que o superior, o corpo do laco nao é executado nenhuma vez. LAÇOS ATRAVÉS DOS RESULTADOS DA CONSULTA Utilizando um tipo diferente de laco FOR, é possivel interagir atraves dos resultados de uma consulta e manipular os dados. Sintaxe: FOR registro_ou_linha IN comando LOOP Instrucoes Cada linha do resultado da consulta (um comando SELECT) é atribuida a variavel tipo-registro ou tipo-linha, e o corpo do laco é executado para cada linha. Create function teste_for_select() returns varchar as Declare Reg RECORD; Resultado varchar := Disciplinas: ; For reg in SELECT * FROM DISCIPLINA LOOP Resultado := resultado - reg.nome; Return resultado; END; Language plpgsql ; RETURN Toda funcao plpgsql deve terminar com uma instrucao RETURN. Existem duas formas de retorno: RETURN expressao; RETURN; A primeira forma deve ser usada quando a funcao retorna um valor simples enquanto que a segunda forma deve ser usada quando a funcao retorna um conjunto de valores. Quando a funcao retorna um conjunto de valores, é preciso executar uma ou mais vezes o comando RETURN NEXT que adiciona o resultado da funcao ao conjunto do resultado. Quando o conjunto do resultado estiver completo entao deve ser executado o comando RETURN simples. Create or replace function lista_notas(numeric) returns setof numeric as 'Declare reg_historico HISTORICO%ROWTYPE; FOR reg_historico in SELECT * from HISTORICO where matricula=$1
7 LOOP RETURN NEXT reg_historico.nota; RETURN; END;' Language 'plpgsql'; -- select lista_notas(100); CURSOR Um cursor pode ser visto como um nome para um result set. Ele deve ser declarado da mesma forma que qualquer outra variavel. O exemplo abaixo ilustra a declaracao de uma variavel cursor: Declare aluno_cursor cursor for SELECT * FROM ALUNO; Quando se declara uma variavel do tipo cursor, é necessario incluir a consulta associada. Antes de poder usá-lo, é necessário abrir o cursor com o comando OPEN. Declare aluno_cursor cursor for SELECT * FROM ALUNO; Open aluno_cursor; Após o cursor ser aberto as linhas podem ser recuperadas, uma de cada vez, com o comando FETCH. Para isso, deve ser informado uma ou mais variaveis destino para que o PL/PGSQL possa colocar os resultados da consulta. A sintaxe do comando é: FETCH nome_do_cursor INTO destino; O destino deve corresponder a forma da linha retornada pelo cursor. Por exemplo, se um cursor recupera linhas da tabela ALUNO, existem 3 possibilidades de variavel destino: a) uma variável do tipoaluno%rowtype; b) uma variável do tipo RECORD; c) três variáveis a saber: uma do tipo ALUNO.matricula%TYPE, outra do tipo ALUNO.nome%TYPE e a terceira do tipo ALUNO.escola%TYPE. Se for dado um FETCH apos a leitura de todos os registros a variavel boleana FOUND é atribuida para FALSO. Declare aluno_cursor cursor for SELECT * FROM ALUNO; aluno ALUNO%ROWTYPE; Open aluno_cursor; LOOP FETCH aluno_cursor INTO aluno; EXIT WHEN NOT FOUND; Close aluno_cursor; END;
8 CURSOR COM PARÂMETRO Quando se declara um cursor, é necessario especificar uma consulta. Muitas vezes nao se sabe exatamente os valores envolvidos na consulta no momento em que se esta escrevendo a funcao. Neste caso, um cursor parametrizado pode ser usado para resolver esta situacao. Quando o cursor for aberto, os valores para cada parametro devem ser fornecidos. Create or replace function lista_aluno(numeric) returns varchar as 'Declare aluno_cursor cursor(id numeric) FOR Select * from ALUNO where matricula=id; Aluno ALUNO%ROWTYPE; Mat numeric(4); Nome varchar; Mat := $1; Open aluno_cursor(mat); Fetch aluno_cursor into aluno; Nome:=aluno.nome; Return(nome); END;' Language 'plpgsql'; select lista_aluno(100); CURSOR DE REFERENCIA Quando uma variavel cursor e declarada, ela esta associada a uma consulta determinada. Se a consulta retorna linhas da tabela ALUNO ela sempre retornara linhas desta tabela. Uma variavel declarada como cursor de referencia pode ser usada para processar qualquer cursor. OBS: A sintaxe para declarar uma variavel com REFCURSOR é: declare ref_nome REFCURSOR; Repare que nao e especificada nenhuma consulta na declaracao da variavel. Ao invés disso, um cursor é associado ao REFCURSOR no momento da execucao. A grande vantagem deste tipo de variavel é poder passar a referencia para outra funcao. Create or replace function computa_media(refcursor) returns numeric as 'Declare curs_cod ALIAS FOR $1; V_NOTA numeric(3,1); TOT_NOTA numeric(4,1) :=0; CODDIS HISTORICO.CODIGO%TYPE; CONTADOR INTEGER :=0; MEDIA numeric(4,1);
9 LOOP fetch curs_cod into CODDIS; EXIT WHEN NOT FOUND; SELECT INTO V_NOTA NOTA FROM HISTORICO WHERE CODIGO='''' CODDIS ''''; IF V_NOTA IS NOT NULL THEN TOT_NOTA:=TOT_NOTA+V_NOTA; CONTADOR:=CONTADOR+1; RAISE NOTICE ''CODDIS: %'', CODDIS; RAISE NOTICE ''V_NOTA: %'', V_NOTA; ELSE RAISE NOTICE ''DISCIPLINA SEM HISTORICO: %'', CODDIS; END IF; MEDIA:=TOT_NOTA/CONTADOR; return (media); END;' Language 'plpgsql'; Create or replace function calc_media_curso(varchar) returns numeric as 'Declare curs REFCURSOR; media numeric(3,2); ESC VARCHAR(20); COD CHAR(5); ESC:='''' $1 ''''; OPEN curs for SELECT codigo from DISCIPLINA where escola =ESC; media := computa_media(curs); close curs; return (media); END;' Language 'plpgsql'; SELECT CALC_MEDIA_CURSO('INFORMATICA'); TRIGGERS Um trigger e uma funcao que é chamada toda vez que um determinado evento acontece. Suponha que se queira armazenar em uma nova tabela, todas as exclusoes e atualizacoes ocorridas na tabela HISTORICO. Para isto, vamos criar a tabela HISTORICO_LOG com todas as colunas da tabela HISTORICO e mais 3 colunas para registrar o usuario, data e operacao (DELETE ou UPDATE) realizada. CREATE TABLE historico_log ( matricula numeric(4,0) NOT NULL, codigo character(5) NOT NULL, nota numeric(3,1),
10 usuario varchar, data_operacao date, operacao varchar); Vamos então criar uma função TRIGGER que executa sempre que uma mudanca é realizada na tabela HIISTORICO. Uma funcao TRIGGER nao possui argumentos e retorna um tipo de dados especial, o tipo TRIGGER. CREATE FUNCTION REGISTRO() RETURNS TRIGGER As ' Insert into historico_log values (OLD.matricula, OLD.codigo, OLD.nota, CURRENT_USER, Now(), TG_OP); RETURN NULL; END;' Language 'plpgsql'; Funcoes de Trigger tem acesso a varias variaveis pre-definidas que facilitam encontrar informacao sobre ocontexto em que o evento aconteceu. A variavel OLD contem a copia da linha original da tabela HISTORICO no momento em que um trigger é executado para uma operacao de UPDATE ou DELETE. A varivel NEW contem uma copia da nova linha da tabela HISTORICO quando um trigger é executado para uma operacao de INSERT ou UPDATE. Quando o trigger REGISTRO executa, ele cria uma nova linha na tabela HISTORICO _LOG que contem uma copia da linha original da tabela HISTORICO, o nome do usuario que fez a modificacao, a data em que ocorreu e o tipo de operacao. TG_OP recebera UPDATE ou INSERT ou DELETE. O comando CREATE TRIGGER associa uma funcao com um ou mais eventos em uma tabela. O comando abaixo cria o trigger REGISTRA_HISTORICO associado aos eventos de exclusao(delete) ou atualizacao(update) na tabela HISTORICO. CREATE TRIGGER REGISTRA_HISTORICO AFTER DELETE OR UPDATE ON HISTORICO FOR EACH ROW EXECUTE PROCEDURE REGISTRO(); Um comando DELETE ou UPDATE pode afetar varias linhas. A clausula FOR EACH determina se o trigger deve ser executado para cada linha ou para cada todo o comando. Voce pode especificar ROW ou STATEMENT.
PL/pgSQL. Introdução. Introdução. Introdução
Introdução PL/pgSQL Banco de Dados II Prof. Guilherme Tavares de Assis PL/pgSQL (Procedural Language for the PostgreSQL) é uma linguagem procedural carregável desenvolvida para o SGBD PostgreSQL, que possui
Leia maisPL/pgSQL por Diversão e Lucro
PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do
Leia maisBANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando
Leia maisFUNCTION ) RETURNS INTEGER AS $$ DECLARE
PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos
Leia maisConsultoria e Treinamento em Bancos de Dados Relacionais
Tabela de conteúdos CREATE TABLE AS...1 CREATE DOMAIN...1 Funções de dados...2 Funções de data e hora...2 Funções de agregação...3 Expressões condicionais...4 CASE...4 COALESCE...4 NULLIF...4 Controle
Leia maisBancos de Dados I. Integridade semântica
Bancos de Dados I PUC-Rio Departamento de Informática (DI) Eng./Ciência da Computação e Sist. Informação Contrôle de Integridade em SGBDs: procedimentos armazenados, gatilhos e funções Prof. sergio@inf.puc-rio.br
Leia maisPROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger
PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco
Leia maisSistemas de Informação
Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK
Leia maisTriggers no PostgreSQL
Triggers no PostgreSQL Traduzido do manual do PostgreSQL Pode-se utilizar PL/pqSQL para a definição de triggers (gatilhos). Um procedimento do tipo trigger é criado com o comando CREATE FUNCTION, declarando
Leia maisSQL Procedural. Josino Rodrigues Neto josinon@gmail.com
SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server
Leia maisPROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger
PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco
Leia maisTriggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL
Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a
Leia maisIntrodução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos
Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção
Leia maisLogado no OracleXE vamos acessar a opção:
Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos
Leia maisGBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL
GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem
Leia maisOracle PL/SQL Overview
Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade
Leia maisPL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL
PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,
Leia maisUNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento
UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS Profº Erinaldo Sanches Nascimento Introdução Cursor é usado para percorrer um conjunto de linhas retornadas por uma consulta
Leia maisTriggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve
Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 14 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.
Leia maisTriggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.
Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente
Leia maisBANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas
Leia maisFAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure
Leia maisProjeto de Banco de Dados
Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html
Leia maisOracle 10g: SQL e PL/SQL
Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação
Leia mais2008.1. A linguagem SQL
SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão
Leia maisBanco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas
Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions
Leia maisPostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br
PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,
Leia maisBases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL
Bases de Dados 2012/2013 Funções/procedimentos e triggers em PostgreSQL Helena Galhardas Bibliografia Manual referência PostgreSQL http://www.postgresql.org/docs/9.2/static/ plpgsql.html http://www.postgresql.org/docs/9.2/static/
Leia maisAULA 2 INTERAÇÃO COM O BANCO DE DADOS
AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,
Leia maisPROCEDIMENTOS ARMAZENADOS (Stored Procedures)
PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a
Leia maisAULA 2 INTERAÇÃO COM O BANCO DE DADOS
AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,
Leia maisUFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I
UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Programação para Internet I Aula 10 PHP: Trabalhando com Banco de Dados leticia@cafw.ufsm.br Acessando
Leia maisSQL Gatilhos (Triggers)
SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE
Leia maisAPOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL
1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)
Leia maisSQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.
SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]
Leia maisLaboratório de Banco de Dados II Aula 1. Stored Procedures
Laboratório de Banco de Dados II Aula 1 Stored Procedures Stored procedures Uma seqüência de comandos SQL pode ser agrupada, formando uma stored procedure A sua execução é comandada, invocando-se o nome
Leia maisTarefa Orientada 19 Triggers
Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma
Leia maistrigger insert, delete, update
1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,
Leia maisUsando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak
Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições
Leia maisTriggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:
Leia mais8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)
8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras
Leia maisOPERADORES E ESTRUTURAS DE CONTROLE
OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em
Leia maisRECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS
RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS No Instituto Federal do Paraná tounou-se necessário o armazenamento de certas informações para controle de pessoal. Para armazenar tais dados é necessário saber que:
Leia maisProgramação WEB I Estruturas de controle e repetição
Programação WEB I Estruturas de controle e repetição Operadores de Incremento Operadores de incremento servem como expressões de atalho para realizar incrementos em variáveis Operadores de Incremento Vamos
Leia maisBanco de Dados Avançados Banco de Dados Ativo
Universidade Federal de Pernambuco Centro de Informática Banco de Dados Avançados Banco de Dados Ativo Equipe: Felipe Cavalcante Fernando Kakimoto Marcos Corrêa Sumário 1. Mini-Mundo... 3 1.1 Entidades...
Leia mais2 echo "PHP e outros.";
PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento
Leia maisMonitoria GDI Aula Prática. DML + PL/SQL parte 1
Monitoria GDI Aula Prática DML + PL/SQL parte 1 DML linguagem de manipulação de dados SQL Estrutura básica de uma consulta SQL SELECT Coluna1[,Coluna2[,Coluna3[,...]]] FROM Tabela1[,Tabela2[,...]] WHERE
Leia maisFERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE
FERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE Formando: Dyckson Dyorgio Dolla Orientador: Prof. Everaldo Artur Grahl Julho / 2001 ROTEIRO DA
Leia maisBANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br
BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura
Leia maisTarefa Orientada 15 Manipulação de dados
Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE
Leia maisO dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros:
- Necessidade 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: Os livros que custarem mais de 10, devem ver o seu preço
Leia maisPersistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
Leia maisAULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS
AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada
Leia mais2008.1 SQL. Autor: Renata Viegas
SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua
Leia maisIntrodução à Engenharia da Computação. Banco de Dados Professor Machado
Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:
Leia maisMANUAL INSTALAÇÃO WEB SERVICE
MANUAL INSTALAÇÃO WEB SERVICE Recebimento de dados pelo Hospital Versão 1.1 2/9/2014 Contato suporte@gtplan.com.br Índice Introdução... 2 Requerimentos para instalação do Web Service... 2 Instalação...
Leia maisBases de Dados 2007/2008. Aula 8
Bases de Dados 2007/2008 Aula 8 1. T-SQL 2. VARIÁVEIS 3. CURSORES 4. PROCEDIMENTOS 5. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql
Leia maisRelatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477
Relatório Projecto de Base de Dados Parte 2 Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 1. Criação da base de dados De seguida vem escrito um script
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisListando itens em ComboBox e gravando os dados no Banco de Dados MySQL.
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no
Leia maisLinguagem SQL Sub-linguagem DDL
Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas
Leia maisTarefa Orientada 18 Procedimentos armazenados
Tarefa Orientada 18 Procedimentos armazenados Objectivos: Criar Procedimentos armazenados Chamar procedimentos armazenados Utilizar parâmetros de entrada e de saída Um procedimento armazenado representa
Leia maisProgramação SQL. Introdução
Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:
Leia maisComandos de Manipulação
SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL
Leia maisJAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo
Conteúdo Estruturas de repetição (loops, laços)... 2 WHILE (enquanto)... 2 DO... WHILE (faça... enquanto)... 2 FOR... 3 FOREACH... 4 EXERCICIO LOOP FOR... 4 Novo Projeto... 5 Controles SWING... 10 1 Estruturas
Leia maisProgramando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi
Programando em SQL Triggers, Stored Procedures e funções Objetivo Descrever as funcionalidades de triggers, store procedures e funções; Apresentar vantagens e benefícios; Criação e Gerenciamento de Store
Leia maisIntrodução à Banco de Dados. Nathalia Sautchuk Patrício
Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem
Leia maisPHP INTEGRAÇÃO COM MYSQL PARTE 1
INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança
Leia maisAntónio Rocha Nuno Melo e Castro
António Rocha Nuno Melo e Castro ! Transact-SQL (T-SQL) Extensão ao SQL Permite controlo do fluxo de execução Permite comandos DDL (contrariamente ao PLSQL) T-SQL combina: poder de manipulação de dados
Leia maisDESENVOLVIMENTO DE SOFTWARE
VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.
Leia maisLinguagens Procedurais no PostgreSQL: Funcoes. Linguagens Procedurais no PostgreSQL: Funcoes
Linguagens Procedurais no PostgreSQL: Funcoes Introdução à programação procedural no servidor e linguagem plpgsql para implementação de funções. ARQUITETURA/PROCESSOS postmaster: (Host, único, aguardando
Leia maisTreinamento sobre SQL
Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na
Leia maisPodemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :
Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : O form Index A tabela Fotos A query Q_seleção_de_fotos Vide figura 46. Figura 46 O próximo passo é criar um form que
Leia maisSQL DDL Criando Tabelas e Restrições
SQL DDL Criando Tabelas e Restrições Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Comandos de Definição
Leia maisStructured Query Language (SQL)
SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas
Leia maisGatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich
Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Elaborado por Maria Lígia B. Perkusich O que é um gatilho (trigger)? Um gatilho é um tipo especial de procedimento armazenado
Leia maisEstrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1
Estrutura de Dados Introdução a Ponteiros Prof. Gerson Borges Estrutura de Dados I 1 Sumário è Explicação da importância do planejamento de ensino; è Métodos e técnicas que iremos trabalhar durante o semestre;
Leia maisLINGUAGEM SQL. SQL Server 2008 Comandos iniciais
1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.
Leia maisProgramação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza
PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível
Leia maisBases de Dados 2007/2008. Aula 9
Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql
Leia maisManipulando Strings no VBA (Replace, Mid e InStr)
Manipulando Strings no VBA (Replace, Mid e InStr) por Eduardo Vieira Machado (Good Guy) Hoje gostaria de tratar de um assunto bastante atraente no Access e que é muito trabalhado nas empresas - a manipulação
Leia maisIntrodução ao SQL. Aécio Costa
Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição
Leia maisFTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Bruno Maciel Competências a serem trabalhadas nessa aula Criação da Base de Dados (MySQL) Criação de Tabelas Tipo de Dados Chave Primária
Leia mais1. Domínio dos Atributos
Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando
Leia maisAdministração de Banco de Dados
Administração de Banco de Dados Adriano J. Holanda http://holanda.xyz 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4);
Leia maisLinguagem PL/SQL e Triggers
TECNOLOGIA DE BASES DE DADOS Linguagem PL/SQL e Triggers António Manuel Silva Ferreira UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA asfe@di.fc.ul.pt Sumário Linguagem PL/SQL
Leia maisSQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela
SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela Certamente você já ouviu falar muito sobre triggers. Mas o quê são triggers? Quando e como utilizá-las?
Leia maisSQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix
Leia maisHugo Pedro Proença, 2007
Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações
Leia maisSub AcessaWeb(url, x) ' recebe uma url para pesquisar e devolve uma planilha ' Solicita a criação da planilha x
Aula 1 Planilha para Incluir / Excluir / Consultar dados em uma agenda telefônica (Nome, Endereço, Telefone) residindo em Banco de dados Access ou na WEB (usando um banco espelho no meu site, e uma página
Leia maisNesta aula serão apresentados alguns comandos de condição, repetição e gráficos.
3 COMANDOS CONDICIONAIS E DE LAÇO Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos. 3.1 COMANDOS CONDICIONAIS 3.1.1 Comando IF Como o próprio nome já indica, estes comandos
Leia maisBanco de Dados. Conversão para o Banco de Dados SisMoura
Banco de Dados Conversão para o Banco de Dados SisMoura Objetivo : Converter as informações contidas em um determinado banco de dados para o banco de dados do Sismoura. Restaurar Banco de Dados em branco
Leia maisEXEMPLOS DE COMANDOS NO SQL SERVER
EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;
Leia maisIntegridade dos Dados
1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições
Leia maisPersistência de Classes em Tabelas de Banco de Dados
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos
Leia mais2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = 10... 10 X 10 = 100 1 X 2 = 2...
1. Criar um bloco PLSQL anônimo para imprimir a tabuada abaixo: 5 X 1 = 5 5 X 2 = 10... 5 X 10 = 50 V_N CONSTANT NUMBER(2) := 5; FOR I IN 1..10 LOOP DBMS_OUTPUT.PUT_LINE(V_N ' X ' I ' = ' V_N*I); 2. Criar
Leia maisBanco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011
Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de
Leia mais