Zde jsou čtyři možnosti zobrazení všech pohledů v databázi SQLite.
sqlite_schema
Tabulka
Každá databáze SQLite obsahuje jediné sqlite_schema
tabulka, ve které je uloženo schéma pro danou databázi. Schéma pro databázi je popisem všech ostatních tabulek, indexů, spouštěčů a pohledů, které jsou v databázi obsaženy.
Můžeme se dotazovat na tuto tabulku, abychom vrátili pouze pohledy:
SELECT name
FROM sqlite_schema
WHERE type = 'view';
Příklad výsledku:
name -------- v1 vArtists vAlbums vGenres
V mém případě mám v databázi čtyři pohledy.
sqlite_master
Tabulka
Pro historickou kompatibilitu sqlite_schema
tabulka může být také označována jako sqlite_master
.
Takže můžeme změnit předchozí příklad na následující:
SELECT name
FROM sqlite_master
WHERE type = 'view';
Příklad výsledku:
name -------- v1 vArtists vAlbums vGenres
.tables
Příkaz
Můžeme také použít .tables
příkaz pro návrat zobrazení.
.table
příkaz se dotáže na sqlite_schema
tabulky pro všechny připojené databáze (nejen primární databázi).
Tento příkaz vrací tabulky i pohledy, takže nemusí být tak užitečný jako předchozí metody. Pokud však máte konzistentní konvenci pojmenování vašich pohledů, může to být rychlý a snadný způsob, jak získat seznam pohledů v databázi.
Příklad:
.tables
Příklad výsledku:
Albums Customers OrderItems Products v1 vArtists Artists Genres Orders Vendors vAlbums vGenres
V mém případě mají všechny pohledy předponu v
, a tak je snazší určit, které z nich jsou pohledy a které tabulky.
Můžeme jej také zúžit podle názvu tabulky/zobrazení přidáním vzoru k .table
příkaz. To může být užitečné, pokud máte jasnou a zřetelnou konvenci pojmenovávání vašich pohledů, která je odděluje od tabulek.
Příklad:
.tables 'v%'
Výsledek:
Vendors v1 vAlbums vArtists vGenres
V tomto případě moje konvence pojmenování pomohla, ale nevyloučila všechny tabulky (Vendors
je stůl). Ať tak či onak, stále to zúžilo výsledky a usnadnilo zobrazení všech pohledů rychlým pohledem.
table_list
Prohlášení Pragma
Zde je novější přírůstek do SQLite. table_list
příkaz pragma byl představen v SQLite 3.37.0 (vydáno 27.11.2021). Toto prohlášení o pragmatu uvádí tabulky a pohledy.
Příklad:
PRAGMA table_list;
Výsledek:
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
Můžeme zjistit, které z nich jsou zobrazení, když se podíváme na type
sloupec.
Můžete jej zúžit na konkrétní schéma a můžete vyhledávat podle názvu tabulky/zobrazení. Viz PRAGMA
table_list v SQLite pro přehled a příklady této možnosti.