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

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

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

Transcrição

1 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 da tabela CONSTRAINTS:... 4 Select, Insert, Update e Delete... 7 Seleção de dados usando as junções dos relacionamentos entre tabelas... 9 Visão VIEW Seqüência Sequence Blocos LOOP usando Cursor Procedimentos armazenados Stored Procedures Gatilhos Triggers Trigger mutante Funções Function Packages JOB Referências... 19

2 2 Objetivos Nesse artigo serão relatadas algumas dicas de PL/SQL. Os exemplos de PL/SQL abaixo foram realizados no Oracle 10g. A idéia para a elaboração desse artigo é auxiliar o pessoal que está iniciando em PL/SQL. Comentários Quando o comentário for de uma linha, pode usar dois hífens. Por exemplo: -- Esse seria um comentário de apenas uma linha. Quando o comentário ultrapassar uma linha usa o /*...*/. Por exemplo: /* Esse seria o comentário que ultrapassa uma linha. */ Declarações Tipo binary_integer number<precisão>,<escala> char<comprimento> long varchar2<comprimento> raw<comprimento Tipos de variáveis Descrição Numérico para armazenar valores inteiros Numérico para armazenar valor em ponto flutuante Alfanumérico de tamanho fixo com até caracteres Alfanumérico de tamanho variável com comprimento de até caracteres Alfanumérico de tamanho variável com comprimento de até caracteres Armazena dados binários de até caracteres Conversões de variáveis TO_CHAR - Converter um valor numérico para char select TO_CHAR99999,' ' from dual

3 3 TO_CHAR Converter uma data para o formato especifico select to_charsysdate, 'YYYY-MM-DD' from dual CC, SCC SYYY, YYYY, YEAR, SYEAR, YYY, YY, Y Q MONTH MON MM WW WHERE WHERE DDD DD D DAY DY J HH, HH12, HH24 MI SS Outros formatos de data TO_NUMBER - Converter um valor char para numérico select TO_NUMBER' ', ' ' from dual Século Ano Quarto de ano Mês por extenso Mês abreviado para três letras Mês numérico Semana do ano Semana do mês Início da semana do mês Dia do ano Dia do mês Dia da semana Nome do dia Dia abreviado p/ 3 letras Dia em data Juliana Hora Minuto Segundo NVL - Se a 1ª expressão vier null ou vazia ele retorna a 2ª expressão select NVL123,234 from dual select NVL'',234 from dual select NVLnull,234 from dual DDL Criar, alterar ou apagar tabelas Create, Alter or Drop table Script para criar tabela: CREATE TABLE <table_name> <column_name> <datatype> [<expr>], <column_name> <datatype> [<expr>],... CREATE TABLE TB_TESTE cod NUMBER, nm_pessoa VARCHAR214,

4 4 salario NUMBER10,2 Para visualizar a descrição da tabela TB_TESTE: DESCRIBE TB_TESTE DESC TB_TESTE Com a tabela já existente é possível acrescentar campos ou alterar tipo do campo, desde que, o tipo possa ser suportado. Para adicionar campo a tabela: ALTER TABLE TB_TESTE ADD data_atual date ALTER TABLE TB_TESTE ADD sexo char1 Para alterar o tipo do campo da tabela: ALTER TABLE TB_TESTE MODIFY sexo varchar215 Para remover o campo da tabela: ALTER TABLE TB_TESTE DROP sexo Para mudar o nome da tabela: RENAME TB_TESTE TO TB_PESSOA Para apagar a tabela: DROP TABLE tb_pessoa Restrições na criação da tabela CONSTRAINTS: CONSTRAINT NULL ou NOT NULL Na criação de tabelas é possível acrescentar algumas restrições para o momento dos inserts. Um exemplo seria a restrição NULL ou NOT NULL. Essa restrição é para determinar que o campo determinado permite ou não permite um insert com o campo vazio. CREATE TABLE TB_PRODUTO cod INT NOT NULL, nome VARCHAR250 NULL INSERT INTO TB_PRODUTO VALUES1,'A'

