Här är fyra alternativ för att visa alla vyer i en SQLite-databas.
sqlite_schema
Tabell
Varje SQLite-databas innehåller en enda sqlite_schema
tabell som lagrar schemat för den databasen. Schemat för en databas är en beskrivning av alla andra tabeller, index, utlösare och vyer som finns i databasen.
Vi kan fråga den här tabellen för att bara returnera vyerna:
SELECT name
FROM sqlite_schema
WHERE type = 'view';
Exempelresultat:
name -------- v1 vArtists vAlbums vGenres
I mitt fall har jag fyra vyer i databasen.
sqlite_master
Tabell
För historisk kompatibilitet, sqlite_schema
Tabell kan också kallas sqlite_master
.
Så vi kan ändra det föregående exemplet till följande:
SELECT name
FROM sqlite_master
WHERE type = 'view';
Exempelresultat:
name -------- v1 vArtists vAlbums vGenres
.tables
Kommando
Vi kan också använda .tables
kommando för att returnera vyer.
.table
kommandot frågar efter sqlite_schema
tabell för alla bifogade databaser (inte bara den primära databasen).
Det här kommandot returnerar både tabeller och vyer, så det kanske inte är lika användbart som de tidigare metoderna. Men om du har en konsekvent namnkonvention för dina vyer kan det vara ett snabbt och enkelt sätt att få en lista över vyer i databasen.
Exempel:
.tables
Exempelresultat:
Albums Customers OrderItems Products v1 vArtists Artists Genres Orders Vendors vAlbums vGenres
I mitt fall har alla vyer prefixet v
, och det gör det lättare att avgöra vilka som är vyer och vilka som är tabeller.
Vi kan också begränsa det efter tabell-/vynamn genom att lägga till ett mönster till .table
kommando. Detta kan vara praktiskt om du har en tydlig och distinkt namnkonvention för dina åsikter som skiljer dem från tabeller.
Exempel:
.tables 'v%'
Resultat:
Vendors v1 vAlbums vArtists vGenres
I det här fallet hjälpte min namnkonvention, men den uteslöt inte alla tabeller (Vendors
är ett bord). Hur som helst, det minskade fortfarande resultaten och gjorde det lättare att se alla vyer med en snabb blick.
table_list
Pragmauttalande
Här är ett nyare tillägg till SQLite. table_list
pragma-satsen introducerades i SQLite 3.37.0 (släpptes 2021-11-27). Detta pragmauttalande listar tabeller och vyer.
Exempel:
PRAGMA table_list;
Resultat:
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
Vi kan se vilka som är vyer genom att titta på type
kolumn.
Du kan begränsa det till ett specifikt schema och du kan söka efter tabell-/vynamn. Se PRAGMA
table_list i SQLite för en översikt och exempel på detta alternativ.