SQLite
 sql >> Base de données >  >> RDS >> SQLite

4 façons de lister les vues dans une base de données SQLite

Voici quatre options pour afficher toutes les vues d'une base de données SQLite.

Le sqlite_schema Tableau

Chaque base de données SQLite contient un seul sqlite_schema table qui stocke le schéma de cette base de données. Le schéma d'une base de données est une description de toutes les autres tables, index, déclencheurs et vues contenus dans la base de données.

Nous pouvons interroger cette table pour renvoyer uniquement les vues :

SELECT name 
FROM sqlite_schema 
WHERE type = 'view';

Exemple de résultat :

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

Dans mon cas, j'ai quatre vues dans la base de données.

Le sqlite_master Tableau

Pour la compatibilité historique, le sqlite_schema la table peut également être appelée sqlite_master .

Nous pouvons donc remplacer l'exemple précédent par le suivant :

SELECT name 
FROM sqlite_master 
WHERE type = 'view';

Exemple de résultat :

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

Les .tables Commande

On peut aussi utiliser les .tables commande pour retourner les vues.

Le .table la commande interroge le sqlite_schema table pour toutes les bases de données attachées (pas seulement la base de données primaire).

Cette commande renvoie à la fois des tables et des vues, elle peut donc ne pas être aussi utile que les méthodes précédentes. Cependant, si vous avez une convention de dénomination cohérente pour vos vues, cela pourrait être un moyen rapide et facile d'obtenir une liste de vues dans la base de données.

Exemple :

.tables

Exemple de résultat :

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

Dans mon cas, toutes les vues sont préfixées par v , ce qui permet de déterminer plus facilement lesquelles sont des vues et lesquelles sont des tables.

Nous pouvons également le réduire par nom de table/vue en ajoutant un modèle au .table commande. Cela peut être pratique si vous avez une convention de dénomination claire et distincte pour vos vues qui les sépare des tables.

Exemple :

.tables 'v%'

Résultat :

Vendors   v1        vAlbums   vArtists  vGenres

Dans ce cas, ma convention de nommage a aidé, mais elle n'a pas exclu toutes les tables (Vendors est un tableau). Quoi qu'il en soit, cela restreignait les résultats et facilitait la visualisation de toutes les vues d'un simple coup d'œil.

La table_list Déclaration pragmatique

Voici un ajout plus récent à SQLite. La table_list L'instruction pragma a été introduite dans SQLite 3.37.0 (publié le 2021-11-27). Cette déclaration de pragma répertorie les tables et les vues.

Exemple :

PRAGMA table_list;

Résultat :

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   

Nous pouvons voir lesquels sont des vues en regardant le type colonne.

Vous pouvez le restreindre à un schéma spécifique et effectuer une recherche par nom de table/vue. Voir PRAGMA table_list dans SQLite pour un aperçu et des exemples de cette option.