5 5 INSERT INTO TB_PRODUTO VALUESNULL,'A' INSERT INTO TB_PRODUTO VALUES2,NULL SELECT * FROM TB_PRODUTO DROP TABLE TB_PRODUTO CONSTRAINT UNIQUE A constraint UNIQUE tem a função de não permitir a inserção de itens repetidos. Na criação da tabela é permitido adicionar diversos campos com essa restrição. CREATE TABLE TB_PRODUTO cod INT UNIQUE, nome VARCHAR250 NULL INSERT INTO TB_PRODUTO VALUES1,'A' INSERT INTO TB_PRODUTO VALUESNULL,'A' INSERT INTO TB_PRODUTO VALUES1,'B' SELECT * FROM TB_PRODUTO DROP TABLE TB_PRODUTO CONSTRAINT PRIMARY KEY Tem a função de não permitir a inserção de itens repetidos. Na criação da tabela apenas um campo deve possuir essa característica. CREATE TABLE TB_PRODUTO cod INT NOT NULL PRIMARY KEY, nome VARCHAR250, valor number10,2 INSERT INTO TB_PRODUTO VALUES1,'A',10 INSERT INTO TB_PRODUTO VALUES1,'B',20 INSERT INTO TB_PRODUTO VALUESNULL,'C',30 DROP TABLE TB_PRODUTO CREATE TABLE TB_PRODUTO cod INT NOT NULL, nome VARCHAR250, valor NUMBER10,2, CONSTRAINT PK_PRODUTO PRIMARY KEYcod

6 6 CONSTRAINT FOREIGN KEY Usado para relacionamento entre tabelas. Para inserir os dados em uma tabela que possui relacionamento, será necessário que exista o mesmo dado na tabela relacionada, se não existir, não será permitido A inserção e ocorrerá erro. Verifique o exemplo abaixo: CREATE TABLE TB_VENDA cod INT NOT NULL PRIMARY KEY, nome VARCHAR250, cod_produto INT, CONSTRAINT FK_PRODUTO_VENDA FOREIGN KEY cod_produto REFERENCES TB_PRODUTOcod INSERT INTO TB_VENDA VALUES1,'A',1 INSERT INTO TB_VENDA VALUES1,'A',2 SELECT * FROM TB_VENDA DROP TABLE TB_VENDA CHECK CONSTRAINT Restrição para determinar o tipo da informação Verifique o exemplo abaixo: Nesse exemplo só vai permitir a inserção do cod acima de 0. CREATE TABLE TB_TESTE1 cod INT NOT NULL CHECK ID > 0, nome VARCHAR250 INSERT INTO TB_TESTE1 VALUES1,'A' INSERT INTO TB_TESTE1 VALUES-1,'A'

7 7 Vamos criar a tabelas para os próximos testes: CREATE TABLE TB_CARGO cod NUMBER PRIMARY KEY, ds_cargo VARCHAR214 CREATE TABLE TB_PESSOA cod NUMBER PRIMARY KEY, nm_pessoa VARCHAR214, salario NUMBER10,2, cargo NUMBER, CONSTRAINT fk_cargo_pessoa FOREIGN KEY cargo REFERENCES tb_cargocod Select, Insert, Update e Delete Funções sql para manipular uma tabela Sintaxe de Insert Exemplo para inserir na tabela criada anteriormente: INSERT INTO tb_cargo cod, ds_cargo VALUES 1,'Contador' INSERT INTO tb_cargo cod, ds_cargo VALUES 2,'Auxiliar' INSERT INTO tb_cargo cod, ds_cargo VALUES 3,'Gerente' INSERT INTO tb_pessoa cod,nm_pessoa, salario, cargo VALUES 1,'José Silva',700.00,1 INSERT INTO tb_pessoa cod,nm_pessoa, salario, cargo VALUES 2,'Pedro Henrique', ,2 INSERT INTO tb_pessoa cod,nm_pessoa, salario, cargo VALUES 3,'Lucas Andrade', ,3 Funções sql para manipular uma tabela SELECT SELECT <columns> FROM <table> Exemplo: select * from TB_PESSOA Funções interessantes para ser usada no select: Para deixar os caracteres todos em maiúsculo: UPPER Exemplo: select UPPERnm_pessoa from tb_pessoa

