back to top

PostgreSQL: Views, transactions e Cursors

Le Views consentono di generare delle "tabelle virtuali" in cui sono state già eseguite operazioni di selezione e manipolazioni dei dati, ciò consente di non dovre ricorrere nuovamente ad istruzioni SQL nel momento in cui desideriamo lavorare con output precedentemente ottenuti.

Nel listato proposto di seguito descriviamo il codice necessario per la generazione di una View in grado di operare una query di selezione dei dati contenuti in due tabelle:

CREATE VIEW Vendite AS
SELECT
  Prodotto.Marca,
  Prezzo.Quantita,
  FROM Venduto, Magazzino
  WHERE Venduto.Ordine = Magazzino.Ordine;
La clausola AS ("come"), indica che dalla SELECT dovrà essere creata una nuova tabella chiamata "Vendite" prodotta dall’estrazione congiunta dei dati dalle tabelle "Venduto" e "Magazzino"; la tabella virtuale ottenuta potrà quindi essere richiamata e utilizzata per le operazioni di elaborazione senza dover ripetere la SELECT utilizzata nella creazione della View.

I Cursors sono dei puntatori diretti verso recordset di determinate query, tramite un Cursor è possibile avere accesso ai recordset e procedere all’assegnamento di valori per campi e variabili:

DECLARE cursor CURSOR FOR SELECT * from tabella;
DECLARE cursor indica all’ORDBMS l’introduzione di un Cursor a cui farà segiuto la creazione del recordset di riferimento.

Le Transactions permettono di utilizzare query multiple nel caso in cui tutte abbiano esito positivo, gli errori verranno gestiti in modo tale da non pregiuducare i dati:

BEGIN;

INSERT INTO tabella
VALUES (
  01,
  'ciao',
  'buongiorno',
  'buonasera',
  'buonanotte'
);

COMMIT;
Una Transaction viene inizializzata tramite la clausola BEGIN, dopo di che viene introdotta la query e si dà seguito alla transazione tramite COMMIT.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.
Articolo precedente
Articolo successivo