sql >> Base de Datos >  >> RDS >> SQLite

4 formas de enumerar las vistas en una base de datos SQLite

Aquí hay cuatro opciones para mostrar todas las vistas dentro de una base de datos SQLite.

El sqlite_schema Mesa

Cada base de datos SQLite contiene un solo sqlite_schema tabla que almacena el esquema para esa base de datos. El esquema de una base de datos es una descripción de todas las demás tablas, índices, disparadores y vistas que se encuentran dentro de la base de datos.

Podemos consultar esta tabla para devolver solo las vistas:

SELECT name 
FROM sqlite_schema 
WHERE type = 'view';

Resultado de ejemplo:

name    
--------
v1      
vArtists
vAlbums 
vGenres

En mi caso, tengo cuatro vistas en la base de datos.

El sqlite_master Mesa

Para compatibilidad histórica, el sqlite_schema la tabla también se puede denominar sqlite_master .

Entonces podemos cambiar el ejemplo anterior por el siguiente:

SELECT name 
FROM sqlite_master 
WHERE type = 'view';

Resultado de ejemplo:

name    
--------
v1      
vArtists
vAlbums 
vGenres

Las .tables Comando

También podemos usar .tables Comando para devolver vistas.

La .table el comando consulta el sqlite_schema tabla para todas las bases de datos adjuntas (no solo la base de datos principal).

Este comando devuelve tablas y vistas, por lo que puede que no sea tan útil como los métodos anteriores. Sin embargo, si tiene una convención de nomenclatura consistente para sus vistas, podría ser una forma rápida y fácil de obtener una lista de vistas en la base de datos.

Ejemplo:

.tables

Resultado de ejemplo:

Albums      Customers   OrderItems  Products    v1          vArtists  
Artists     Genres      Orders      Vendors     vAlbums     vGenres  

En mi caso, todas las vistas tienen el prefijo v , y eso hace que sea más fácil determinar cuáles son vistas y cuáles son tablas.

También podemos restringirlo por nombre de tabla/vista agregando un patrón a .table dominio. Esto puede ser útil si tiene una convención de nomenclatura clara y distinta para sus vistas que las separa de las tablas.

Ejemplo:

.tables 'v%'

Resultado:

Vendors   v1        vAlbums   vArtists  vGenres

En este caso, mi convención de nomenclatura ayudó, pero no excluyó todas las tablas (Vendors es una mesa). De cualquier manera, aún redujo los resultados y facilitó ver todas las vistas con un vistazo rápido.

La table_list Declaración pragmática

Aquí hay una adición más reciente a SQLite. La table_list La declaración pragma se introdujo en SQLite 3.37.0 (lanzado el 2021-11-27). Esta declaración de pragma enumera tablas y vistas.

Ejemplo:

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 cuáles son vistas mirando el type columna.

Puede restringirlo a un esquema específico y puede buscar por nombre de tabla/vista. Ver PRAGMA table_list en SQLite para obtener una descripción general y ejemplos de esta opción.