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.