Les vues
Comprendre et utiliser les vues dans une base de données relationnelle
Notions théoriques
Une vue (ou view en anglais) est une table virtuelle dans une base de données.
Une vue permet de sauvegarder une requête SQL sous forme d'objet, que l'on peut interroger comme une table classique.
Les vues sont souvent utilisées pour simplifier des requêtes complexes, sécuriser l'accès aux données ou créer des abstractions sur les données.
Les vues ne stockent pas les données elles-mêmes, mais une requête. Cela signifie qu'une vue est toujours à jour par rapport aux données des tables qu'elle interroge.
Pourquoi utiliser une vue ?
- Simplifier les requêtes complexes : une requête complexe peut être encapsulée dans une vue, et utilisée comme une table simple.
- Sécuriser l’accès aux données : une vue peut exposer uniquement certaines colonnes ou lignes d’une table, selon des règles définies.
- Réutiliser une requête : une vue peut être utilisée plusieurs fois sans avoir à réécrire la requête.
- Améliorer la lisibilité du code SQL : les vues permettent de nommer des requêtes complexes et de les rendre plus compréhensibles.
Création d'une vue
Pour créer une vue, on utilise la commande :
CREATE VIEW nom_vue AS
SELECT colonne1, colonne2
FROM table
WHERE condition;
Cela crée une vue appelée nom_vue
qui contient les résultats de la requête spécifiée.
Exemple : Vue simple
CREATE VIEW employes_actifs AS
SELECT nom, prenom, poste
FROM employes
WHERE statut = 'actif';
Cette vue permet d’obtenir uniquement les employés actifs.
Consultation d'une vue
Une fois la vue créée, on peut l’interroger comme une table :
SELECT * FROM employes_actifs;
Mise à jour d'une vue
Certaines vues peuvent être modifiables, c’est-à-dire qu’on peut faire des INSERT
, UPDATE
ou DELETE
dessus, si elles respectent certaines règles (pas de GROUP BY
, pas de DISTINCT
, etc.).
Suppression d'une vue
Pour supprimer une vue :
DROP VIEW nom_vue;
Exemple pratique
Il est possible de créer une base de données pour une entreprise avec une table
employes
, puis d’y créer une vue pour filtrer les employés actifs.
Étape 1 : Créer la base et la table
CREATE DATABASE entreprise;
USE entreprise;
CREATE TABLE employes (
id INT PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(50),
prenom VARCHAR(50),
poste VARCHAR(50),
statut VARCHAR(20)
);