BD Aula 16

1577 palavras 7 páginas
FUNÇÕES SQL E PL/PGSQL
- 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

Relacionados

  • Ligação Northwind
    327 palavras | 2 páginas
  • Dephil
    1663 palavras | 7 páginas
  • jjjjjjjjjjjjjj
    681 palavras | 3 páginas
  • Espirometria
    686 palavras | 3 páginas
  • Busca
    1580 palavras | 7 páginas
  • banco de dados
    1637 palavras | 7 páginas
  • GBaula10
    3416 palavras | 14 páginas
  • Triangulo ortogonal
    3540 palavras | 15 páginas
  • Trabalhos
    924 palavras | 4 páginas
  • introdução a bancos de dados
    1844 palavras | 8 páginas