sql >> Databáze >  >> RDS >> SQLite

4 způsoby, jak zobrazit seznam pohledů v databázi SQLite

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.


  1. Dotaz SQL pro 7denní klouzavý průměr v SQL Server

  2. mysql vyberte top n max hodnot

  3. Příklady ASIN() v SQL Server

  4. Jak mohu odstranit duplicitní řádky?