8 8 Para deixar os caracteres em minúsculos: LOWER Exemplo: select LOWERnm_pessoa from tb_pessoa Para deixar o primeiro caractere de cada frase em maiúsculo: INITCAP Exemplo: select INITCAP'jose maria dos santos' from dual Concatenando dados: select 'nome: ' nm_pessoa, 'salario: ' salario from tb_pessoa Trabalhando com condições where Para trazer apenas uma pessoa específica pesquisando por nome ou por código: SELECT * FROM tb_pessoa WHERE nm_pessoa = 'José Silva' SELECT * FROM tb_pessoa WHERE nm_pessoa LIKE 'Lucas%' SELECT * FROM tb_pessoa WHERE cod = 3 Critérios de ordenação SELECT * FROM tb_pessoa ORDER BY nm_pessoa SELECT * FROM tb_pessoa order by cod Critérios de condições Símbolo Descrição Exemplo = Igual SELECT * FROM tb_pessoa WHERE salario = 3000 < Menor SELECT * FROM tb_pessoa WHERE salario < 1000 > Maior SELECT * FROM tb_pessoa WHERE salario > 1000 <= Menor ou Igual >= Maior ou Igual SELECT * FROM tb_pessoa WHERE salario <= 1000 SELECT * FROM tb_pessoa WHERE salario >= 1000 <> Diferente SELECT * FROM tb_pessoa WHERE salario <> 1000!= Diferente SELECT * FROM tb_pessoa WHERE salario!= 1000 ^= Diferente SELECT * FROM tb_pessoa WHERE salario ^= 1000 BETWEEN... END Entre SELECT * FROM tb_pessoa WHERE salario between 700 and 2000 IN Igual SELECT * FROM tb_pessoa WHERE salario in680,1360,2720 AND E SELECT * FROM tb_pessoa WHERE salario > 1000 AND salario < 2000 OR Ou SELECT * FROM tb_pessoa WHERE salario = 2000 or salario = 3000 NOT Negação SELECT * FROM tb_pessoa WHERE salario not in680,1360,2720 SUBSTR

9 9 Determina quantos caracteres serão exibidos SELECT SUBSTR'José Silva Santos',1,10 FROM DUAL INSTR Informa em que posição está o primeiro caractere requerido SELECT INSTR'José Silva Santos','v' FROM DUAL LENGTH Informa a quantidade de caracteres possui o texto informado SELECT LENGTH'José Silva Santos' FROM DUAL LPAD Preenche A esquerda com o caractere que FOR determinado até preencher A quantidade determinada. SELECT salario, LPADsalario,10,'0' FROM tb_pessoa RPAD Preenche A direita com o caractere que FOR determinado até preencher A quantidade determinada. SELECT salario, RPADsalario,10,'0' FROM tb_pessoa TRIM Remove o caractere informado na frase SELECT TRIM'-' FROM '- Primeiro Teste' FROM DUAL ADD_MONTHS Acrescentar meses a frente SELECT ADD_MONTHS'01-MAI-2013',3 FROM DUAL Seleção de dados usando as junções dos relacionamentos entre tabelas INNER JOIN Seleciona os dados relacionados das duas tabelas. SELECT p.nm_pessoa, p.salario, cg.ds_cargo FROM tb_pessoa p INNER JOIN tb_cargo cg ON cg.cod = p.cargo LEFT JOIN Seleciona os dados relacionados das duas tabelas e da tabela a esquerda seleciona também os dados que estão nulos. SELECT p.nm_pessoa, p.salario, cg.ds_cargo FROM tb_pessoa p LEFT JOIN tb_cargo cg ON cg.cod = p.cargo RIGHT JOIN Seleciona os dados relacionados das duas tabelas e da tabela a direita seleciona também os dados que estão nulos

