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.