SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

4 maneiras de listar as exibições em um banco de dados SQLite


Aqui estão quatro opções para mostrar todas as visualizações em um banco de dados SQLite.

O sqlite_schema Tabela


Cada banco de dados SQLite contém um único sqlite_schema tabela que armazena o esquema para esse banco de dados. O esquema de um banco de dados é uma descrição de todas as outras tabelas, índices, gatilhos e exibições contidos no banco de dados.

Podemos consultar esta tabela para retornar apenas as visualizações:
SELECT name 
FROM sqlite_schema 
WHERE type = 'view';

Exemplo de resultado:
name    
--------
v1      
vArtists
vAlbums 
vGenres

No meu caso, tenho quatro visualizações no banco de dados.

O sqlite_master Tabela


Para compatibilidade histórica, o sqlite_schema tabela também pode ser chamada de sqlite_master .

Assim, podemos alterar o exemplo anterior para o seguinte:
SELECT name 
FROM sqlite_master 
WHERE type = 'view';

Exemplo de resultado:
name    
--------
v1      
vArtists
vAlbums 
vGenres

Os .tables Comando


Também podemos usar o .tables comando para retornar visualizações.

O .table comando consulta o sqlite_schema tabela para todos os bancos de dados anexados (não apenas o banco de dados primário).

Esse comando retorna tabelas e visualizações, portanto, pode não ser tão útil quanto os métodos anteriores. No entanto, se você tiver uma convenção de nomenclatura consistente para suas visualizações, pode ser uma maneira rápida e fácil de obter uma lista de visualizações no banco de dados.

Exemplo:
.tables

Exemplo de resultado:
Albums      Customers   OrderItems  Products    v1          vArtists  
Artists     Genres      Orders      Vendors     vAlbums     vGenres  

No meu caso, todas as visualizações são prefixadas com v , e assim fica mais fácil determinar quais são visualizações e quais são tabelas.

Também podemos reduzi-lo pelo nome da tabela/exibição anexando um padrão ao .table comando. Isso pode ser útil se você tiver uma convenção de nomenclatura clara e distinta para suas exibições que as separe das tabelas.

Exemplo:
.tables 'v%'

Resultado:
Vendors   v1        vAlbums   vArtists  vGenres

Nesse caso, minha convenção de nomenclatura ajudou, mas não excluiu todas as tabelas (Vendors é uma mesa). De qualquer forma, ainda reduziu os resultados e tornou mais fácil ver todas as visualizações com uma rápida olhada.

A table_list Declaração de Pragma


Aqui está uma adição mais recente ao SQLite. A table_list pragma foi introduzida no SQLite 3.37.0 (lançado em 27/11/2021). Esta declaração pragma lista as tabelas e visualizações.

Exemplo:
PRAGMA table_list;

Resultado:
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   

Podemos ver quais são visualizações olhando para o type coluna.

Você pode reduzi-lo a um esquema específico e pesquisar por nome de tabela/exibição. Consulte PRAGMA table_list no SQLite para obter uma visão geral e exemplos dessa opção.