Oracle 10g: SQL e PL/SQL

Tamanho: px
Começar a partir da página:

Download "Oracle 10g: SQL e PL/SQL"

Transcrição

1 Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim

2 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 e o banco de dados Manutenibilidade Um procedimento armazenado no banco de dados pode ser usado com segurança por várias aplicações 2

3 Visão Geral PL/SQL é uma linguagem estruturada 3

4 Visão Geral Variáveis: Tipos SQL: varchar, date, number, etc. Tipos PL/SQL: boolean, binary_integer Atribuição: Direta: tax := price * tax_rate Comando DML: SELECT sal * 0.10 INTO bonus FROM emp 4

5 Visão Geral Cursores: Área para executar sentenças SQL e armazenar informações de processamento Implícitos o PL/SQL aloca um cursor para todas as consultas Explícitos para consultas que retornam mais que 1 registro, pode-se declarar um cursor para manipular registro a registro 5

6 Visão Geral Cursores: 6

7 Visão Geral Atributos: Variáveis e cursores PL/SQL tem atributos %TYPE: fornece o tipo de dados de uma variável ou coluna de uma tabela. Útil ao declarar variáveis que armazenarão valores de uma tabela. %ROWTYPE: fornece um registro que representa uma linha de uma tabela. 7

8 Estruturas de Controle IF-THEN-ELSE IF condição THEN sentenças ELSEIF condição THEN sentenças ELSE sentenças END IF; 8

9 Estruturas de Controle CASE CASE variável WHEN valor THEN sentenças; WHEN valor THEN sentenças; ELSE sentenças; END CASE; 9

10 Estruturas de Controle LOOP LOOP sentenças; IF condição THEN EXIT; END IF; END LOOP; 10

11 Estruturas de Controle WHILE-LOOP WHILE condição LOOP sentenças; END LOOP; 11

12 Estruturas de Controle FOR-LOOP FOR contador IN [REVERSE] de..até LOOP sentenças; END LOOP; Exemplo: FOR i IN REVERSE 1..3 LOOP atribui os valores 3,2,1 para i sentenças; END LOOP; 12

13 Comentários De uma linha: -- comentário bonus := nota * 0.15; -- cálculo De qualquer tamanho: /* calcular um bônus de 15% nas notas dos bons alunos */ 13

14 Operadores e precedência Operador ** *, / +, -, =, <, >, <=, >=, <>,!=, ~=, ^=, IS NULL, LIKE, BETWEEN, IN not And Or Operação Exponencial Multiplicação, divisão Adição, subtração, concatenação comparação Negação lógica Conjunção Disjunção 14

15 Oracle 10g: SQL e PL/SQL Procedures e functions Enzo Seraphim

16 Create procedure 16

