Hier zijn vier opties om alle weergaven binnen een SQLite-database weer te geven.
Het sqlite_schema
Tabel
Elke SQLite-database bevat een enkel sqlite_schema
tabel waarin het schema voor die database is opgeslagen. Het schema voor een database is een beschrijving van alle andere tabellen, indexen, triggers en weergaven die zich in de database bevinden.
We kunnen deze tabel opvragen om alleen de weergaven te retourneren:
SELECT name
FROM sqlite_schema
WHERE type = 'view';
Voorbeeld resultaat:
name -------- v1 vArtists vAlbums vGenres
In mijn geval heb ik vier views in de database.
De sqlite_master
Tabel
Voor historische compatibiliteit is het sqlite_schema
tabel kan ook worden aangeduid als sqlite_master
.
We kunnen het vorige voorbeeld dus in het volgende veranderen:
SELECT name
FROM sqlite_master
WHERE type = 'view';
Voorbeeld resultaat:
name -------- v1 vArtists vAlbums vGenres
De .tables
Commando
We kunnen ook de .tables
. gebruiken commando om weergaven terug te geven.
De .table
commando zoekt in het sqlite_schema
tabel voor alle gekoppelde databases (niet alleen de primaire database).
Deze opdracht retourneert zowel tabellen als weergaven, dus het is mogelijk niet zo nuttig als de vorige methoden. Als u echter een consistente naamgevingsconventie heeft voor uw weergaven, kan dit een snelle en gemakkelijke manier zijn om een lijst met weergaven in de database te krijgen.
Voorbeeld:
.tables
Voorbeeld resultaat:
Albums Customers OrderItems Products v1 vArtists Artists Genres Orders Vendors vAlbums vGenres
In mijn geval worden alle weergaven voorafgegaan door v
, en dat maakt het dus gemakkelijker om te bepalen welke weergaven en welke tabellen zijn.
We kunnen het ook verfijnen op tabel-/weergavenaam door een patroon toe te voegen aan de .table
opdracht. Dit kan handig zijn als je een duidelijke en duidelijke naamgevingsconventie hebt voor je views die ze scheidt van tabellen.
Voorbeeld:
.tables 'v%'
Resultaat:
Vendors v1 vAlbums vArtists vGenres
In dit geval hielp mijn naamgevingsconventie, maar het sloot niet alle tabellen uit (Vendors
is een tafel). Hoe dan ook, het beperkte de resultaten nog steeds en maakte het gemakkelijker om alle weergaven in één oogopslag te zien.
De table_list
Pragmaverklaring
Hier is een recentere toevoeging aan SQLite. De table_list
pragma-statement is geïntroduceerd in SQLite 3.37.0 (uitgebracht op 27-11-21-20). Deze pragmaverklaring bevat tabellen en weergaven.
Voorbeeld:
PRAGMA table_list;
Resultaat:
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
We kunnen zien welke weergaven zijn door te kijken naar het type
kolom.
U kunt het beperken tot een specifiek schema en u kunt zoeken op tabel-/weergavenaam. Zie PRAGMA
table_list in SQLite voor een overzicht en voorbeelden van deze optie.