BD Aula 16
- Função:
- As funções no Banco de Dados mais comuns são as funções de agregação:
• sum()
• count()
• avg()
• min()
• max()
- Função de Agregação:
- Utilizadas em operações simples como soma, contagem, média, mínimo e máximo
- O PostgreSQL possui uma gama de funções para realizar operações matemáticas, conversões de tipos de dados, funções de formatação, geográficas, dente outras
- Permite a criação de funções definidas pelo usuário
- Essas funções podem ser criadas em linguagem C, SQL, PL/SQL, PL/TCL, PL,PERL e PL/PHP
- Exemplo Função 01:
- Conversão de kilômetros em milhas
- Realiza uma operação aritmética por meio de instruções SQL
- Os parâmetros são representados exatamente na ordem que são passados para a função como ($1,
$2, $3, ...)
- Tipo de Linguagem (SQL)
CREATE FUNCTION KM_TO_MILHAS(FLOAT)
RETURNS FLOAT AS
'SELECT $1 * 0.6'
LANGUAGE 'SQL'
- Para invocar a função, devemos utilizar o comando SELECT.
- Exemplo: converter 100 kilômetros para milhas
SELECT km_to_milhas(100) as milhas;
Retornos Múltiplos
- Normalmente, a maioria das funções retorna apenas um valor
- Cláusula SETOF: permite o retorno de múltiplos valores
- Uma função permite realizar operações como inserts, updates, deletes
- Função 02:
- Função que retorna todos os clientes menores de idade
- Tipo de Linguagem (SQL)
CREATE FUNCTION FN_MENORES() RETURNS SETOF CLIENTES AS
'SELECT *
FROM CLIENTES
WHERE IDADE < 18'
LANGUAGE 'SQL';
-
Para invocar a função, devemos utilizar o commando SELECT
Exemplo:
SELECT CODIGO, NOME
FROM FN_MENORES();
- EXEMPLO FUNÇÃO 02:
- Recuperar diversas informações provenientes do cruzamento de tabelas (JOINS)
- Tabelas: Clientes, Compras e Produtos
SELECT C.CODIGO, C.NOME, M.QUANTIDADE, M.PRECO, P.CODIGO, P.DESCRICAO
FROM CLIENTES C, COMPRAS M, PRODUTOS P
WHERE C.CODIGO = M.REF_CLIENTES
AND P.CODIGO = M.REF_PRODUTOS;
- Iremos substituir a consulta acima, a qual necessita do cruzamento de 3 tabelas por um SELECT apenas (iremos implementar 02