10 10 SELECT p.nm_pessoa, p.salario, cg.ds_cargo FROM tb_pessoa p RIGHT JOIN tb_cargo cg ON cg.cod = p.cargo Visão VIEW VIEW é uma tabela lógica que pode ser baseada em uma ou mais tabelas. Uma VIEW conceitualmente se aplica para minimizar o acesso aos dados de uma tabela ou a composição de um JOIN. Sintaxe da VIEW: CREATE OR REPLACE VIEW vw_pessoa_cargo AS SELECT p.cod, p.nm_pessoa, p.salario, ca.ds_cargo FROM tb_pessoa p INNER JOIN tb_cargo ca ON ca.cod = p.cargo select * from vw_pessoa_cargo Seqüência Sequence O Oracle gera automaticamente um novo valor para uma chave primária. Constrói o próximo valor da chave primária referente a uma seqüência através do comando INSERT. Sintaxe para cria sequence CREATE SEQUENCE sq_pessoa INCREMENT BY 1 START WITH 1 MAXVALUE CYCLE; Expressões: NEXTVAL - Gera o próximo valor disponível. CURRVAL - Faz referência a mais recente valor gerado. SELECT sq_pessoa.nextval FROM DUAL; SELECT sq_pessoa.currval from DUAL; Exemplo: INSERT INTO TB_PESSOAcod, nm_pessoa, salario, cargovaluessq_pessoa.nextval, 'Claudio', 1200,2 Blocos A estrutura de bloco vai ser muito usada na criação de procedure, trigger, function e package.

11 11 Estrutura de um bloco DECLARE - Contém a declaração de todas as variáveis, constantes, cursores e etc. - Contém os comandos EXCEPTION - Contém as ações que serão tomadas se ocorrer algum erro na execução. DECLARE salario number10,2; data date; salario := ; data := sysdate; DBMS_OUTPUT.PUT_LINE'Salário:' TO_CHARsalario; DBMS_OUTPUT.PUT_LINE'Dia:' TO_CHARdata, 'day'; LOOP usando Cursor Simples LOOP usando variáveis DECLARE v_nome VARCHAR215; v_salario number10,2; CURSOR my_cursor IS SELECT nm_pessoa, salario INTO v_nome, v_salario FROM TB_PESSOA; OPEN my_cursor; LOOP FETCH my_cursor INTO v_nome, v_salario; EXIT WHEN my_cursor%notfound; DBMS_OUTPUT.PUT_LINE'Nome: ' v_nome ' Salário: ' v_salario; END LOOP; Simples WHILE muito bom para ser usado sem variável como o exemplo abaixo DECLARE CURSOR my_cursor IS SELECT * FROM TB_PESSOA; l_record my_cursor%rowtype; OPEN my_cursor; FETCH my_cursor INTO l_record; while my_cursor%found LOOP DBMS_OUTPUT.PUT_LINE'Nome: ' l_record.nm_pessoa ' Salário: ' l_record.salario; FETCH my_cursor INTO l_record;

