PostgreSQL - exibições e janelas

Índice
PostgreSQL é um dos motores de banco de dados que melhor atende aos padrões de ANSI-SQLAlém disso, vai além ao oferecer novas funções e construtores que vão desde simples atalhos para realizar consultas, até elementos inesperados que permitem romper os limites do que pode ser uma instrução SQL.
Visualizações
Como a maioria dos bancos de dados relacionais, PostgreSQL tem suporte para Visualizações, no entanto, ao contrário do SQL Server e MySQL, as visualizações no PostgreSQL não são atualizáveis ​​automaticamente sem recorrer ao uso de gatilhos do tipo AO INVÉS DE, desta forma com o uso de TRIGGERS ele se adapta e fica mais próximo do padrão.
A vantagem é que nos permite manter um maior controle sobre as visualizações e sobre a forma como as tabelas que fornecem as informações serão atualizadas.
Vamos ver na imagem a seguir um exemplo de como criar uma visualização em PostgreSQL usando seus recursos especiais:

Vamos explicar os pontos numerados da imagem de exemplo para que possamos ter uma visão mais detalhada do tópico.
  • Lidar com o apagamento com instruções EXCLUIR, ele exclui apenas o registro que corresponde à mesma chave do registro antigo.
  • Lida com inserções de dados.
  • Só atualiza se pelo menos uma das colunas da tabela fatos Foi mudado.
  • Gerencie as atualizações, use o registro ANTIGO ou antigo para determinar quais registros excluir ou atualizar com os dados do registro NOVO ou novo.
Então podemos criar nosso Desencadear da seguinte maneira para poder vinculá-lo à visão já construída.
 CRIAR TRIGGER trip_01_vw_facts_ins_upd_del EM VEZ DE INSERIR OU ATUALIZAR OU EXCLUIR EM census.vw_facts PARA CADA PROCEDIMENTO DE EXECUÇÃO DE LINHA census.trig_vw_facts_ins_upd_del (); 

Desta forma, quando fizermos qualquer inserção, modificação ou exclusão em nossa view, as tabelas que a compõem receberão os dados, vamos ver um exemplo de consulta:
ATUALIZAR census.vw_facts SET yr = 2012 ONDE yr = 2011 AND tract_id = '25027761200';

O que nos daria um resultado bem-sucedido: Consulta retornada com sucesso: 51 linhas afetadas, tempo de execução de 21 ms.
Janela
As janelas são um recurso padrão ANSI-SQL suportado por PostgreSQL, isso nos permite ver e usar os dados que estão além do registro atual, sem essas funções teríamos que ser feitos JUNTA-SE Y Sub-Querys para ser capaz de obter os dados e recursos de uma forma muito mais complexa.
O exemplo a seguir consiste em obter o valor média de uma coluna em uma tabela, vejamos o exemplo na imagem a seguir:

Como pudemos ver com a função AVG ela nos permite obter os valores de todos os campos sem ter que fazer JOINS e a função SOBRE vamos transformar isso em uma função Janela. Portanto, quando o PostgreSQL vê uma função desse tipo, ele irá varrer todas as linhas que estão de acordo com a cláusula WHERE para obter o resultado.
Com isso finalizamos o tutorial com o qual poderíamos aprender um pouco mais como PostgreSQL ele lida com as funções ANSI-SQL padrão e também vê como adiciona seu próprio estilo para estender a utilidade dessas funções.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave