MySQL Viste: come creare viste da tabelle con esempi
Cosa sono le visualizzazioni MySQL?
VISUALIZZAZIONI sono tabelle virtuali che non memorizzano dati propri ma visualizzano dati memorizzati in altre tabelle. In altre parole, le VIEWS non sono altro che query SQL. Una vista può contenere tutte o alcune righe di una tabella. UN MySQL view può mostrare i dati di una o più tabelle.
MySQL Visualizza la sintassi
Diamo ora un'occhiata alla sintassi di base utilizzata per creare una vista in MySQL.
CREATE VIEW `view_name` AS SELECT statement;
DOVE
- “CREA VISTA `nome_vista`” dice MySQL server per creare un oggetto vista nel database denominato "view_name".
- “Dichiarazione AS SELECT” sono le istruzioni SQL da comprimere nel file MySQL Visualizzazioni. Può essere un'istruzione SELECT che può contenere dati da una o più tabelle.
Come creare visualizzazioni in MySQL
Di seguito è riportato un processo passo dopo passo per creare una vista in MySQL:
Passo 1) Crea la nostra prima visualizzazione utilizzando "myflixdb"
Creiamo ora la nostra prima vista utilizzando "myflixdb": creeremo una vista semplice che limiti le colonne visualizzate nella tabella dei membri.
Supponiamo che i requisiti di autorizzazione stabiliscano che il reparto contabilità possa vedere solo il numero, il nome e il sesso del membro dalla tabella del membro. Per raggiungere questo obiettivo è possibile creare una VISTA –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Passo 2) Espansione del nodo visualizzazioni
Eseguendo lo script precedente in MySQL workbench sul myflixdb ed espandendo il nodo visualizzazioni nell'esploratore del database si ottengono i seguenti risultati.
Tieni presente che l'oggettoaccounts_v_members è ora visibile negli oggetti delle visualizzazioni del database.
Passo 3) Esegui un'istruzione SELECT
Eseguiamo ora a Istruzione SELECT che seleziona tutti i campi dalla vista come mostrato di seguito MySQL creare un esempio di visualizzazione.
SELECT * FROM `accounts_v_members`;
Passo 4) Esegui uno script
Eseguendo lo script precedente in MySQL workbench su myflixdb ci fornisce i seguenti risultati mostrati di seguito.
membership_number | full_names | gender |
---|---|---|
1 | Janet Jones | Female |
2 | Janet Smith Jones | Female |
3 | Robert Phil | Male |
4 | Gloria Williams | Female |
5 | Leonard Hofstadter | Male |
6 | Sheldon Cooper | Male |
7 | Rajesh Koothrappali | Male |
8 | Leslie Winkle | Male |
9 | Howard Wolowitz | Male |
Sono state restituite solo le colonne autorizzate per il reparto contabilità. Altri dettagli trovati nella tabella dei membri sono stati nascosti.
Se vogliamo vedere le istruzioni SQL che compongono una vista particolare, possiamo usare lo script mostrato di seguito per farlo.
SHOW CREATE VIEW `accounts_v_members`;
L'esecuzione dello script precedente fornisce il nome della vista e le istruzioni SQL SELECT utilizzate per creare la vista.
Unisce e visualizza MySQL
Diamo ora un'occhiata a un esempio abbastanza complesso che coinvolge più tabelle e utilizza si unisce.
Imballeremo il JOIN creato che ottiene informazioni da tre (3) tabelle, ovvero membri, film e noleggi di film. Di seguito è riportato lo script che ci aiuta a raggiungere questo obiettivo.
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
L'esecuzione degli script precedenti crea la vista denominata general_v_movie_rentals nel nostro myflixdb
Selezioniamo ora tutti i campi da una tabella denominata general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Eseguendo lo script precedente in MySQL banco di lavoro rispetto a myflixdb ci fornisce i seguenti risultati mostrati di seguito.
membership_number | full_names | title | transaction_date | return_date |
---|---|---|---|---|
1 | Janet Jones | Pirates of the Caribean 4 | 20-06-2012 | 28-06-2012 |
1 | Janet Jones | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
3 | Robert Phil | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
2 | Janet Smith Jones | Forgetting Sarah Marshal | 21-06-2012 | 24-06-2012 |
3 | Robert Phil | X-Men | 23-06-2012 | 28-06-2012 |
Nota che non abbiamo dovuto scrivere la query JOIN complessa per ottenere informazioni su membri, film e dettagli sul noleggio di film. Abbiamo semplicemente utilizzato la vista in una normale istruzione SELECT come qualsiasi altra tabella ordinaria. La vista può essere chiamata da qualsiasi punto del sistema applicativo in esecuzione su myflixdb.
Eliminazione delle visualizzazioni MySQL
Il comando DROP può essere utilizzato per eliminare una vista dal file banca dati questo non è più necessario. La sintassi di base per eliminare una vista è la seguente.
DROP VIEW ` general_v_movie_rentals `;
Perché utilizzare le visualizzazioni?
Potresti voler utilizzare le visualizzazioni principalmente per i seguenti 3 motivi
- Alla fine, utilizzerai il tuo SQL conoscenza, per creare applicazioni, che utilizzeranno un database per i requisiti di dati. Si consiglia di utilizzare VIEWS della struttura della tabella originale nell'applicazione invece di utilizzare le tabelle stesse. Ciò garantisce che quando esegui il refactoring del tuo DB, il tuo codice legacy vedrà lo schema originale tramite la vista senza interrompere l'applicazione.
- Le VIEW aumentano la riutilizzabilità. Non dovrai creare query complesse che coinvolgono join ripetutamente. Tutta la complessità viene convertita in una singola riga di query usando le VIEW. Un codice così condensato sarà più facile da integrare nella tua applicazione. Ciò eliminerà le possibilità di errori di battitura e il tuo codice sarà più leggibile.
- VIEWS aiuta nella sicurezza dei dati. Puoi utilizzare le visualizzazioni per mostrare agli utenti solo le informazioni autorizzate e nascondere dati sensibili come i numeri di carta di credito.
Sintesi
- Le viste sono tabelle virtuali; non contengono i dati restituiti. I dati vengono archiviati nelle tabelle a cui si fa riferimento nell'istruzione SELECT.
- Le visualizzazioni migliorano la sicurezza del database mostrando solo i dati desiderati agli utenti autorizzati. Nascondono i dati sensibili.
- Le visualizzazioni semplificano la vita poiché non è necessario scrivere query complesse più e più volte.
- È possibile utilizzare INSERT, UPDATE e DELETE su una VIEW. Queste operazioni modificheranno le tabelle sottostanti della VIEW. L'unica considerazione è che VIEW dovrebbe contenere tutte le colonne NOT NULL delle tabelle a cui fa riferimento. Idealmente, non dovresti usare VIEWS per l'aggiornamento.