CREATE VIEW

construit une table virtuelle qui n’a pas de données physiques en fonction de l’ensemble de résultats d’une requête de SQL. ALTER VIEW et DROP VIEW modifient uniquement les métadonnées.

Syntaxe

CREATE [ OR REPLACE ] [ [ GLOBAL ] TEMPORARY ] VIEW [ IF NOT EXISTS ] view_identifier
    create_view_clauses AS query

Paramètres

  • OU REMPLACER

    Si une vue du même nom existe déjà, elle est remplacée.

  • Généralités PASSAGÈRE

    Les vues temporaires sont étendues à une session et sont supprimées lorsque la session se termine parce qu’elle ignore la définition dans le magasin sous-jacent, le cas échéant. Les vues temporaires GLOBALes sont liées à une base de données temporaire conservée par le système global_temp .

  • S’IL N’EXISTE PAS

    Crée une vue si elle n’existe pas.

  • view_identifier

    Nom de la vue, éventuellement qualifié avec un nom de base de données.

    Syntaxe :[database_name.] view_name

  • create_view_clauses

    Ces clauses sont facultatives et ne respectent pas la commande. Il peut être au format suivant.

    • [ ( column_name [ COMMENT column_comment ], ... ) ] pour spécifier des commentaires au niveau des colonnes.
    • [ COMMENT view_comment ] pour spécifier des commentaires au niveau de la vue.
    • [ TBLPROPERTIES ( property_name = property_value [ , ... ] ) ] pour ajouter des paires clé-valeur de métadonnées.
  • requête Instruction Select qui construit la vue à partir de tables de base ou d’autres vues.

Exemples

-- Create or replace view for `experienced_employee` with comments.
CREATE OR REPLACE VIEW experienced_employee
    (ID COMMENT 'Unique identification number', Name)
    COMMENT 'View for experienced employees'
    AS SELECT id, name FROM all_employee
        WHERE working_years > 5;

-- Create a global temporary view `subscribed_movies` if it does not exist.
CREATE GLOBAL TEMPORARY VIEW IF NOT EXISTS subscribed_movies
    AS SELECT mo.member_id, mb.full_name, mo.movie_title
        FROM movies AS mo INNER JOIN members AS mb
        ON mo.member_id = mb.id;