SQLite
 sql >> база данни >  >> RDS >> SQLite

4 начина за изброяване на изгледите в база данни на SQLite

Ето четири опции за показване на всички изгледи в база данни на 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 за преглед и примери за тази опция.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite капани и клопки

  2. SQLite JSON_REPLACE()

  3. Ormlite или sqlite Кой е добър за перспективата на Android?

  4. как да добавя персонализиран адаптер към дейността, за да накара списъка да се показва в дейността?

  5. Защо продължителността е NULL за повтарящо се събитие в android?