12 12 END LOOP; CURSOR usando parâmetro DECLARE CURSOR my_cursorp_cod NUMBER IS SELECT nm_pessoa FROM TB_PESSOA WHERE cod = p_cod; pessoa my_cursor%rowtype; type tpessoas is table of my_cursor%rowtype; pessoas tpessoas; i integer; OPEN my_cursor2; LOOP FETCH my_cursor INTO pessoa; EXIT WHEN my_cursor%notfound; DBMS_OUTPUT.PUT_LINE'Nome: ' pessoa.nm_pessoa; END LOOP; CLOSE my_cursor; OPEN my_cursor3; LOOP FETCH my_cursor INTO pessoa; EXIT WHEN my_cursor%notfound; DBMS_OUTPUT.PUT_LINE'Nome: ' pessoa.nm_pessoa; END LOOP; CLOSE my_cursor; LOOP usando o FOR FOR pessoas IN SELECT * FROM tb_pessoa LOOP DBMS_OUTPUT.PUT_LINE'Nome: ' pessoas.nm_pessoa; DBMS_OUTPUT.PUT_LINE'Salário: ' pessoas.salario ; END LOOP; Procedimentos armazenados Stored Procedures Stored Procedures ou Procedimentos armazenados são subprogramas armazenados com objetos do banco de dados. As Stored Procedure permitem criar blocos de código que pode conter instruções SQL. Serve para otimizar perfomance e aumentar a segurança das aplicações, além de promover reusabilidade e facilidade da manutenção.

13 13 Procedure usando parâmetro: CREATE OR REPLACE PROCEDURE SP_INSERIR_PESSOASp_nm_pessoa varchar2, p_salario number, p_cargo number IS INSERT INTO tb_pessoa cod, nm_pessoa, salario, cargo VALUES sq_pessoa.nextval, p_nm_pessoa, p_salario, p_cargo; END SP_INSERIR_PESSOAS; /*Para executar*/ SP_INSERIR_PESSOAS'Rita',2300,2; Procedure com retorno: CREATE OR REPLACE PROCEDURE SP_INSERIR_PESSOASp_nm_pessoa varchar2, p_salario number, p_cargo number, p_resultado out varchar2 IS INSERT INTO tb_pessoacod, nm_pessoa, salario, cargo VALUES sq_pessoa.nextval, p_nm_pessoa, p_salario, p_cargo; p_resultado := 'Cadastro realizado com sucesso! - Nome: ' p_nm_pessoa; END SP_INSERIR_PESSOAS; /*Para executar*/ DECLARE v_resultado varchar280; SP_INSERIR_PESSOAS'Jorge',2300,2, v_resultado; dbms_output.put_linev_resultado;

14 14 Gatilhos Triggers Functions ou Funções são blocos PL/SQL nomeados, semelhantes às Stored Procedures. A diferença é que as funções obrigatoriamente devem retornar um valor. Usada para ser executada no momento de uma instrução SQL. BEFORE INSERT BEFORE INSERT FOR EACH ROW AFTER INSERT AFTER INSERT FOR EACH ROW BEFORE UPDATE BEFORE UPDATE FOR EACH ROW AFTER UPDATE AFTER UPDATE FOR EACH ROW BEFORE DELETE BEFORE DELETE FOR EACH ROW AFTER DELETE AFTER DELETE FOR EACH ROW TRIGGER TIPO DE EVENTO Dispara uma vez antes de uma transação INSERT Dispara antes de cada novo registro criado. Dispara uma vez depois de uma transação INSERT Dispara depois de cada novo registro criado. Dispara uma vez antes de uma transação UPDATE Dispara antes de cada novo registro alterado. Dispara uma vez depois de uma transação UPDATE Dispara depois de cada novo registro alterado. Dispara uma vez antes de uma transação DELETE Dispara antes de cada novo registro apagado. Dispara uma vez depois de uma transação DELETE Dispara depois de cada novo registro apagado. Exemplo: Antes de criar um exemplo de trigger vamos criar uma tabela de log para teste. CREATE SEQUENCE sq_log_pessoa INCREMENT BY 1 START WITH 1 MAXVALUE cycle; CREATE TABLE tb_log_pessoa cod_log NUMBER PRIMARY KEY, cod_pessoa NUMBER, salario NUMBER10,2, cod_cargo number, tipo_operacao varchar230 ;

