sql >> Database >  >> RDS >> SQLite

4 manieren om de weergaven in een SQLite-database weer te geven

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.


  1. Oracle-schemagebruiker kan geen tabel maken in procedure

  2. PostgreSQL wiskundige functies

  3. PostgreSQL - FOUT:kolomdatum kan niet worden gecast om datum te typen

  4. Een kolom met een standaardwaarde toevoegen aan een bestaande tabel in SQL Server