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.