15 15 Vamos criar uma trigger AFTER INSERT. Quando for inserir um novo registro na tabela Tb_pessoa, a trigger vai inserir os mesmos dados na tabela Tb_log_pessoa e campo tipo_operacao informe qual tipo de operação está sendo realizado Ex: CADASTRO, ALTERAÇÃO, EXCLUSÃO. CREATE OR REPLACE TRIGGER TG_INSERT_PESSOA AFTER INSERT ON TB_PESSOA FOR EACH ROW INSERT INTO TB_LOG_PESSOAcod_log, cod_pessoa, salario, cod_cargo, tipo_operacao VALUESsq_log_pessoa.nextval, :NEW.cod, :NEW.salario, :NEW.cargo,'cadastro'; INSERT INTO tb_pessoa cod, nm_pessoa, salario, cargo VALUES sq_pessoa.nextval, 'Junior', 1000,1; É possível criar uma trigger que possua os eventos INSERT, UPDATE E DELETE. A trigger vai inserir os mesmos dados na tabela Tb_log_pessoa e campo tipo_operacao informe qual tipo de operação está sendo realizado Ex: CADASTRO, ALTERAÇÃO, EXCLUSÃO. CREATE OR REPLACE TRIGGER TG_INSERT_PESSOA AFTER INSERT OR UPDATE OR DELETE ON TB_PESSOA FOR EACH ROW IF INSERTING THEN INSERT INTO TB_LOG_PESSOAcod_log, cod_pessoa, salario, cod_cargo, tipo_operacao VALUESsq_log_pessoa.nextval, :NEW.cod, :NEW.salario, :NEW.cargo,'cadastro'; ELSE IF DELETING THEN INSERT INTO TB_LOG_PESSOAcod_log, cod_pessoa, salario, cod_cargo, tipo_operacao VALUESsq_log_pessoa.nextval, :OLD.cod, :OLD.salario, :OLD.cargo,'exclusão'; ELSE INSERT INTO TB_LOG_PESSOAcod_log, cod_pessoa, salario, cod_cargo, tipo_operacao VALUESsq_log_pessoa.nextval, :NEW.cod, :NEW.salario, :NEW.cargo,'alteração'; END IF; END IF; INSERT INTO tb_pessoa cod, nm_pessoa, salario, cargo VALUES sq_pessoa.nextval, 'Lourdes', 1000,1; DELETE FROM tb_pessoa WHERE nm_pessoa = 'Lourdes' AND salario = 1000 AND cargo = 1 update tb_pessoa set cargo = 2 where nm_pessoa = 'Junior' and salario = 1000 select * from tb_log_pessoa

16 16 Trigger mutante Trigger mutante é quando tentamos criar uma trigger para determinada tabela e dentro dela, tentamos manipular os dados dessa mesma tabela. Com toda certeza vai dá o erro: ORA-04091; Quando a trigger está sendo executada, no momento da manipulação da tabela, a mesma fica no modo bloqueado até que se encerre o procedimento, ou seja, não é permitido realizar nenhum tipo de select. Para resolver essa questão é só adicionar a instrução do Oracle chamado PRAGMA AUTONOMOUS_TRANSACTION; Esta instrução PRAGMA funciona como uma diretiva de compilação para o Oracle, que passa a tratar esta função como um código independente da transação principal que esteja ocorrendo. Assim, o COMMIT realizado na função, não afeta outras transações abertas. Exemplo: Criar uma Trigger na tabela TB_PESSOA que garanta que o soma dos salários por cargo não ultrapasse CREATE OR REPLACE TRIGGER TG_LIMITE_DESPESAS_CARGO BEFORE INSERT OR UPDATE ON TB_PESSOA FOR EACH ROW DECLARE PRAGMA AUTONOMOUS_TRANSACTION; v_total_por_cargo NUMBER; SELECT sumsalario INTO v_total_por_cargo FROM tb_pessoa p INNER JOIN tb_cargo ca ON ca.cod = p.cargo WHERE p.cargo = to_number:new.cargo; IFINSERTINGTHEN IFv_total_por_cargo + to_number:new.salario > 13000THEN dbms_output.put_line'limite de despesa está ultrapassado seu limite de ,00'; RAISE_APPLICATION_ERROR-20001,'Atenção: limite de despesa está ultrapassado seu limite de ,00.'; END IF; ELSE IFv_total_por_cargo - to_number:old.salario + to_number:old.salario > 13000THEN dbms_output.put_line'limite de despesa está ultrapassado seu limite de ,00'; RAISE_APPLICATION_ERROR-20001,'Atenção: limite de despesa está ultrapassado seu limite de ,00.'; END IF; END IF;

