Aller au contenu

Vues (Views)

En SQL, les vues permettent d'enregistrer une requête fréquemment utilisée pour la réutiliser aisément dans d'autres requêtes. Une vue agit comme une requête stockée et nommée, accessible comme une table virtuelle.

Avantages de créer une vue

  • Simplification des requêtes : Les vues permettent de réduire la complexité des requêtes en masquant les détails de la jointure et des calculs.
  • Sécurisation des données : Les vues peuvent limiter l'accès à certaines données, ce qui est utile pour protéger les informations sensibles.
  • Facilitation de la maintenance : Les modifications apportées à une vue se répercutent sur toutes les requêtes qui l'utilisent, simplifiant ainsi la maintenance.

Il est important de noter que les vues ne sont pas un moyen d'optimiser les performances des requêtes. Lorsqu'une vue est utilisée dans une requête, la requête sous-jacente de la vue est exécutée en premier, suivie de la requête principale.

Créer une vue

Pour créer une vue, utilisez la syntaxe suivante :

CREATE [OR REPLACE] VIEW [nom_bd.]nom_view [(liste_colonne)]
AS
requête_select;
  • CREATE [OR REPLACE] : Si la vue existe déjà, OR REPLACE permet de la remplacer.
  • [nom_bd.]nom_view : Le nom de la vue doit être unique dans la base de données.
  • [(liste_colonne)] : Les noms des colonnes de la vue peuvent être spécifiés; sinon, ils seront dérivés de la requête SELECT.
  • requête_select : La requête SELECT peut interroger des tables et d'autres vues.

Exemple

CREATE OR REPLACE VIEW etudiants_informatique (nom_complet, da)
AS 
    SELECT CONCAT(e.nom, ', ', e.prenom) AS nom_complet,
           e.da
    FROM etudiants e
    JOIN etudiants_concentration ec ON ec.etudiant_id = e.id
    JOIN concentrations c ON c.id = ec.concentration
    WHERE c.description = 'Technique informatique';

Utilisation de la vue :

SELECT * 
FROM etudiants_informatique
ORDER BY da;

Modifier une vue

Pour modifier une vue, utilisez CREATE OR REPLACE VIEW ou ALTER VIEW. Les deux commandes modifient la vue existante :

ALTER VIEW nom_view [(liste_colonne)]
AS requête_select;

Note

Le nom de la vue ne peut pas être modifié directement par ALTER VIEW. Pour renommer une vue, utilisez :

RENAME TABLE ancien_nom_vue 
TO nouveau_nom_vue;

Supprimer une vue

Pour supprimer une vue :

DROP VIEW [IF EXISTS] nom_vue;

L'option IF EXISTS permet d'éviter une erreur si la vue spécifiée n'existe pas.

Source