Oto cztery opcje wyświetlania wszystkich widoków w bazie danych SQLite.
sqlite_schema
Tabela
Każda baza danych SQLite zawiera pojedynczy sqlite_schema
tabela przechowująca schemat dla tej bazy danych. Schemat bazy danych to opis wszystkich innych tabel, indeksów, wyzwalaczy i widoków zawartych w bazie danych.
Możemy wysłać zapytanie do tej tabeli, aby zwrócić tylko widoki:
SELECT name
FROM sqlite_schema
WHERE type = 'view';
Przykładowy wynik:
name -------- v1 vArtists vAlbums vGenres
W moim przypadku w bazie danych mam cztery widoki.
sqlite_master
Tabela
Dla historycznej zgodności, sqlite_schema
tabela może być również określana jako sqlite_master
.
Możemy więc zmienić poprzedni przykład na następujący:
SELECT name
FROM sqlite_master
WHERE type = 'view';
Przykładowy wynik:
name -------- v1 vArtists vAlbums vGenres
.tables
Polecenie
Możemy również użyć .tables
polecenie, aby zwrócić widoki.
.table
polecenie odpytuje sqlite_schema
tabela dla wszystkich dołączonych baz danych (nie tylko podstawowej bazy danych).
To polecenie zwraca zarówno tabele, jak i widoki, więc może nie być tak przydatne, jak poprzednie metody. Jeśli jednak masz spójną konwencję nazewnictwa dla swoich widoków, może to być szybki i łatwy sposób na uzyskanie listy widoków w bazie danych.
Przykład:
.tables
Przykładowy wynik:
Albums Customers OrderItems Products v1 vArtists Artists Genres Orders Vendors vAlbums vGenres
W moim przypadku wszystkie widoki mają przedrostek v
, dzięki czemu łatwiej jest określić, które z nich są widokami, a które tabelami.
Możemy również zawęzić go według nazwy tabeli/widoku, dołączając wzorzec do .table
Komenda. Może to być przydatne, jeśli masz jasną i odrębną konwencję nazewnictwa widoków, która oddziela je od tabel.
Przykład:
.tables 'v%'
Wynik:
Vendors v1 vAlbums vArtists vGenres
W tym przypadku moja konwencja nazewnictwa pomogła, ale nie wykluczyła wszystkich tabel (Vendors
jest stół). Tak czy inaczej, nadal zawęziło wyniki i ułatwiło szybkie zobaczenie wszystkich widoków.
table_list
Oświadczenie pragmatyczne
Oto nowszy dodatek do SQLite. table_list
Instrukcja pragma została wprowadzona w SQLite 3.37.0 (wydanym 27.11.2021). To oświadczenie pragma zawiera listę tabel i widoków.
Przykład:
PRAGMA table_list;
Wynik:
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
Możemy zobaczyć, które z nich są widokami, patrząc na type
kolumna.
Możesz zawęzić go do określonego schematu i możesz wyszukiwać według nazwy tabeli/widoku. Zobacz PRAGMA
table_list w SQLite, aby zapoznać się z przeglądem i przykładami tej opcji.