Ecco quattro opzioni per mostrare tutte le viste all'interno di un database SQLite.
Lo sqlite_schema
Tabella
Ogni database SQLite contiene un singolo sqlite_schema
tabella che memorizza lo schema per quel database. Lo schema per un database è una descrizione di tutte le altre tabelle, indici, trigger e viste contenute nel database.
Possiamo interrogare questa tabella per restituire solo le visualizzazioni:
SELECT name
FROM sqlite_schema
WHERE type = 'view';
Esempio di risultato:
name -------- v1 vArtists vAlbums vGenres
Nel mio caso, ho quattro viste nel database.
Il sqlite_master
Tabella
Per la compatibilità storica, sqlite_schema
la tabella può anche essere definita sqlite_master
.
Quindi possiamo cambiare l'esempio precedente nel seguente:
SELECT name
FROM sqlite_master
WHERE type = 'view';
Esempio di risultato:
name -------- v1 vArtists vAlbums vGenres
Il .tables
Comando
Possiamo anche usare .tables
comando per restituire le viste.
Il .table
il comando interroga sqlite_schema
tabella per tutti i database allegati (non solo il database primario).
Questo comando restituisce sia tabelle che viste, quindi potrebbe non essere utile come i metodi precedenti. Tuttavia, se hai una convenzione di denominazione coerente per le tue viste, potrebbe essere un modo semplice e veloce per ottenere un elenco di viste nel database.
Esempio:
.tables
Esempio di risultato:
Albums Customers OrderItems Products v1 vArtists Artists Genres Orders Vendors vAlbums vGenres
Nel mio caso, tutte le visualizzazioni sono precedute da v
, e in questo modo è più facile determinare quali sono viste e quali sono tabelle.
Possiamo anche restringere il campo in base al nome della tabella/vista aggiungendo un modello al .table
comando. Questo può essere utile se hai una convenzione di denominazione chiara e distinta per le tue viste che le separa dalle tabelle.
Esempio:
.tables 'v%'
Risultato:
Vendors v1 vAlbums vArtists vGenres
In questo caso, la mia convenzione di denominazione ha aiutato, ma non ha escluso tutte le tabelle (Vendors
è un tavolo). In ogni caso, ha comunque ristretto i risultati e reso più facile visualizzare tutte le visualizzazioni con una rapida occhiata.
La table_list
Dichiarazione pragmatica
Ecco un'aggiunta più recente a SQLite. La table_list
L'istruzione pragma è stata introdotta in SQLite 3.37.0 (rilasciato il 27-11-2021). Questa dichiarazione pragma elenca tabelle e viste.
Esempio:
PRAGMA table_list;
Risultato:
schema name type ncol wr strict --------- ------------------------------ ----- ---- -- ------ main sqlite_schema table 5 0 0 temp sqlite_temp_schema table 5 0 0 Northwind Sales by Category view 4 0 0 Northwind Sales Totals by Amount view 4 0 0 Northwind Products by Category view 5 0 0 Northwind Summary of Sales by Quarter view 3 0 0 Northwind Product Sales for 1997 view 3 0 0 Northwind Order Subtotals view 2 0 0 Northwind Invoices view 26 0 0 Northwind Quarterly Orders view 4 0 0 Northwind Customer and Suppliers by City view 4 0 0 Northwind Alphabetical list of products view 11 0 0 Northwind Order Details Extended view 7 0 0 Northwind Category Sales for 1997 view 2 0 0 Northwind Products Above Average Price view 2 0 0 Northwind Orders Qry view 20 0 0 Northwind Suppliers table 12 0 0 Northwind Summary of Sales by Year view 3 0 0 Northwind Regions table 2 0 0 Northwind Orders table 14 0 0 Northwind sqlite_schema table 5 0 0 Northwind Categories table 4 0 0 Northwind sqlite_sequence table 2 0 0 Northwind Products table 10 0 0 Northwind CustomerDemographics table 2 0 0 Northwind CustomerCustomerDemo table 2 0 0 Northwind Customers table 11 0 0 Northwind Employees table 18 0 0 Northwind Current Product List view 2 0 0 Northwind Territories table 3 0 0 Northwind EmployeeTerritories table 2 0 0 Northwind Shippers table 3 0 0 Northwind Order Details table 5 0 0
Possiamo vedere quali sono le visualizzazioni guardando il type
colonna.
Puoi restringerlo a uno schema specifico e puoi cercare per nome tabella/vista. Vedi PRAGMA
table_list in SQLite per una panoramica ed esempi di questa opzione.