17 17 Funções Function Função Function é um conjunto de PL/SQL. É muito semelhante ao Store Procedure, a diferença é que a função sempre deve retornar um valor. CREATE OR REPLACE FUNCTION FC_SALARIOp_cod NUMBER RETURN NUMBER IS v_salario number10,2; SELECT salario INTO v_salario FROM tb_pessoa WHERE cod = p_cod; RETURN v_salario + v_salario * 10 / 100; END FC_SALARIO; Execução: DECLARE v_valor number; v_valor := FC_SALARIO1; dbms_output.put_line'teste ' v_valor; end; select salario,fc_salariocod from tb_pessoa; Packages O Package é um objeto do banco de dados capaz de armazenar procedures e functions integradas, que podem ser executadas separadamente como se fossem parte de uma biblioteca ou à partir de uma execução provocar várias execuções encadeadas. Packages são compostos de duas partes: A parte pública e a parte privada. Construção Pública: Descrição Pode ser referenciada de qualquer ambiente no Oracle. Localização Declarar dentro da package especification e definir dentro da package body Construção Privada: Descrição Pode ser referenciada somente dentro da mesma package Localização Declarar e definir dentro da package body o Digitar o código fonte através da um editor de texto, criando-se primeiro a package especification e depois a package body. o Executar o Script a partir do SQL*PLUS, através do comando Start o Utilizar o comando execute para executar a Procedure / Function de dentro da package.

18 18 Simples exemplo de Package: CREATE OR REPLACE PACKAGE PCK_PESSOA IS PROCEDURE PROC_CALC p_codigo IN NUMBER; END PCK_PESSOA; CREATE OR REPLACE PACKAGE BODY PCK_PESSOA IS PROCEDURE PROC_CALCp_codigo IN NUMBER IS v_salario NUMBER10,2; v_nm_pessoa varchar230; SELECT salario, nm_pessoa INTO v_salario, v_nm_pessoa FROM tb_pessoa WHERE cod = p_codigo; DBMS_OUTPUT.PUT_LINE'Salario de ' v_nm_pessoa ': ' TO_CHARv_salario+v_salario*15/100 ; END PCK_PESSOA; Para executar a package: PCK_PESSOA.PROC_CALC8; JOB Exemplo da procedure: CREATE OR REPLACE PROCEDURE SP_DELETE_PESSOA IS DELETE FROM TB_PESSOA END SP_DELETE_PESSOA; Criando uma nova JOB -- JOB DEFINED ENTIRELY BY THE CREATE JOB PROCEDURE. DBMS_SCHEDULER.CREATE_JOB JOB_NAME => 'JOB_SP_DELETE_PESSOA', JOB_TYPE => 'PLSQL_BLOCK', JOB_ACTION => ' SP_DELETE_PESSOA; ', START_DATE => SYSTIMESTAMP, REPEAT_INTERVAL => 'sysdate + 3/1440', END_DATE => NULL,

19 19 ENABLED COMMENTS ; => TRUE, => 'JOB PARA EXECUTAR PROCEDURE SP_DELETE_PESSOA.' Referências - Devmedia : - Apostilando :

Oracle 10g: SQL e PL/SQL

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

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

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

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

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

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

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

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

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

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

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

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

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

2008.1 SQL. Autor: Renata Viegas

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

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

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

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

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

1. Domínio dos Atributos

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

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

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

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Comandos DDL. id_modulo = id_m odulo

