Í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.
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