SQLite
 sql >> Datenbank >  >> RDS >> SQLite

4 Möglichkeiten zum Auflisten der Ansichten in einer SQLite-Datenbank

Hier sind vier Optionen zum Anzeigen aller Ansichten innerhalb einer SQLite-Datenbank.

Das sqlite_schema Tabelle

Jede SQLite-Datenbank enthält ein einzelnes sqlite_schema Tabelle, die das Schema für diese Datenbank speichert. Das Schema für eine Datenbank ist eine Beschreibung aller anderen Tabellen, Indizes, Trigger und Ansichten, die in der Datenbank enthalten sind.

Wir können diese Tabelle abfragen, um nur die Ansichten zurückzugeben:

SELECT name 
FROM sqlite_schema 
WHERE type = 'view';

Beispielergebnis:

name    
--------
v1      
vArtists
vAlbums 
vGenres

In meinem Fall habe ich vier Ansichten in der Datenbank.

Der sqlite_master Tabelle

Aus Gründen der historischen Kompatibilität ist das sqlite_schema Tabelle kann auch als sqlite_master bezeichnet werden .

Wir können also das vorherige Beispiel wie folgt ändern:

SELECT name 
FROM sqlite_master 
WHERE type = 'view';

Beispielergebnis:

name    
--------
v1      
vArtists
vAlbums 
vGenres

Die .tables Befehl

Wir können auch die .tables verwenden Befehl zum Zurückgeben von Ansichten.

Die .table Befehl fragt das sqlite_schema ab Tabelle für alle angeschlossenen Datenbanken (nicht nur die primäre Datenbank).

Dieser Befehl gibt sowohl Tabellen als auch Ansichten zurück, daher ist er möglicherweise nicht so nützlich wie die vorherigen Methoden. Wenn Sie jedoch eine konsistente Namenskonvention für Ihre Ansichten haben, könnte dies eine schnelle und einfache Möglichkeit sein, eine Liste der Ansichten in der Datenbank zu erhalten.

Beispiel:

.tables

Beispielergebnis:

Albums      Customers   OrderItems  Products    v1          vArtists  
Artists     Genres      Orders      Vendors     vAlbums     vGenres  

In meinem Fall wird allen Ansichten v vorangestellt , und das macht es einfacher zu bestimmen, welche Ansichten und welche Tabellen sind.

Wir können es auch nach Tabellen-/Ansichtsnamen eingrenzen, indem wir ein Muster an .table anhängen Befehl. Dies kann praktisch sein, wenn Sie eine klare und eindeutige Namenskonvention für Ihre Ansichten haben, die sie von Tabellen trennt.

Beispiel:

.tables 'v%'

Ergebnis:

Vendors   v1        vAlbums   vArtists  vGenres

In diesem Fall hat meine Namenskonvention geholfen, aber sie hat nicht alle Tabellen ausgeschlossen (Vendors ist ein Tisch). In jedem Fall hat es die Ergebnisse eingegrenzt und es einfacher gemacht, alle Ansichten auf einen Blick zu sehen.

Die table_list Pragma-Statement

Hier ist eine neuere Ergänzung zu SQLite. Die table_list pragma-Anweisung wurde in SQLite 3.37.0 (veröffentlicht am 27.11.2021) eingeführt. Diese Pragma-Anweisung listet Tabellen und Ansichten auf.

Beispiel:

PRAGMA table_list;

Ergebnis:

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   

Wir können sehen, welche Ansichten sind, indem wir uns den type ansehen Spalte.

Sie können es auf ein bestimmtes Schema eingrenzen und nach Tabellen-/Ansichtsnamen suchen. Siehe PRAGMA table_list in SQLite für eine Übersicht und Beispiele dieser Option.