fundamentos de programação oracle: sql · insert, update, delete) ou comandos pl/sql, e...

29
Curso de Extensão Prof. Walter Gima [email protected] Fundamentos de Programação Oracle: SQL

Upload: others

Post on 18-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Curso de Extensão

Prof. Walter [email protected]

Fundamentos de Programação

Oracle: SQL

Page 2: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Aula 4 - Conteúdo

• GROUP BY

• PL/SQL

• FUNCTION

• PROCEDURE

• TRIGGER

2

Page 3: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Group by

Realiza o agrupamento do registros alcançados por um

SELECT, acompanha uma função de agrupamento.

Exemplo:

SELECT f.nome, SUM(v.total) FROM funcionario f INNER JOIN venda v

ON f.codigo = v.funcionario GROUP BY f.nome

3

Page 4: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

• PL/SQL(Procedural Language/SQL) é a linguagem procedural desenvolvida pela

Oracle que é utilizada para montar os blocos PL/SQL.

• Um bloco PL/SQL consiste de um conjunto de instruções SQL (SELECT,

INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função

lógica única, afim de resolver um problema específico ou executar um conjunto de

tarefas afins. O Bloco PL/SQL também pode ser referenciado com Unidade de

Programa PL/SQL

• Os blocos PL/SQL são qualificados em bloco anônimo e Stored Procedure e

Functions.

O bloco anônimo

• Não tem nome

• Não está armazenado no SGDB

• Geralmente está armazenada na aplicação.

4

Page 5: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Stored SubProgramas

• Utiliza a estrutura do bloco anônimo com base.

• Estão armazenados no SGDB,

• A eles é atribuído um nome que poderá ser utilizado nas aplicações ou por outros

objetos do banco de dados

A estrutura de um bloco PL/SQL é constituída de três seções:

a) DECLAÇÃO (DECLARE) - onde são definidos os objetos PL/SQL como variáveis,

constantes, cursores e exceções definidas pelo usuário que poderão ser

utilizadas dentro do bloco.

b) BLOCO DE EXECUÇÕES (BEGIN..END;) - contém a seqüência de comandos

PL/SQL e instruções SQL do bloco.

c) TRATAMENTO DE ERRO (EXCEPTION) - onde serão tratados os erros definidos

e levantados pelo próprio bloco e os erros gerados pela execução do bloco

5

Page 6: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Blocos utilizados em um programa PL/SQL.

6

Page 7: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Declarações

Em DECLARE são declaradas as variáveis e constantes.

7

Page 8: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Declarações

Tipos de Dados:

8

Page 9: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Declarações

Tipos de Dados

%TYPE associa o tipo de uma variável ao tipo de uma coluna da tabela,

desta forma, automaticamente a variável assumirá o tipo de dado da

coluna.

%ROWTYPE criará uma estrutura de registro idêntica à estrutura

de uma tabela.

Exemplo:

9

Page 10: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Atribuição de Valores

variavel := 100 (sinal de dois pontos seguido do sinal de igual)

10

Page 11: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Atribuição de Valores

Utilizando INTO é outra forma de atribuir valores para uma variável onde o

resultado de um SELECT que será passado para a variável.

SELECT nome INTO vendedor FROM funcionario WHERE nome = 'MARINA';

Exemplo:

11

Page 12: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Estrutura Condicional

12

Page 13: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Estrutura Repetição

Loop

13

Page 14: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Estrutura Repetição

While - Loop

14

Page 15: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Estrutura Repetição

For - Loop

15

Page 16: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

PL/SQL

Estrutura Repetição

For - Loop

16

Page 17: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

17

Page 18: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

18

Page 19: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

19

Page 20: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

20

Page 21: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

21

Page 22: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

Utilizar Function para:

22

Page 23: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

23

Page 24: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

24

Page 25: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

25

Page 26: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Procedure/Functions

Executar uma procedure:

No SQL PLUS:

execute aumenta_taxa(1);

ou

call aumenta_taxa(1)

Na interface Web:

Begin

aumenta_taxa(1);

End;

26

Page 27: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Trigger

27

Page 28: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

EXERCICIOS

REALIZAR SELECTs do material da aula 3

+

Construir procedure que calcula o total de vendas da tabela de venda

Entrega até o dia 28/11/2011 por email:

[email protected]

28

Page 29: Fundamentos de Programação Oracle: SQL · INSERT, UPDATE, DELETE) ou comandos PL/SQL, e desempenha uma função lógica única, afim de resolver um problema específico ou executar

Dúvidas ?

[email protected]