Upload
reinaldo-reboucas
View
96
Download
0
Embed Size (px)
Citation preview
Banco de Dados
PL-SQLPL-SQL
Prof. André Yoshimi KusumotoProf. André Yoshimi Kusumoto
PL-SQLPL-SQL
SQLSQLLinguagem de comando utilizada para comunicação com o BD;Linguagem de comando utilizada para comunicação com o BD;
SQL*PLUSSQL*PLUSFerramenta Oracle que reconhece e executa padrões PL/SQL e Ferramenta Oracle que reconhece e executa padrões PL/SQL e
Prof. André Y. Kusumoto - [email protected]
Ferramenta Oracle que reconhece e executa padrões PL/SQL e Ferramenta Oracle que reconhece e executa padrões PL/SQL e SQL;SQL;
PL/SQLPL/SQLLinguagem procedural que estende o SQL adicionando Linguagem procedural que estende o SQL adicionando aplicações lógicas.aplicações lógicas.
PL-SQL
Interação SQL e SQL*Plus
PL-SQL
Interação SQL e SQL*Plus
SQL*Plus Server
Oracle
Prof. André Y. Kusumoto - [email protected]
PL-SQLPL-SQL
Linguagem de processamento de transações.Linguagem de processamento de transações.Extensão da Structured Query Language (SQL)Extensão da Structured Query Language (SQL)Permite manipular dados e comandos SQL dentro de blocos Permite manipular dados e comandos SQL dentro de blocos estruturados, e unidades de código proceduralestruturados, e unidades de código procedural
Prof. André Y. Kusumoto - [email protected]
estruturados, e unidades de código proceduralestruturados, e unidades de código procedural
Alguns Benefícios:Alguns Benefícios:Desenvolvimento modularizadoDesenvolvimento modularizadoUso de blocos aninhadosUso de blocos aninhadosDeclaração de identificadores (variáveis, constantes, Declaração de identificadores (variáveis, constantes, cursores)cursores)Uso de controle de estruturas (condicionais, loops)Uso de controle de estruturas (condicionais, loops)
PL-SQL
Melhorando Performance
PL-SQL
Melhorando Performance
Grupo de comandos SQL dentro de um bloco reduz tráfego Grupo de comandos SQL dentro de um bloco reduz tráfego de redede rede
SQL
Prof. André Y. Kusumoto - [email protected]
Aplicação
Aplicação
Outros
Oracle
SQL
SQL
SQL
If .... Then
SQL
Else
SQL
End if
PL-SQL
Declarando uma variável
PL-SQL
Declarando uma variávelvar[iable] var[iable] datatypedatatype
DATATYPES PRINCIPAISVARCHAR2(comprimento) - Conjunto de caracteres (string) de tamanho variável. O
comprimento varia entre um máximo de 2000 caracteres e um mínimo de 1.
Prof. André Y. Kusumoto - [email protected]
comprimento varia entre um máximo de 2000 caracteres e um mínimo de 1. NUMBER(p, e) - Representa um número com uma precisão de p e uma escala de e. A
precisão p pode variar entre 1 e 38 e a escala e entre –84 e 127. LONG - Conjunto de caracteres de tamanho variável com até 2 gigabytes (231-1 bytes). DATE - Um valor de data entre 1 de Janeiro de 4712 AC e 31 de Dezembro de 4712 DC. CHAR(comprimento) - Conjunto de caracteres de tamanho fixo. O comprimento máximo
é de 255 bytes e o comprimento por omissão é de 1 byte. BLOB - Tipo de dados para conteúdos binários até 4 Gigabytes
PL-SQL
Estrutura do Bloco
PL-SQL
Estrutura do Bloco
DECLARE DECLARE -- OpcionalOpcionalVariáveis, constantes, cursoresVariáveis, constantes, cursores
BEGIN BEGIN -- MandatórioMandatório
Prof. André Y. Kusumoto - [email protected]
BEGIN BEGIN -- MandatórioMandatório-- Estrutura SQLEstrutura SQL-- Controle PL/SQLControle PL/SQL
EXCEPTION EXCEPTION -- OpcionalOpcional-- Ação a executar no caso de erroAção a executar no caso de erro
END; END; -- MandatórioMandatório
PL-SQL
Construções
PL-SQL
Construções
Prof. André Y. Kusumoto - [email protected]
Construção Descrição
Blocos Anônimos Bloco PL/SQL embutido em alguma aplicação
Stored | Application Procedure ou Função
Bloco PL/SQL nomeado que aceita parâmetros e pode receber várias chamadas de execução
Nota:Nota: Uma função é semelhante a uma procedure, exceto que a primeira deve retornar um Uma função é semelhante a uma procedure, exceto que a primeira deve retornar um valor enquanto que procedures não.valor enquanto que procedures não.
Procedure ou Função várias chamadas de execução
Triggers de Banco Bloco PL/SQL associado a tabelas do Banco de Dados e que disparam automaticamente
Triggers de Aplicação Bloco PL/SQL associado a algum evento da aplicação
PL-SQL
Criando uma Procedure
PL-SQL
Criando uma Procedure
Prof. André Y. Kusumoto - [email protected]
Sintaxe:Sintaxe:
PROCEDURE nomePROCEDURE nome
[(parâmetros,...)] [(parâmetros,...)] ------ parâmetros formaisparâmetros formais
ISISISIS
<bloco pl/sql><bloco pl/sql>
END nome;END nome;
Sintaxe de parâmetrosSintaxe de parâmetrosparâmetros [IN | OUT | IN OUT] datatypeparâmetros [IN | OUT | IN OUT] datatype
PL-SQL
Criando uma Procedure
PL-SQL
Criando uma Procedure
Prof. André Y. Kusumoto - [email protected]
Parâmetro Descrição
IN Argumento padrãoPassa um valor de ambiente de chamada para dentro da Procedure
OUT Deve ser especificadoOUT Deve ser especificadoRetorna um valor de dentro da procedure para o ambiente de chamada
IN OUT Deve ser especificadoPassa um valor de ambiente de chamada para dentro da Procedure e retorna um valor de dentro da procedure para o ambiente de chamada
PL-SQL
Criando uma Procedure
PL-SQL
Criando uma Procedure
Crie uma procedure para atualizar o salário de um Crie uma procedure para atualizar o salário de um empregado a ser especificado pelo usuário:empregado a ser especificado pelo usuário:
CREATE OR REPLACE PROCEDURE muda_salario
(v_cpf in number, v_novo_sal in number)
Prof. André Y. Kusumoto - [email protected]
(v_cpf in number, v_novo_sal in number)
is
begin
update empregados
set salario= v_novo_sal
where cpf = v_cpf;
commit;
end;
/
PL-SQL
Criando uma Função
PL-SQL
Criando uma Função
Prof. André Y. Kusumoto - [email protected]
Sintaxe:Sintaxe:
FUNCTION nomeFUNCTION nome
[(parâmetro,...)][(parâmetro,...)]
RETURN datatypeRETURN datatypeRETURN datatypeRETURN datatype
ISIS
<bloco pl/sql>;<bloco pl/sql>;
END nome;END nome;
PL-SQL
Criando uma Função
PL-SQL
Criando uma Função
Prof. André Y. Kusumoto - [email protected]
ExemploExemplo
function taxafunction taxa
(v_valor in number)(v_valor in number)
return numberreturn numberreturn numberreturn number
isis
beginbegin
return (v_valor * .7);return (v_valor * .7);
End;End;
PL-SQL
Prática
PL-SQL
Prática
Prof. André Y. Kusumoto - [email protected]
Crie a seguinte tabela Funcionario:Crie a seguinte tabela Funcionario:
CodFuncionario Long
Nome Varchar2(80)
Salario Number(10,2)
Desenvolva uma procedure que aumente os salários de todos os Desenvolva uma procedure que aumente os salários de todos os funcionários em 10%.funcionários em 10%.Criar uma função para calcular a área de uma circunferência Criar uma função para calcular a área de uma circunferência ((ππ.r²)..r²).
Salario Number(10,2)
Operador de ConcatenaçãoOperador de Concatenação
Representado por duas barras verticais( || )Representado por duas barras verticais( || )Junta colunas ou strings com outras colunas.Junta colunas ou strings com outras colunas.
Exemplo:Exemplo:
Prof. André Y. Kusumoto - [email protected]
Exemplo:Exemplo:> Select prenome || sobrenome as “Empregados”
from empregados;
•• Machado, Felipe Nery Rodrigues. Banco de Dados Machado, Felipe Nery Rodrigues. Banco de Dados -- Projeto e Projeto e Implementação, Érica, 2004, 1ª Edição.Implementação, Érica, 2004, 1ª Edição.•• SILBERSCHATZ, Abraham; KORTH, Henry e SUDARSHAN, S. SILBERSCHATZ, Abraham; KORTH, Henry e SUDARSHAN, S. Sistema de Banco de Dados Sistema de Banco de Dados –– São Paulo: MAKRON Books, 1999.São Paulo: MAKRON Books, 1999.
BibliografiaBibliografia
Prof. André Y. Kusumoto - [email protected]
Sistema de Banco de Dados Sistema de Banco de Dados –– São Paulo: MAKRON Books, 1999.São Paulo: MAKRON Books, 1999.•• HEUSER, Carlos Alberto. Projeto de Banco de Dados HEUSER, Carlos Alberto. Projeto de Banco de Dados –– Editora Editora Sagra Luzzatto, 2001, 4ª Edição.Sagra Luzzatto, 2001, 4ª Edição.
•• Notas de aula do Prof. Gustavo Henrique dos Santos Notas de aula do Prof. Gustavo Henrique dos Santos •• Silveira, José Silveira, José MarcosMarcos Barbosa da. Universidade Paulista, 2008.Barbosa da. Universidade Paulista, 2008.