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

Créer une vue SQLite

Résumé :dans ce tutoriel, vous apprendrez à utiliser le SQLite CREATE VIEW pour créer une nouvelle vue dans la base de données.

Qu'est-ce qu'une vue

Dans la théorie des bases de données, une vue est un ensemble de résultats d'une requête stockée. Une vue est le moyen de regrouper une requête dans un objet nommé stocké dans la base de données.

Vous pouvez accéder aux données des tables sous-jacentes via une vue. Les tables auxquelles la requête dans la définition de vue fait référence sont appelées tables de base.

Une vue est utile dans certains cas :

  • Tout d'abord, les vues fournissent une couche d'abstraction sur les tables. Vous pouvez ajouter et supprimer des colonnes dans la vue sans toucher au schéma des tables sous-jacentes.
  • Deuxièmement, vous pouvez utiliser des vues pour encapsuler des requêtes complexes avec des jointures afin de simplifier l'accès aux données.

La vue SQLite est en lecture seule. Cela signifie que vous ne pouvez pas utiliser INSERT , DELETE , et UPDATE instructions pour mettre à jour les données dans les tables de base via la vue.

SQLite CREATE VIEW déclaration

Pour créer une vue, vous utilisez le CREATE VIEW déclaration comme suit :

CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS 
   select-statement;Code language: SQL (Structured Query Language) (sql)

Tout d'abord, spécifiez un nom pour la vue. Le IF NOT EXISTS L'option ne crée une nouvelle vue que si elle n'existe pas. Si la vue existe déjà, elle ne fait rien.

Deuxièmement, utilisez le TEMP ou TEMPORARY si vous souhaitez que la vue ne soit visible que dans la connexion actuelle à la base de données. La vue est appelée une vue temporaire et SQLite supprime automatiquement la vue temporaire chaque fois que la connexion à la base de données est fermée.

Troisièmement, spécifiez un SELECT déclaration pour la vue. Par défaut, les colonnes de la vue dérivent du jeu de résultats du SELECT déclaration. Cependant, vous pouvez attribuer des noms de colonnes de vue différents du nom de colonne de la table

SQLite CREATE VIEW exemples

Prenons quelques exemples de création d'une nouvelle vue à l'aide de CREATE VIEW déclaration.

1) Créer une vue pour simplifier une requête complexe

La requête suivante obtient les données des tracks , albums , media_types et genres tables dans la base de données exemple à l'aide de la clause de jointure interne.

SELECT
   trackid,
   tracks.name,
   albums.Title AS album,
   media_types.Name AS media,
   genres.Name AS genres
FROM
   tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;Code language: SQL (Structured Query Language) (sql)

Essayez-le

Pour créer une vue basée sur cette requête, vous utilisez l'instruction suivante :

CREATE VIEW v_tracks 
AS 
SELECT
	trackid,
	tracks.name,
	albums.Title AS album,
	media_types.Name AS media,
	genres.Name AS genres
FROM
	tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;Code language: SQL (Structured Query Language) (sql)

Essayez-le

À partir de maintenant, vous pouvez utiliser la requête simple suivante au lieu de celle complexe ci-dessus.

SELECT * FROM v_tracks;Code language: SQL (Structured Query Language) (sql)

Essayez-le

2) Créer une vue avec des noms de colonnes personnalisés

L'instruction suivante crée une vue nommée v_albums qui contient le titre de l'album et la durée de l'album en minutes :

CREATE VIEW v_albums (
    AlbumTitle,
    Minutes
)
AS
    SELECT albums.title,
           SUM(milliseconds) / 60000
      FROM tracks
           INNER JOIN
           albums USING (
               AlbumId
           )
     GROUP BY AlbumTitle;
Code language: SQL (Structured Query Language) (sql)

Dans cet exemple, nous avons spécifié de nouvelles colonnes pour la vue AlbumTitle pour le albums.title colonne et Minutes pour l'expression SUM(milliseconds) / 60000

Cette requête renvoie les données des v_albums afficher :

SELECT * FROM v_albums;Code language: SQL (Structured Query Language) (sql)

Dans ce didacticiel, vous avez appris les vues de base de données et comment utiliser le CREATE VIEW déclaration pour créer de nouvelles vues dans SQLite.