• Nenhum resultado encontrado

Aula de Funções

N/A
N/A
Protected

Academic year: 2022

Share "Aula de Funções"

Copied!
41
0
0

Texto

(1)

Prof. (a): Danilo Monteiro Ribeiro

Aula de Funções

Banco de Dados Avançado

(2)

Revisão

• CREATE VIEW nomedaview AS query;

• Exemplo:

CREATE VIEW buscaNome AS SELECT nome FROM pessoa

• Como usar

SELECT * FROM buscaNome

(3)

• CREATE MATERIALIZED VIEW nomedaview AS query

• Exemplo

CREATE MATERIALIZED VIEW buscaNomeIdade AS SELECT nome,idade FROM Pessoa

(4)
(5)

• Funções (comandos mais comuns)

• Gatilhos (triggers)

(6)

• As funções foram acrescentadas ao padrão SQL por volta de 1996.

• Esse recurso permite ao usuário definir procedimentos (e funções) contendo

comandos SQL, que são armazenados no

servidor do SGBD e invocados pelo cliente por meio de um comando especial.

(7)

• Em outras palavras funções é uma coleção de comandos em SQL (ou outras linguagens)

disponíveis em Banco de dados. Encapsula tarefas repetitivas, aceita parâmetros de entrada e retorna um valor de status (para indicar aceitação ou falha na execução).

(8)

• VANTAGENS DO USO DE funções

• - Pode reduzir de tráfico de rede.

• - Pode aumenta a performance da aplicação, particularmente que requerem conexão e tem baixa velocidade.

• - São analisadas, optimizadas e armazenadas em uma forma executável no momento em que são adicionadas ao banco de dados.

(9)

• VANTAGENS DO USO DE funções

• É possível executar operações muito mais complexas que uma simples query.

• - Pode ser usada por aplicações distintas.

• - Pode proporcionar mais segurança ao banco de dados, acessando tabelas que o usuário

não tem acesso

(10)

• Permitem estender o poder da linguagem SQL através da criação de um conjunto de rotinas que podem ser usadas por aplicações

simplesmente passando parâmetros apropriados.

• Por estarem centralizadas no servidor essas rotinas podem ser atualizadas sem

preocupação com a sua disseminação para um número grande de aplicações.

(11)

• - Funções em Linguagem SQL: São funções que utilizam a sintaxe SQL e se caracterizam por não possuírem estruturas de condição (if, else, case), estruturas de repetição (while, do while, for), não permitirem a criação de

variáveis e utilizam sempre algum dos

seguintes comandos SQL: SELECT, INSERT, DELETE ou UPDATE.

(12)

• Para criar uma funções utilizando SQL no PostgreSQL utiliza-se o comando CREATE

• FUNCTION, da seguinte forma:

CREATE [ OR REPLACE ] FUNCTION nome ( [ tipo_do_parametro1 [, ...] ]

)

RETURNS tipo_retornado AS '

Implementacao_da_funcao;

'

LANGUAGE SQL; 12

(13)

SELECT soma(1,3);

(14)
(15)
(16)
(17)
(18)

• - Funções de Linguagens Procedurais: ao

contrário das funções SQL, aqui é permitido o uso de estruturas de condição e repetição e o uso de variáveis. As funções em linguagens

procedurais caracterizam-se também por não possuírem apenas uma possibilidade de

linguagem, mas várias. Normalmente a mais utilizada é conhecida como PL/PgSQL,

linguagem fortemente semelhante ao conhecido PL/SQL utilizado no Oracle.

(19)
(20)
(21)
(22)

SELECT calcularAno(2018,3); 22

(23)

• exemplo

(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)

• Quando desejar excluir uma função do sistema utilize o comando:

• DROP FUNCTION nome_da_funcao();

• Para excluir uma função é necessário passar toda a sua assinatura:

• DROP FUNCTION nome_da_funcao(INTEGER);

(33)

• Ainda existe o fato que no momento da

exclusão você pode excluir a função passando mais um parâmetro, como no exemplo a

seguir:

• DROP FUNCTION totalNota(INTEGER) RESTRICT;

• ou

(34)

• Passando o RESTRICT como parâmetro, a

exclusão da função será recusada caso existam dependências de objetos em torno da função (como por exemplo, triggers e operadores).

Com o CASCADE esses objetos serão excluídos juntamente com a função.

(35)

• GATILHOS (triggers)

(36)

• Gatilhos são semelhantes a funções, só que no lugar de terem que ser chamados a executar, existe condições especiais(gatilhos) para que ele se execute sozinho

• INSERT, delete update

(37)

Podemos usar um Gatilho ( Trigger ) nos seguintes casos:

Gravar trilha de auditoria de operações em uma tabela

Tratar regras de negócio em operações feitas em uma tabela Garantir integridade dos dados de uma tabela

Validar uma operação de atualização em uma tabela

Atualizar informações de cálculo em campos de uma tabela

(38)
(39)
(40)

• CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp FOR EACH ROW EXECUTE PROCEDURE emp_stamp();

(41)

• Um gatilho marcado FOR EACH ROW é

chamado uma vez para cada linha modificada pela operação. Por exemplo, um DELETE que afeta 10 linhas fará com que todos os

acionadores ON DELETE na relação de destino sejam chamados 10 vezes separadas, uma vez para cada linha excluída. Por outro lado, um acionador marcado como FOR EACH

Referências

Documentos relacionados

- Remover as pastilhas usadas e retornar todo o parafuso de regulagem em seguida montar uma pastilha nova do lado da roda, empurrando com a mão a pinça no sentido do cilindro de

A partir de pesquisa realizada junto ao Comitê Popular da Copa e das Olimpíadas do Rio de Janeiro, o artigo analisa alguns efeitos colaterais do processo de preparação e

Arrendatários e parceiros são mais prósperos e mais bem educados nas regiões onde a cultura da cana está concentrada, e existe uma correlação entre mercados de aluguel ativos e

Source: 2006 Census of Agriculture – IBGE.. Overall, Brazil follows the same pattern as most Latin American countries, with land use characterized by high inequality in

a) que, ao ser degradada pelo organismo, produz energia que pode ser usada para movimentar o corpo. b) inflamável que, queimada pelo organismo, produz água para manter a

Se no cadastro da administradora, foi selecionado na aba Configurações Comissões, para que as comissões fossem geradas no momento da venda do contrato, já é

A compreensão histórico-cultural de desenvolvimento humano foi a base teórica que sustentou nossas atividades investigativas envolvidas na formação continuada em

Poderão se inscrever e concorrer aos prêmios de mérito para as categorias descritas no item 2.1 somente as empresas associadas à Acirp, que estejam em dia com suas obrigações