Le viste SQL rappresentano un sottoinsieme di dati nel database, offrono maggiore sicurezza e semplicità per l'analisi e il reporting dei dati. Ecco come creare una vista MySQL per archiviare le query eseguite dinamicamente per generare risultati, invece di memorizzare i dati effettivi.
Come creare una vista MySQL
Ecco i passaggi per creare una vista MySQL.
Le viste SQL sono fondamentalmente query SQL memorizzate a cui è stato assegnato un nome di "vista". Quando accedi a una vista SQL, la loro query viene eseguita dinamicamente per restituire il set di risultati.
Le viste SQL in realtà non contengono dati ma solo la query archiviata e occupano pochissimo spazio.
Bonus Leggi:come ottenere utenti totali al giorno in MySQL
Quali sono gli usi della vista SQL
Ecco gli usi chiave della visualizzazione SQL
- Segnalazione – Le viste SQL rappresentano solo un sottoinsieme di dati. Quindi possono essere utilizzati per creare tabelle di report per l'analisi dei dati
- Sicurezza – Le viste SQL vengono utilizzate per offrire una maggiore sicurezza. Puoi tranquillamente concedere agli utenti l'accesso alle viste invece che alle tabelle sottostanti
- Semplicità – È possibile creare una vista singola da più tabelle utilizzando i join. In questo modo gli utenti possono accedere facilmente ai dati senza conoscere lo schema del database sottostante.
Bonus Leggi:Come ottenere nuovi utenti al giorno in MySQL
Quali sono i vantaggi delle viste in SQL
Ecco alcuni dei vantaggi delle viste in SQL:
- Una vista rappresenta una tabella virtuale e non una tabella reale. Quindi non occupano altro spazio oltre alla query SQL archiviata
- Puoi utilizzare le viste per ottenere un sottoinsieme di dati della tabella e limitare l'esposizione degli utenti ai dati sottostanti
- Allo stesso modo, puoi creare una vista MySQL con dati aggregati (ad es. somma, conteggio, ecc.)
- Puoi creare viste personalizzate che contengono dati da più tabelle, riepiloghi, partizioni o anche dati calcolati, senza modificare i dati sottostanti.
Bonus Leggi:Come calcolare le entrate in MySQL
Come creare una vista MySQL
È molto facile creare una vista in MySQL. La sintassi di base per creare una vista in MySQL è
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE [condition];
Supponiamo che tu abbia una tabella orders(order_date, product_id,quantity)
mysql> select * from orders; +------------+------------+----------+ | order_date | product_id | quantity | +------------+------------+----------+ | 2020-05-01 | 1 | 23 | | 2020-05-01 | 2 | 35 | | 2020-05-02 | 1 | 45 | | 2020-05-02 | 2 | 23 | | 2020-05-03 | 1 | 19 | | 2020-05-03 | 2 | 15 | | 2020-05-04 | 1 | 34 | | 2020-05-04 | 2 | 56 | +------------+------------+----------+
Supponiamo che tu voglia creare una vista MySQL (ad es. order_view) che mostri solo order_date e quantità. Ecco la query SQL per creare la vista
mysql> create view order_view as select order_date,quantity from orders;
Ora puoi interrogare questa vista proprio come faresti con una normale tabella.
mysql> select * from order_view; +------------+----------+ | order_date | quantity | +------------+----------+ | 2020-05-01 | 23 | | 2020-05-01 | 35 | | 2020-05-02 | 45 | | 2020-05-02 | 23 | | 2020-05-03 | 19 | | 2020-05-03 | 15 | | 2020-05-04 | 34 | | 2020-05-04 | 56 | +------------+----------+
Bonus Leggi:Come ottenere i dati sulle vendite degli ultimi 3 mesi in MySQL
Puoi anche sostituire la visualizzazione utilizzando CREA O SOSTITUisci dichiarazione. Questo sostituirà la query SQL per la visualizzazione.
mysql> create or replace view order_view as select order_date,product_id,quantity from orders; mysql> select * from order_view; +------------+------------+----------+ | order_date | product_id | quantity | +------------+------------+----------+ | 2020-05-01 | 1 | 23 | | 2020-05-01 | 2 | 35 | | 2020-05-02 | 1 | 45 | | 2020-05-02 | 2 | 23 | | 2020-05-03 | 1 | 19 | | 2020-05-03 | 2 | 15 | | 2020-05-04 | 1 | 34 | | 2020-05-04 | 2 | 56 | +------------+------------+----------+
Puoi anche creare una vista in MySQL con JOIN. Ecco un esempio
mysql> create view order_view as select orders.order_date,orders.quantity,sales.sale from orders INNER JOIN sales on orders.order_date=sales.order_date; mysql> select * from order_view; +------------+----------+----------+ | order_date | quantity | sale | +------------+----------+----------+ | 2020-05-01 | 23 | 350 | | 2020-05-01 | 23 | 375 | | 2020-05-02 | 45 | 423 | | 2020-05-02 | 23 | 350 | | 2020-05-03 | 19 | 230 | | 2020-05-03 | 15 | 180 | | 2020-05-04 | 34 | 450 | | 2020-05-04 | 56 | 650 | +------------+----------+----------+
Come eliminare la visualizzazione in MySQL
Ecco come rilasciare la visualizzazione in MySQL, se non ne hai bisogno. Ecco la sintassi
DROP VIEW view_name;
Ecco un esempio
DROP VIEW order_view;
Questo è tutto! Ora puoi creare facilmente una vista MySQL e utilizzarla per l'analisi dei dati e la creazione di report.
Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!