Comandos DDL. id_modulo = id_m odulo Comandos DDL Estudo de Caso Controle Acadêmico Simplificado Uma escola contém vários cursos, onde cada aluno possui uma matricula num determinado curso. Estes cursos, por sua vez, possuem módulos, aos

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

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

Linguagem SQL. Comandos Básicos

Linguagem SQL. Comandos Básicos Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.sc.usp.br Comando

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

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

Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho

Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho 1 Trabalhando com DATAS A Data é armazenada em um formato numérico interno, contendo: Século, ano, mês,

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 Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

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

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO.

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO. Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Curso Oracle 10g Prof. MSc. Luciano Blomberg lblomberg@uol.com.br 2011/1

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

SQL DDL Criando Tabelas e Restrições Instituto Militar de Engenharia IME Material extraido parcialmente de notas de aula de Maria Luiza Campos e Arnaldo Vieira Comandos de Definição de Dados Aplicação

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Structured Query Language (SQL)

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

SQL - Criação de Tabelas

SQL - Criação de Tabelas SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas

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

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 à 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

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

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

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

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

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

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

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

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

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) ) TADS Exercício Laboratório I Analise o modelo de banco de dados abaixo: MUSICA FAIXA Codigo_Musica: INTEGER Nome_Musica: VARCHAR(60) Duracao: NUMERIC(6,2) Codigo_Musica: INTEGER (FK) Codigo_CD: INTEGER

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

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

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

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

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

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

Leia mais

Treinamento sobre SQL

Treinamento 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 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

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

Escrito por Sex, 14 de Outubro de 2011 23:12 - Última atualização Seg, 26 de Março de 2012 03:33

Escrito por Sex, 14 de Outubro de 2011 23:12 - Última atualização Seg, 26 de Março de 2012 03:33 Preço R$ 129.00 Compre aqui SUPER PACOTÃO 3 EM 1: 186 Vídeoaulas - 3 dvd's - 10.5 Gybabyte. 1) SQL 2) Banco de Dados (Oracle 10g, SQL Server 2005, PostgreSQL 8.2, Firebird 2.0, MySQL5.0) 3) Análise e Modelagem

Leia mais

Linguagem SQL Sub-linguagem DDL

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

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

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

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

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

Linguagem SQL (Parte II)

Linguagem SQL (Parte II) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte II Introdução

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

SQL consulta com operadores

SQL consulta com operadores A empresa Virtual Data Comunication Ltda. Deseja fazer uma simulação de aumento de salário em R$ 100,00 sobre o salário de cada funcionário SELECT NOME, SALARIO + 100 FROM cadfun; Esta forma de apresentação

Leia mais

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios Laboratório de Banco de Dados Exercicios Modelo conceitual segundo notação de Peter Chen cliente (1,1) realizacao (1,n) venda (0,n) produto (1,1) contem Modelo conceitual gerado pela CASE Dezign for Database

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

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

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

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

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

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

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

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

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

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

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

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

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

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

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

Introdução à linguagem SQL

Introdução à linguagem SQL Introdução à linguagem SQL 1 Histórico A linguagem de consulta estruturada (SQL - Structured Query Language) foi desenvolvida pela empresa IBM, no final dos anos 70. O primeiro banco de dados comercial

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

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

SQL: Definição de tabelas, Modificações à Base de Dados

SQL: Definição de tabelas, Modificações à Base de Dados SQL: Definição de tabelas, Modificações à Base de Dados Fernando Lobo Base de Dados, Universidade do Algarve 1 / 24 Definição do esquema da base de dados O esquema da BD é composto pelas definições de

Leia mais

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela

Leia mais

BANCO DE DADOS Parte 4

BANCO DE DADOS Parte 4 BANCO DE DADOS Parte 4 A Linguagem SQL Introdução Desenvolvida pelo depto de pesquisa da IBM na década de 1970 (System R) Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

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

Tarefa Orientada 15 Manipulação de dados

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