4D v14CREATE VIEW |
||||||||||||||||||||||||
|
4D v14
CREATE VIEW
CREATE VIEW
La commande CREATE VIEW permet de créer une vue SQL nommée nom_vue (qui est un nom_sql standard) comportant les colonnes définies dans le paramètre liste_colonnes. Il est nécessaire de spécifier un nom de colonne si cette colonne est une fonction ou est dérivée d’une opération arithmétique (scalaire). Il est également nécessaire de spécifier un nom de colonne si vous voulez éviter que différentes colonnes aient le même nom (par exemple lors d’une opération JOIN) ou lorsque vous voulez utiliser un nom de colonne différent de celui dont elle est dérivée. Si le paramètre liste_colonnes est passé, il doit contenir le même nombre de colonnes qu’il y en a dans la requête de définition instruction_select de la vue. Si liste_colonnes est omis, les colonnes de la vue auront le même nom que ceux des colonnes de l’instruction_select de la vue. Les vues et les tables doivent avoir des noms uniques. Si vous passez l’option OR REPLACE, la vue sera automatiquement recréée si elle existe déjà. Cette option peut être utile afin de changer la définition d’une vue existante sans devoir supprimer/recréer/affecter les privilèges des objets déjà définis pour la vue courante. nom_schema est également un nom_sql standard et permet de désigner le nom du schéma devant contenir la vue. Si vous ne passez pas de nom_schema ou si vous passez un nom de schéma inexistant, la vue sera automatiquement affectée au schéma par défaut, nommé "DEFAULT_SCHEMA". instruction_select désigne l’instruction SELECT qui constitue la requête de définition de la vue ("definition query"). L’instruction_select est identique à un SELECT standard de 4D, avec toutefois les restrictions suivantes :
Une définition de vue est "statique", elle n’est pas mise à jour si les tables sources sont modifiées ou supprimées. En particulier, les colonnes ajoutées à une table n’apparaîtront pas dans une vue basée sur cette table. De même, essayer d’accéder via une vue à des colonnes supprimées provoquera une erreur. La portée d’une vue est globale. Une fois qu’une vue a été créée par CREATE VIEW, elle est accessible par toutes les parties de l’application (4D distant via SQL, bases externes créées avec la commande CREATE DATABASE, autres bases via la commande SQL LOGIN, etc.) et à tout moment jusqu’à ce qu’elle soit supprimée par la commande DROP VIEW. Voici quelques exemples de définitions de vues basées sur la table PERSONS contenant les colonnes suivantes :
Une vue sans restrictions : CREATE VIEW FULLVIEW AS Une vue comportant des restrictions "horizontales". Par exemple, vous souhaitez afficher uniquement les personnes du service Marketing : CREATE VIEW HORIZONTALVIEW (ID, FirstName, LastName, Salary) AS Une vue avec agrégation : CREATE VIEW AGGREGATEVIEW (FirstName, LastName AnnualSalary) AS Une vue comportant des restrictions "verticales". Par exemple, vous ne souhaitez pas afficher la colonne SALARY : CREATE VIEW VERTICALVIEW (ID, FirstName, LastName, Department) AS Une fois les vues définies, vous pouvez les utiliser comme des tables standard. Par exemple, vous souhaitez obtenir toutes les personnes dont le salaire est supérieur à 5 000 Euros : SELECT * FROM FULLVIEW Autre exemple : vous souhaitez obtenir toutes les personnes du service Marketing dont le prénom est "Michael" : SELECT ID, LastName, Salary FROM HORIZONTALVIEW |
PROPRIÉTÉS
Produit : 4D VOIR AUSSI UTILISATION DE L'ARTICLE
4D - Référence SQL ( 4D v14) |
||||||||||||||||||||||