17 Create procedure Sintaxe CREATE [OR REPLACE] PROCEDURE proc_name [(param[, param]...)] {IS AS} [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [proc_name]; 17

18 Create procedure Parâmetros param [IN OUT IN OUT] tipo In: somente entrada Out: somente saída In Out: entrada e saída 18

19 Create procedure /* Criando um procedimento que calcula a área */ CREATE OR REPLACE PROCEDURE calcular_area (largura in number, compr in number, area out number) AS BEGIN area := largura * compr; END calcular_area; / 19

20 Create procedure /* Declarando uma variável no ambiente para receber o resultado */ VARIABLE RESULTADO NUMBER; /* Executando o procedimento no SQLPLUS */ EXECUTE calcular_area(6,7,:resultado); /* Verificando o resultado */ PRINT :RESULTADO; 20

21 Create function Sintaxe CREATE [OR REPLACE] FUNCTION func_name [(param[, param]...)] RETURN datatype {IS AS} [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [func_name]; Exercício: Criar uma função que retorna a área e executá-la 21

22 Create function /* Criando uma função que calcula a área */ CREATE OR REPLACE FUNCTION encontrar_area (largura in number, compr in number) RETURN NUMBER IS area number; BEGIN area := largura * compr; return area; END encontrar_area; / 22

23 Create function /* usando a função em uma consulta */ select encontrar_area(8,9) from dual; /* executando a função com um execute */ VARIABLE RESULTADO NUMBER; EXECUTE :RESULTADO := encontrar_area(8,9); PRINT :RESULTADO; 23

24 Cursores Cursores explícitos são usados para manipular consultas que retornam mais de 1 registro em blocos PL/SQL Comandos: OPEN: inicializa o cursor FETCH: pode-se executar FETCH até que todos os registros sejam acessados CLOSE: libera o cursor 24

25 Cursores: Sintaxe Sintaxe: CURSOR cursor_name [(parametros)] [RETURN return_type] IS select_statement; 25

26 Cursores: Declaração Exemplos: DECLARE CURSOR c1 IS SELECT empno, ename, job, sal FROM emp WHERE sal > 2000; CURSOR c2 RETURN dept%rowtype IS SELECT * FROM dept WHERE deptno = 10; 26

27 Cursores : Open Abrindo um cursor: DECLARE CURSOR c1 IS SELECT ename, job FROM emp WHERE sal < 3000;... BEGIN OPEN c1;... END; 27

28 Cursores: Open Abrindo um cursor com parâmetro: DECLARE CURSOR c1 (name VARCHAR2, salary NUMBER) IS SELECT OPEN c1(emp_name, 3000); OPEN c1(emp_name, salary); 28

29 Cursores: Fetch Após aberto o cursor, pegar o próximo registro Para cada atributo resultante do cursor, deverá ser passado uma variável: FETCH c1 INTO my_empno, my_ename, my_deptno; 29

30 Cursores: Fetch Para processar todos os registros, pode ser usado um LOOP, tendo como condição de parada a propriedade do cursor %NOTFOUND: LOOP FETCH c1 INTO my_record; EXIT WHEN c1%notfound; END LOOP; 30

31 Cursores: Atributos %FOUND teste se um FETCH encontrou um registro LOOP FETCH c1 INTO my_ename, my_sal, my_hiredate; IF c1%found THEN -- fetch succeeded... ELSE -- fetch failed, so exit loop EXIT; END IF; END LOOP; 31

32 Cursores: Atributos %NOTFOUND oposto do %FOUND. Retorna FALSE se o último FETCH retornou um registro LOOP FETCH c1 INTO my_ename, my_sal, my_hiredate; EXIT WHEN c1%notfound;... END LOOP; 32

33 Cursores: Atributos %ISOPEN testa se o cursor foi aberto IF c1%isopen THEN... ELSE OPEN c1; END IF; 33

34 Cursores: Atributos %ROWCOUNT conta quantos registros foram processados até o presente FETCH. LOOP FETCH c1 INTO my_ename, my_deptno; IF c1%rowcount > 10 THEN... END IF;... END LOOP; 34

35 Exemplo Orçamento cod_orçamento cliente nota_fiscal data_orçamento data_notafiscal valor_total 1 contém N ItensOrçamento é N 1 Produto cod_orçamento cod_produto quantidade valor_unitário cod_produto descrição valor_unitário quantidade_estoque 35

36 Exemplo Modelo Relacional orcamento = {cod_orcamento, cliente, , notafiscal, data_orcamento, data_nota_fiscal} itensorcamento = { cod_orcamento (orcamento.cod_orcamento), cod_produto (produto.cod_produto), valor_unitario, quantidade} produto = {cod_produto, descricao, valor_unitario, quantidade_estoque} 36

37 Exemplo Modelo Relacional create table orcamento ( cod_orcamento number, cliente varchar2(20), varchar2(30), nota_fiscal char default 'N', data_orcamento date, data_notafiscal date, valor_total number(10,2) default 0.0, primary key(cod_orcamento) ); create table produto ( cod_produto number, descricao varchar2(20), valor_unitario number(10,2), quantidade_estoque number, primary key(cod_produto) ); create table itensorcamento( cod_orcamento number, cod_produto number, valor_unitario number(10,2), quantidade number, primary key (cod_orcamento, cod_produto), foreign key (cod_orcamento) references orcamento, foreign key (cod_produto) references produto ); 37

38 Cursores Exercício: escrever um procedimento chamado PROC_VALOR_ORCAMENTO que calcula o total de um orçamento e altera o atributo valor_total da tabela orçamento. Usar um cursor para percorrer ITENS_ORCAMENTO acumulando em uma variável o valor total (isso poderia ser feito com um simples SELECT) o procedimento deve ter como parâmetro de entrada o número do orçamento. 38

39 CREATE OR REPLACE PROCEDURE PROC_VALOR_ORCAMENTO (codigoorcamento IN NUMBER) IS BEGIN END PROC_VALOR_ORCAMENTO; / 39

40 CREATE OR REPLACE PROCEDURE PROC_VALOR_ORCAMENTO (codigoorcamento IN NUMBER) IS CURSOR ITENS (cod number) IS SELECT quantidade, valor_unitario FROM itensorcamento WHERE cod_orcamento = cod; BEGIN OPEN itens(codigoorcamento); -- percorrer registros do cursor acumulando o total -- alterar atributo valor_total tabela orçamento CLOSE itens; END PROC_VALOR_ORCAMENTO; / 40

41 CREATE OR REPLACE PROCEDURE PROC_VALOR_ORCAMENTO (codigoorcamento IN NUMBER) IS CURSOR ITENS (cod number) IS SELECT quantidade, valor_unitario FROM itensorcamento WHERE cod_orcamento = cod; quant itensorcamento.quantidade%type; valor itensorcamento.valor_unitario%type; total NUMBER := 0; BEGIN OPEN itens(codigoorcamento); LOOP FETCH itens INTO quant, valor; EXIT WHEN itens%notfound; total := total + quant * valor; END LOOP; UPDATE orcamento SET valor_total = total WHERE cod_orcamento = codigoorcamento; COMMIT; CLOSE itens; END PROC_VALOR_ORCAMENTO; / 41

42 insert into orcamento(cod_orcamento, cliente) values (1, 'ze'); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (100, 'computador', 1000, 10); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (101, 'impressora', 500, 10); insert into itensorcamento(cod_orcamento, cod_produto, quantidade, valor_unitario) values (1, 100, 2, 1000); insert into itensorcamento(cod_orcamento, cod_produto, quantidade, valor_unitario) values (1, 101, 3, 500); SELECT * FROM ORCAMENTO; SELECT * FROM ITENSORCAMENTO; EXECUTE PROC_VALOR_ORCAMENTO(1); SELECT * FROM ORCAMENTO; SELECT * FROM ITENSORCAMENTO; 42

43 Cursores Exercício: escrever um procedimento chamado ATUALIZA_ESTOQUE que altera o estoque de cada produto da tabela PRODUTOS. o procedimento deve ter como parâmetro de entrada o número do orçamento. 43

44 CREATE OR REPLACE PROCEDURE ATUALIZA_ESTOQUE (codigoorcamento IN NUMBER) IS CURSOR ITENS (cod number) IS select cod_produto, quantidade from itensorcamento where cod_orcamento = cod; BEGIN OPEN itens(codigoorcamento); -- percorrer itens do orçamento e alterar tabela produto -- para diminuir estoque CLOSE itens; END ATUALIZA_ESTOQUE; / 44

45 CREATE OR REPLACE PROCEDURE ATUALIZA_ESTOQUE (codigoorcamento IN NUMBER) IS CURSOR ITENS (cod number) IS select cod_produto, quantidade from itensorcamento where cod_orcamento = cod; codp itensorcamento.cod_produto%type; quant itensorcamento.quantidade%type; BEGIN OPEN itens(codigoorcamento); LOOP FETCH itens INTO codp, quant; EXIT WHEN itens%notfound; UPDATE produto SET quantidade_estoque = quantidade_estoque - quant WHERE cod_produto = codp; END LOOP; CLOSE itens; END ATUALIZA_ESTOQUE; / 45

46 insert into orcamento(cod_orcamento, cliente) values (1, 'ze'); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (100, 'computador', 1000, 10); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (101, 'impressora', 500, 10); insert into itensorcamento(cod_orcamento, cod_produto, quantidade, valor_unitario) values (1, 100, 2, 1000); insert into itensorcamento(cod_orcamento, cod_produto, quantidade, valor_unitario) values (1, 101, 3, 500); SELECT * FROM ORCAMENTO; SELECT * FROM ITENSORCAMENTO; EXECUTE ATUALIZA_ESTOQUE (1); SELECT * FROM ORCAMENTO; SELECT * FROM ITENSORCAMENTO; 46

47 Cursores Exercício: escrever uma função chamada VALOR_ORCAM que calcula o total de um orçamento e retorna o valor a função deve ter como parâmetro de entrada o número do orçamento 47

48 CREATE OR REPLACE FUNCTION VALOR_ORCAM (codigoorcamento IN NUMBER) RETURN NUMBER IS TOTAL NUMBER; BEGIN SELECT SUM(quantidade * valor_unitario) INTO TOTAL FROM itensorcamento WHERE cod_orcamento = codigoorcamento; RETURN TOTAL; END VALOR_ORCAM; / /* Para testar */ SELECT COD_ORCAMENTO, NOTA_FISCAL, VALOR_ORCAM(COD_ORCAMENTO) AS VALORTOTAL FROM ORCAMENTO; 48

49 Oracle 10g: SQL e PL/SQL Triggers Enzo Seraphim

50 Triggers Um gatilho (trigger) é um procedimento PL/SQL, C ou JAVA associado a uma tabela, visão ou evento. Use triggers para garantir que quando uma operação determinada ocorre, uma ação relacionada também ocorra. 50

51 Triggers 51

52 Triggers Uso Gerar valores de colunas derivados automaticamente Prevenir transações inválidas Log transparente Auditoria Modificar dados em tabelas quando INSERT, UPDATE, DELETE são executados em visões etc 52

53 Triggers Use-as quando necessário. Cuidado com triggers em cascata. 53

54 Triggers Podem ser chamados quando ocorre um evento para cada registro afetado por um INSERT, UPDATE ou DELETE após o evento antes do evento 54

55 Triggers Tipos DML triggers ocorrem antes ou após um INSERT, UPDATE ou DELETE Trigger de sentença Trigger de linha Instead of triggers triggers disparadas para executar INSERT, UPDATE ou DELETE em uma tabela quando disparado um INSERT, UPDATE ou DELETE em uma visão. Triggers de operações do banco de dados Disparadas em eventos do sistema SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN 55

56 Triggers DML triggers Trigger de linha FOR EACH ROW: executa o trigger para cada linha afetada pelo INSERT, UPDATE ou DELETE Trigger de sentença ausência do FOR EACH ROW : executa o trigger uma vez 56

57 Partes de um trigger 57

58 Create trigger: sintaxe 58

59 Create trigger Antes Depois ação tabela Trigger de sentença CREATE TRIGGER trigger_name BEFORE DELETE OR INSERT OR UPDATE ON table_name pl/sql_block código 59

60 Antes Depois ação tabela Create trigger para cada Trigger de linha CREATE TRIGGER salary_check BEFORE INSERT OR UPDATE ON employees FOR EACH ROW pl/sql_block código 60

61 Create trigger Trigger de linha é disparado uma vez para cada linha processada dentro do trigger, precisamos ter acesso aos valores dos atributos dos registros que estão sendo alterados pseudo registros: :old :new 61

62 Trigger de linha Trigger de linha pseudo registros: instrução insert :new instrução update :new :old instrução delete :old 62

63 Exemplo Orçamento cod_orçamento cliente nota_fiscal data_orçamento data_notafiscal valor_total 1 contém N ItensOrçamento é N 1 Produto cod_orçamento cod_produto quantidade valor_unitário cod_produto descrição valor_unitário quantidade_estoque 63

64 Exemplo Modelo Relacional orcamento = {cod_orcamento, cliente, , notafiscal, data_orcamento, data_nota_fiscal} itensorcamento = { cod_orcamento (orcamento.cod_orcamento), cod_produto (produto.cod_produto), valor_unitario, quantidade} produto = {cod_produto, descricao, valor_unitario, quantidade_estoque} 64

65 Exemplo Modelo Relacional create table orcamento ( cod_orcamento number, cliente varchar2(20), varchar2(30), nota_fiscal char default 'N', data_orcamento date, data_notafiscal date, valor_total number(10,2) default 0.0, primary key(cod_orcamento) ); create table produto ( cod_produto number, descricao varchar2(20), valor_unitario number(10,2), quantidade_estoque number, primary key(cod_produto) ); create table itensorcamento( cod_orcamento number, cod_produto number, valor_unitario number(10,2), quantidade number, primary key (cod_orcamento, cod_produto), foreign key (cod_orcamento) references orcamento, foreign key (cod_produto) references produto ); 65

66 Triggers Exercício: escrever um trigger chamado TRIG_VALOR_UNITARIO_ITENS que busca o valor unitário do produto toda vez que é inserido um item. Usar um cursor para localizar o produto PROD 66

67 CREATE or REPLACE TRIGGER TRIG_VALOR_UNITARIO_ITENS BEFORE INSERT ON ITENSORCAMENTO FOR EACH ROW declare CURSOR prod (cod number) IS SELECT valor_unitario FROM produto WHERE cod_produto = cod; begin OPEN prod( :new.cod_produto); FETCH prod INTO :new.valor_unitario; CLOSE prod; end; / 67

68 insert into orcamento(cod_orcamento, cliente) values (1, 'ze'); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (100, 'computador', 1000, 10); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (101, 'impressora', 500, 10); SELECT * FROM ITENSORCAMENTO; insert into itensorcamento(cod_orcamento, cod_produto, quantidade) values (1, 100, 2); insert into itensorcamento(cod_orcamento, cod_produto, quantidade) values (1, 101, 3); SELECT * FROM ITENSORCAMENTO; 68

69 Triggers Exercício: escrever um trigger chamado TRIG_VALOR_TOTAL_ORC que atualiza o valor total em orçamento toda vez que é inserido um item. 69

70 CREATE or REPLACE TRIGGER TRIG_VALOR_TOTAL_ORC AFTER INSERT ON ITENSORCAMENTO FOR EACH ROW begin UPDATE orcamento SET valor_total = valor_total + :new.quantidade * :new.valor_unitario WHERE cod_orcamento = :new.cod_orcamento; end; / 70

71 insert into orcamento(cod_orcamento, cliente) values (1, 'ze'); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (100, 'computador', 1000, 10); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (101, 'impressora', 500, 10); SELECT * FROM ORCAMENTO; insert into itensorcamento(cod_orcamento, cod_produto, quantidade) values (1, 100, 2); insert into itensorcamento(cod_orcamento, cod_produto, quantidade) values (1, 101, 3); SELECT * FROM ORCAMENTO; 71

72 Triggers Exercício: escrever um trigger chamado TRIG_QUANT_ESTOQUE_PROD que atualiza a quantidade no estoque na tabela de produto toda vez que é inserido um item. 72

73 CREATE or REPLACE TRIGGER TRIG_QUANT_ESTOQUE_PROD AFTER INSERT ON ITENSORCAMENTO FOR EACH ROW begin UPDATE produto SET quantidade_estoque = quantidade_estoque - :new.quantidade WHERE cod_produto = :new.cod_produto; end; / 73

74 insert into orcamento(cod_orcamento, cliente) values (1, 'ze'); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (100, 'computador', 1000, 10); insert into produto(cod_produto, descricao, valor_unitario, quantidade_estoque) values (101, 'impressora', 500, 10); SELECT * FROM PRODUTO; insert into itensorcamento(cod_orcamento, cod_produto, quantidade) values (1, 100, 2); insert into itensorcamento(cod_orcamento, cod_produto, quantidade) values (1, 101, 3); SELECT * FROM PRODUTO; 74

75 Triggers Tabelas mutantes é uma tabela que esta atualmente sendo modificada por uma instrução DML Trigger que fica em loop 75

76 Alter trigger Usado para habilitar ou desabilitar triggers Exemplo ALTER TRIGGER nomedotrigger ENABLE; 76

77 Drop trigger Exemplo DROP TRIGGER nomedotrigger; 77

Oracle PL/SQL Overview

Oracle 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 mais

Bancos de Dados I. Integridade semântica

Bancos 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 mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO 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 mais

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

PL/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 mais

Sistemas de Informação

Sistemas 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 mais

Banco 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 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 mais

FAPLAN - 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 mais

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL 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 mais

SQL Gatilhos (Triggers)

SQL 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 mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers 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 mais

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

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL 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

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃ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 mais

Logado no OracleXE vamos acessar a opção:

Logado 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 mais

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃ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 mais

Triggers no PostgreSQL

Triggers 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 mais

PL/pgSQL por Diversão e Lucro

PL/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 mais

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

Introduçã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 mais

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição.

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Conceitos PL/Sql Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Sintaxe CREATE SEQUENCE [schema.]sequence [INCREMENT BY

Leia mais

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

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 mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) 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 mais

UNINGÁ 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 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 mais

António Rocha Nuno Melo e Castro

Antó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 mais

Triggers. 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. 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 mais

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

Triggers 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 mais

Gatilhos (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 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 mais

INTRODUÇÃO AO PL/SQL

INTRODUÇÃO AO PL/SQL INTRODUÇÃO AO PL/SQL ALEX JOSE SILVA RECIFE/2015 Índice Introdução Ao Pl/Sql...3 Entendendo a linguagem...4 Principais características da linguagem PL/SQL...5 Blocos de código...5 Declaração de variáveis...5

Leia mais

Banco de Dados Avançados Banco de Dados Ativo

Banco 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 mais

BANCO 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 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 mais

MANUAL INSTALAÇÃO WEB SERVICE

MANUAL 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 mais

Comandos de Manipulação

Comandos 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 mais

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

Monitoria 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 mais

Integridade dos Dados

Integridade 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 mais

Triggers 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 mais

Linguagem PL/SQL e Triggers

Linguagem 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 mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS 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 mais

trigger insert, delete, update

trigger 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 mais

Introdução ao SQL. Aécio Costa

Introduçã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 mais

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

GBC043 - 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 mais

Bases de Dados 2007/2008. Aula 9

Bases 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 mais

Oracle 10g Dicas de PL/SQL. Conteúdo

Oracle 10g Dicas de PL/SQL. Conteúdo Oracle 10g Dicas de PL/SQL Conteúdo Objetivos... 2 Comentários... 2 Declarações... 2 Conversões de variáveis... 2 DDL Criar, alterar ou apagar tabelas Create, Alter or Drop table... 3 Restrições na criação

Leia mais

2008.1. A linguagem SQL

2008.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 mais

Bases 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. 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 mais

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS

RECUPERAÇÃ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 mais

Projeto de Banco de Dados

Projeto 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 mais

Funções Definidas pelo Usuário

Funções Definidas pelo Usuário BD II (SI 587) Funções Definidas pelo Usuário Prof. Josenildo Silva jcsilva@ifma.edu.br Funções definidas pelo usuário Funções precisam obrigatoriamente retornar um valor Somente aceitam parâmetros do

Leia mais

Tarefa Orientada 19 Triggers

Tarefa 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 mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP 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 mais

Consultoria e Treinamento em Bancos de Dados Relacionais

Consultoria 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 mais

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

Introduçã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 mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco 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

Prof. Josenildo Silva

Prof. Josenildo Silva BD II (SI 587) Gatilhos (Triggers) Prof. Josenildo Silva jcsilva@ifma.edu.br Motivação Algumas rotinas precisam ser executadas antes ou depois de um determinado evento no banco de dados Motivação Regras

Leia mais

SQL 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 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 mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição 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 Ingress SQL

Leia mais

Bases de Dados 2007/2008. Aula 8

Bases 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 mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA 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 mais

PostgreSQL. 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 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 mais

FERRAMENTA 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 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 mais

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

Introduçã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 mais

BD II (SI 587) Procedimentos Armazenados

BD II (SI 587) Procedimentos Armazenados BD II (SI 587) Procedimentos Armazenados Josenildo Silva jcsilva@ifma.edu.br MOTIVAÇÃO Contexto: Sistemas em 2 camadas Contexto: Sistemas em 3 camadas Problema 1: Alto volume de dados na rede Como reduzir

Leia mais

Controle de transações em SQL

Controle de transações em SQL Transações Controle de transações em SQL Uma transação é implicitamente iniciada quando ocorre uma operação que modifica o banco de dados (INSERT, UPDATE ou DELETE). Uma transação pode terminar normalmente

Leia mais

poder de manipulação de dados do SQL com poder de processamento das lp procedimentais

poder de manipulação de dados do SQL com poder de processamento das lp procedimentais PL/SQL Extensão ao SQL Estruturada em blocos Permite controlo do fluxo de execução Permite integração entre diferentes ferramentas Oracle Não permite comandos DDL PL/SQL combina: poder de manipulação de

Leia mais

8. 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) 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 mais

SQL DDL Criando Tabelas e Restrições

SQL 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 mais

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você por Cristóferson Guimarães Magalhães Bueno e Odilon Corrêa da Silva 1 O objetivo deste artigo é demonstrar como criar um sistema

Leia mais

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

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM 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 mais

Apostila do Minicurso de PL/SQL. François Oliveira

Apostila do Minicurso de PL/SQL. François Oliveira Apostila do Minicurso de PL/SQL François Oliveira PL/SQL é uma extensão para SQL ela adiciona a linguagem procedural ao SQL do Oracle. Ela oferece modernas características como sobrecarga, coleções, tratamento

Leia mais

CIÊNCIA E TECNOLOGIA DO RIO

CIÊNCIA E TECNOLOGIA DO RIO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE BANCO DE DADOS II Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia

Leia mais

Introdução ao PL/SQL

Introdução ao PL/SQL Introdução ao PL/SQL Pág.: 2/53 SUMÁRIO 1 FUNDAMENTOS... 4 1.1 O QUE É O PL/SQL?... 4 1.2 COMO É EXECUTADO UM PL/SQL NO ORACLE SERVER... 4 1.3 ESTRUTURA DE UM BLOCO PL/SQL... 5 1.4 TIPOS DE BLOCOS PL/SQL...

Leia mais

Hugo Pedro Proença, 2007

Hugo 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 mais

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

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL. Banco de Dados II PL/SQL - Procedures -Cursor - Funções Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO 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 mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programaçã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 mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 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 mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade.

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade. www.devm edia.com.br [versão para im pressão] MySQL TRIGGERS Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade. MySQL TRIGGERS Neste artigo, serão apresentados

Leia mais

São 182 videoaulas de Oracle pl/sql procedures functions triggers Forms Reports

São 182 videoaulas de Oracle pl/sql procedures functions triggers Forms Reports Preço R$ 129.00 Compre aqui São 182 videoaulas de Oracle pl/sql procedures functions triggers Forms Reports - Clique aqui para ver o cronograma das aulas - Clique aqui para ver as imagens deste curso -

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW, ÍNDICE e SEQUÊNCIA. Stored procedure PL/SQL. Procedimentos e Funções. Procedimento (procedure) Procedure

PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW, ÍNDICE e SEQUÊNCIA. Stored procedure PL/SQL. Procedimentos e Funções. Procedimento (procedure) Procedure PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW, ÍNDICE e SEQUÊNCIA Stored procedure Uma Stored procedure é um grupo de comandos SQL e PL/SQL que executam determinada tarefa e podem ser invocados por um nome.

Leia mais

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos.

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos. TRIGGERS Um trigger é uma instrução que o sistema executa automaticamente como um efeito colateral de uma modificação no banco de dados. Para criar um mecanismo de trigger, temos de cumprir dois requisitos:

Leia mais

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

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

2. 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...

2. 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 mais

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

f. Exemplo: verificar condição de aprovação de alunos Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Semana 17 1) Expressões CASE a. Tem a mesma finalidade que nas linguagens

Leia mais

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

Programando 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 mais

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:

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: - 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 mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

Leia mais

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis.

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis. UNISA Universidade de Santo Amaro http://www.unisa.br Material de Estudo Módulo I: Básico Banco de dados SQL Server http://www.unisa-sis.info Junho/2010 Objetivo do Workshop Compartilhar e apresentar

Leia mais

Programação SQL. Introdução

Programaçã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 mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

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

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes SQL Pacotes Laboratório de Bases de Dados Características Pacotes objetos do banco de dados são equivalentes a bibliotecas Armazenam procedimentos funções definições de cursores declarações de variáveis

Leia mais

Centro Universitário Franciscano

Centro Universitário Franciscano Centro Universitário Franciscano Banco de Dados II Prof a.: Walkiria Cordenonzi descrevem condições lógicas que podem ser válidas para um banco de dados ou para uma seqüência de transição de estados do

Leia mais

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

SQL 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 mais

SQL 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 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 mais

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

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de

Leia mais

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

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Banco de Dados Material Teórico Procedures, Functions, Exceptions e Triggers Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Prof. Ms. Claudio Brites Procedures, Functions,

Leia mais