ConceptionDesign · 5 août 2026 · 8 min de lecture· August 5, 2026 · 8 min read

Les vues et procédures stockées en SQL

SQL Views and Stored Procedures

Les vues et les procédures stockées permettent d'encapsuler de la logique SQL réutilisable directement dans la base de données, plutôt que de la répéter dans chaque application ou chaque requête.

Views and stored procedures let you encapsulate reusable SQL logic directly in the database, instead of repeating it in every application or query.

Les vues : des requêtes nommées

Views: Named Queries

Une vue est essentiellement une requête SELECT enregistrée sous un nom, que l'on peut ensuite interroger comme une table normale.

A view is essentially a SELECT query saved under a name, which you can then query like a normal table.

CREATE VIEW clients_actifs AS
SELECT id, nom, courriel
FROM clients
WHERE statut = 'actif';

SELECT * FROM clients_actifs WHERE nom LIKE 'M%';
CREATE VIEW active_customers AS
SELECT id, name, email
FROM customers
WHERE status = 'active';

SELECT * FROM active_customers WHERE name LIKE 'M%';

Les vues sont utiles pour simplifier des requêtes complexes récurrentes, masquer des colonnes sensibles, ou stabiliser une interface de lecture même si la structure des tables sous-jacentes évolue.

Views are useful for simplifying recurring complex queries, hiding sensitive columns, or stabilizing a read interface even as the underlying table structure evolves.

Vues matérialisées

Materialized Views

Contrairement à une vue normale (recalculée à chaque appel), une vue matérialisée stocke physiquement le résultat et doit être rafraîchie explicitement — un bon compromis pour des rapports lourds peu fréquemment mis à jour.

Unlike a normal view (recomputed on every call), a materialized view physically stores the result and must be refreshed explicitly — a good trade-off for heavy reports that don't need frequent updates.

CREATE MATERIALIZED VIEW ventes_par_mois AS
SELECT DATE_TRUNC('month', date_commande) AS mois, SUM(montant) AS total
FROM commandes
GROUP BY 1;

REFRESH MATERIALIZED VIEW ventes_par_mois;
CREATE MATERIALIZED VIEW monthly_sales AS
SELECT DATE_TRUNC('month', order_date) AS month, SUM(amount) AS total
FROM orders
GROUP BY 1;

REFRESH MATERIALIZED VIEW monthly_sales;

Les procédures stockées

Stored Procedures

Une procédure stockée regroupe une séquence d'instructions SQL (avec logique conditionnelle, boucles, paramètres) exécutée sur le serveur de base de données.

A stored procedure groups a sequence of SQL statements (with conditional logic, loops, parameters) executed on the database server.

CREATE PROCEDURE transferer_fonds(
  compte_source INT, compte_dest INT, montant DECIMAL
)
AS $$
BEGIN
  UPDATE comptes SET solde = solde - montant WHERE id = compte_source;
  UPDATE comptes SET solde = solde + montant WHERE id = compte_dest;
END;
$$ LANGUAGE plpgsql;
CREATE PROCEDURE transfer_funds(
  source_account INT, dest_account INT, amount DECIMAL
)
AS $$
BEGIN
  UPDATE accounts SET balance = balance - amount WHERE id = source_account;
  UPDATE accounts SET balance = balance + amount WHERE id = dest_account;
END;
$$ LANGUAGE plpgsql;
ObjetUsage typique
VueSimplifier ou masquer une requête de lecture
Vue matérialiséeMettre en cache un résultat coûteux à recalculer
Procédure stockéeEncapsuler une logique métier multi-étapes côté serveur
ObjectTypical Use
ViewSimplifying or hiding a read query
Materialized viewCaching an expensive-to-recompute result
Stored procedureEncapsulating multi-step business logic server-side
Astuce : évitez de mettre trop de logique métier dans les procédures stockées si votre équipe n'a pas d'outils de tests et de versionnement adaptés — le code applicatif reste souvent plus facile à maintenir et à déployer. Tip: avoid putting too much business logic in stored procedures if your team lacks proper testing and versioning tools — application code is often easier to maintain and deploy.

Points clés à retenir

Key Takeaways

  • Les vues simplifient et sécurisent l'accès en lecture sans dupliquer de données
  • Les vues matérialisées améliorent la performance au prix d'une fraîcheur des données à gérer explicitement
  • Les procédures stockées sont puissantes mais doivent être utilisées avec discipline pour rester maintenables
  • Views simplify and secure read access without duplicating data
  • Materialized views improve performance at the cost of data freshness you must manage explicitly
  • Stored procedures are powerful but need discipline to stay maintainable
← Article précédent : La normalisation ← Previous article: Normalization Article suivant : Permissions et sécurité → Next article: Permissions and Security →
Publicité Advertisement