Créer / modifier une vue
Oracle
CREATE OR REPLACE VIEW active_customer AS
SELECT id, name, email FROM customer WHERE status = 'ACTIVE';
-- Drop
DROP VIEW active_customer;CREATE OR REPLACE VIEW crée et modifie à la fois. Pour les vues modifiables sous certaines conditions, WITH CHECK OPTION peut être ajouté.
PostgreSQL
CREATE OR REPLACE VIEW active_customer AS
SELECT id, name, email FROM customer WHERE status = 'ACTIVE';
DROP VIEW active_customer;Avec CREATE OR REPLACE, de nouvelles colonnes ne peuvent être ajoutées qu'à la fin ; changer le type/l'ordre d'une colonne nécessite d'abord un DROP. Les vues simples sont automatiquement modifiables.
MySQL
CREATE OR REPLACE VIEW active_customer AS
SELECT id, name, email FROM customer WHERE status = 'ACTIVE';
-- Modify
ALTER VIEW active_customer AS SELECT id, name FROM customer;
DROP VIEW active_customer;La définition est mise à jour avec CREATE OR REPLACE VIEW ou ALTER VIEW. La méthode d'exécution se règle avec ALGORITHM = MERGE/TEMPTABLE ; WITH CHECK OPTION protège les vues modifiables.
SQL Server
CREATE OR ALTER VIEW active_customer AS
SELECT id, name, email FROM customer WHERE status = 'ACTIVE';
DROP VIEW active_customer;CREATE OR ALTER VIEW (2016 SP1+) crée/modifie en une seule instruction. Dans les versions plus anciennes, utilisez d'abord CREATE, puis ALTER VIEW. L'instruction de vue doit être la première du batch.
MongoDB
// Read-only view (on top of an aggregation pipeline)
db.createView("active_customer", "customer", [ { $match: { status: "ACTIVE" } }, { $project: { name: 1, email: 1 } } ]);
db.active_customer.drop();db.createView crée une vue en lecture seule sur une collection source et un pipeline d'agrégation. On ne peut pas écrire dans les vues ; pour changer la définition, supprimez-la et recréez-la (ou utilisez collMod).
Redis
# Not applicable: Redis has no view concept; derived views are provided on the application
# side or with RedisJSON/RediSearch indexes.Les vues définies sur des requêtes ne sont pas prises en charge. Pour un besoin similaire, conservez des clés précalculées ou construisez un index interrogeable avec RediSearch.
Elasticsearch
# Filtered logical view with an alias
POST _aliases
{ "actions": [ { "add": { "index": "customer", "alias": "active_customer",
"filter": { "term": { "status": "ACTIVE" } } } } ] }Il n'y a pas de vue SQL classique ; un alias filtré est l'équivalent le plus proche et applique automatiquement le filtre aux requêtes. Pour la sélection de colonnes, utilisez le filtrage _source dans la requête.