Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Le novità di MySQL 5: Le Views :: Indice Php

Le novità di MySQL 5: Le Views

Categoria: Php Inserito il: 05-12-2005 Stampa (5724 click)

Le Views costituiscono un'innovazione particolarmente interessante in MySQL 5, in quanto coivolgono direttamente la rappresentazione dell'output, cioè del risultato generato dal DBMS per la soddisfazione di una richiesta (input) espressa sotto forma di istruzioni SQL.

Il risultato di una query è in generale rappresentato attraverso una "tabella virtuale"; per tabella intendiamo una collezione (insieme) formata da una o pił colonne e da zero o pił righe.
Mostriamo di seguito l'esempio pratico del possibile risultato di una query di selezione:

SELECT Nome, Mail FROM agenda;
La tabella così prodotta è in realtà, come anticipato, semplicemente la rappresentazione di un risultato, quindi "non esiste", non è "fisicamente" presente all'interno del nostro database.

Con MySQL 5 è ora possibile generare delle Views sulle base di query, cioè tabelle temporanee preventivamente popolate; le Views consentono istruzioni composte da query complesse comprendenti, se il caso lo prevede, funzioni o operazioni matematiche.

Gli output vengono quindi allocati tramite un recordset, sarà perciò possibile selezionare risultati derivanti da operazioni complesse e impegnative dal punto di vista delle risorse di sistema senza la necessità di doverle rieseguire nuovamente.

In pratica, una View si presenta come una tabella "derivata" la cui definizione diviene parte persistente di una base di dati. Per dare origine ad una View, utilizzeremo il comando CREATE VIEW a cui farà seguito il nome della View e il comando SELECT quale definizione della View:
CREATE VIEW view AS SELECT colonna 

FROM tabella;
Chi ha un pò di pratica con MySQL avrà sicuramente notato che la procedura di creazione di una View determina un processo di aliasing (indicato dalla clausola AS) su una determinata query di selezione (nel nostro caso: "SELECT colonna FROM tabella").

Dal momento in cui viene dichiarata e specificata, la View conserva in se stessa il risultato dell'interrogazione (persistenza) che potrà essere "riciclato" all'uopo evitando inutili ripetizioni e perdite di tempo nella ridigitazione delle istruzioni SQL al DBMS.

Le View possono essere introdotte per numerorisi tipi di query di selezione, e possibile inoltre utilizzare le joins, le UNION , e le subqueries. nell'esempio che proponiamo di seguito verrà definita una View per la selezione di due colonne da una tabella:
CREATE TABLE tabella (articoli INT, prezzo INT); 
INSERT INTO tabella VALUES(18,500);

CREATE VIEW view AS SELECT articoli, prezzo,
articoli*prezzo AS prodotto FROM tabella;
SELECT * FROM view;
La procedura seguita è abbastanza semplice da comprendere: innazitutto è stata creata una tabella con due campi ("articoli" e "prezzo"); in secondo luogo, nella tabella sono stati inseriti due valori, uno per ogni campo; è stata quindi introdotta una View con lo scopo di selezionare il contenuto della tabella ed elaborarne i dati creando un prodotto ottenuto moltiplicando i valori dei due campi.
Una SELECT applicata direttamente alla View consentirà di estrarre il risultato ("prodotto") senza dover effettuare nuovamente i calcoli.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle pił importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Le novità di MySQL 5: I Triggers
Peter Gulutzan, Software Architect alla MySQL AB, è uno degli sviluppatori di MySQL 5, egli spiega la presenza dei Triggers... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti