Viste semplici: riutilizzo logico
Crei viste per incapsulare query complesse, semplificare i report e concedere accesso in lettura a un sottoinsieme di colonne.
Viste semplici: riutilizzo logico è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SQL Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SQL Academy include 4 lezioni in totale.
Che cos'è una vista?
Una vista è una SELECT salvata. Ogni volta che interroga la vista, viene eseguita la SELECT sottostante. È simile a una query con nome, sulla quale può eseguire JOIN, filtri e aggregazioni.
CREATE VIEW active_users AS
SELECT id, email, full_name
FROM users
WHERE deleted_at IS NULL;Utilizzo di una vista
La interroghi come una qualsiasi tabella:
SELECT COUNT(*) FROM active_users;
SELECT * FROM active_users WHERE email LIKE '%@gmail.com';Le viste non sono memorizzate
Viene memorizzata la definizione della vista, non il risultato. Ogni query espande la vista ed esegue la SELECT sottostante. Si applicano le stesse considerazioni sul piano di esecuzione.
Perché utilizzare le viste?
- Riutilizzo — definisca una query complessa una sola volta
- Astrazione — nasconda l'implementazione (unione di 3 tabelle → «active_users»)
- Sicurezza — conceda SELECT sulla vista senza esporre le tabelle di base
- Compatibilità — mantenga operative le forme delle vecchie query dopo le modifiche allo schema
CREATE OR REPLACE
Aggiorni una vista direttamente, ma solo se i tipi e l'ordine delle colonne corrispondono:
CREATE OR REPLACE VIEW active_users AS
SELECT id, email, full_name, last_login
FROM users
WHERE deleted_at IS NULL;
-- ERROR if columns conflict; DROP VIEW + CREATE VIEW instead.Viste con JOIN e aggregazioni
Un caso comune: riepilogo per utente:
CREATE VIEW user_stats AS
SELECT u.id, u.email,
COUNT(o.id) AS order_count,
COALESCE(SUM(o.total), 0) AS revenue
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.email;Viste aggiornabili
Le viste semplici (una sola tabella, senza aggregazioni né DISTINCT) sono aggiornabili: può eseguire INSERT/UPDATE/DELETE tramite esse. PostgreSQL le aggiorna automaticamente quando possibile.
Viste qualificate dallo schema
Inserisca le viste di utilità in uno schema dedicato:
CREATE SCHEMA api;
CREATE VIEW api.users_public AS
SELECT id, email, full_name FROM users WHERE deleted_at IS NULL;
GRANT SELECT ON api.users_public TO app_reader;Viste e autorizzazioni
Per impostazione predefinita, una vista viene eseguita con i privilegi dell'utente che la interroga, che deve comunque disporre delle autorizzazioni sulle tabelle di base. Per consentire a un utente con pochi privilegi di interrogare una tabella sensibile, utilizzi invece funzioni SECURITY DEFINER.
Considerazioni sulle prestazioni
Il planner espande le viste e applica le sue normali ottimizzazioni. Talvolta il GROUP BY di una vista impedisce il predicate push-down: suddivida la vista o la riscriva se EXPLAIN mostra un problema.
Dipendenze delle viste
L'eliminazione di una tabella di base viene bloccata se una vista dipende da essa. Utilizzi DROP TABLE ... CASCADE solo quando è realmente necessario. Elenchi gli oggetti dipendenti:
SELECT * FROM pg_depend
WHERE refobjid = 'users'::REGCLASS;Riepilogo
Le viste sono SELECT riutilizzabili.
- Le definisca una volta e le interroghi molte volte
- Astrazione e sicurezza
- Aggiornabili quando sono semplici
- Vengono rieseguite a ogni query: non dispongono di caching integrato
Verifica rapida
L'interrogazione di una vista memorizza il risultato?
Domande Frequenti
La lezione «Viste semplici: riutilizzo logico» è gratuita?
Sì — il testo completo di «Viste semplici: riutilizzo logico» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SQL Academy, passa a CoddyKit PRO. Il corso SQL Academy include 4 lezioni in totale.
Cosa imparerò in «Viste semplici: riutilizzo logico»?
Crei viste per incapsulare query complesse, semplificare i report e concedere accesso in lettura a un sottoinsieme di colonne. Eserciti SQL Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare SQL Academy?
Non è richiesta alcuna esperienza precedente. SQL Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Viste semplici: riutilizzo logico»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione SQL Academy?
Sì. Ogni lezione SQL Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Viste semplici: riutilizzo logico
- Viste aggiornabili e trigger INSTEAD OF
- Viste materializzate e strategie di REFRESH
- Quando preaggregare