CREATE VIEW

Name

CREATE VIEW  --  définit une nouvelle vue.

Synopsis

CREATE VIEW view [ ( column name list ) ] AS SELECT query
  

Entrées

view

Nom d'une vue à créer.

column name list

Liste optionelle de noms à utiliser pour les colonnes de la vue. Si indiqués, ces noms remplacent les noms de colonnes qui seront déduits de la requête SQL.

query

Requête SQL qui fournit les colonnes et les lignes de la vue.

Voir l'instruction SELECT pour plus d'information sur les arguments valides.

Sorties

CREATE

Message retourné si la vue a été créée correctement.

ERROR: Relation 'view' already exists

Erreur retournée si la vue existe déja dans la base.

NOTICE: Attribute 'column' has an unknown type

La vue sera créée en ayant une colonne de type inconnu si vous ne la spécifiez pas. Par exemple, la commande suivante génère un avertissement :

CREATE VIEW vista AS SELECT 'Hello World'
	
puisque cette commande n'indique pas :
CREATE VIEW vista AS SELECT text 'Hello World'
	

Description

CREATE VIEW définira une vue d'une table. La vue n'est pas physiquement matérialisée. Au lieu de ça, une requête est automatiquement générée pour supporter les opérations de questionnement dans les vues.

Notes

Actuellement, les vues sont en lecture seule : ne système ne permet pas d'insertion, mise à jour ou suppression dans une vue. Vous pouvez obtenir l'effet d'une vue mise à jour en créant des règles qui remanient les insertions, etc. sur la vue dans les actions appropriées sur les autres tables. Pour plus d'information voir CREATE RULE.

Utilisez l'instruction DROP VIEW pour supprimer des vues.

Utilisation

Créons une vue concernant tous les films de comédie :

CREATE VIEW kinds AS
    SELECT *
    FROM films
    WHERE kind = 'Comedy';

SELECT * FROM kinds;

 code  |           title           | did | date_prod  |  kind  | len
-------+---------------------------+-----+------------+--------+-------
 UA502 | Bananas                   | 105 | 1971-07-13 | Comedy | 01:22
 C_701 | There's a Girl in my Soup | 107 | 1970-06-11 | Comedy | 01:36
(2 rows)
   

Compatibilité

SQL92

SQL92 spécifie certaines possibilités supplémentaires de l'instruction CREATE VIEW :

CREATE VIEW view [ column [, ...] ]
    AS SELECT expression [ AS colname ] [, ...]
    FROM table [ WHERE condition ]
    [ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
   

Les clauses optionnelles pour les commandes SQL92 sont :

CHECK OPTION

Cette option fonctionne avec les vues pouvant être mises à jour. Tous les INSERT et UPDATE sur la vue seront vérifiés pour s'assurer que les données satisfont les conditions définissant la vue. Si ce n'est pas le cas, la mise à jour sera rejetée.

LOCAL

Vérification de l'intégrité de la vue.

CASCADE

Vérification de l'intégrité de la vue et de chaque vue dépendante. CASCADE est supposé si ni CASCADE ni LOCAL ne sont spécifiés.