Ето четири опции за показване на всички изгледи в база данни на SQLite.
sqlite_schema
Таблица
Всяка база данни на SQLite съдържа единична sqlite_schema
таблица, която съхранява схемата за тази база данни. Схемата за база данни е описание на всички други таблици, индекси, тригери и изгледи, които се съдържат в базата данни.
Можем да направим заявка към тази таблица, за да върнем само изгледите:
SELECT name
FROM sqlite_schema
WHERE type = 'view';
Примерен резултат:
name -------- v1 vArtists vAlbums vGenres
В моя случай имам четири изгледа в базата данни.
sqlite_master
Таблица
За историческа съвместимост, sqlite_schema
таблицата може също да се нарича sqlite_master
.
Така че можем да променим предишния пример на следния:
SELECT name
FROM sqlite_master
WHERE type = 'view';
Примерен резултат:
name -------- v1 vArtists vAlbums vGenres
.tables
Команда
Можем също да използваме .tables
команда за връщане на изгледи.
.table
командата прави заявки за sqlite_schema
таблица за всички прикачени бази данни (не само основната база данни).
Тази команда връща както таблици, така и изгледи, така че може да не е толкова полезна, колкото предишните методи. Въпреки това, ако имате последователна конвенция за именуване на изгледите си, това може да бъде бърз и лесен начин да получите списък с изгледи в базата данни.
Пример:
.tables
Примерен резултат:
Albums Customers OrderItems Products v1 vArtists Artists Genres Orders Vendors vAlbums vGenres
В моя случай всички изгледи са с префикс v
, и така е по-лесно да се определи кои са изгледи и кои са таблици.
Можем също да го стесним по име на таблица/изглед, като добавим шаблон към .table
команда. Това може да е удобно, ако имате ясна и отчетлива конвенция за именуване за изгледите си, която ги отделя от таблиците.
Пример:
.tables 'v%'
Резултат:
Vendors v1 vAlbums vArtists vGenres
В този случай моята конвенция за именуване помогна, но не изключи всички таблици (Vendors
е маса). Така или иначе, това все пак стеснява резултатите и улеснява виждането на всички изгледи с бърз поглед.
table_list
Прагма декларация
Ето едно по-ново допълнение към SQLite. table_list
Инструкцията pragma беше въведена в SQLite 3.37.0 (издадена на 27.11.2021). Това прагма изявление изброява таблици и изгледи.
Пример:
PRAGMA table_list;
Резултат:
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
Можем да видим кои са изгледи, като погледнем type
колона.
Можете да го стесните до конкретна схема и можете да търсите по име на таблица/изглед. Вижте PRAGMA
table_list в SQLite за преглед и примери за тази опция.