CREATE VIEW

Maakt een virtuele tabel die geen fysieke gegevens heeft op basis van de resultatenset van een SQL query. ALTER VIEW en DROP VIEW alleen metagegevens wijzigen.

Syntaxis

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

Parameters

  • OF VERVANGEN

    Als er al een weergave met dezelfde naam bestaat, wordt deze vervangen.

  • [ GLOBAAL ] TIJDELIJKE

    TIJDELIJKE weergaven hebben een sessiebereik en worden beƫindigd wanneer de sessie wordt beƫindigd, omdat het persistent maken van de definitie in de onderliggende metastore wordt overgeslagen, indien van toepassing. GLOBAL TEMPORARY-weergaven zijn gekoppeld aan een tijdelijke database die door het systeem is global_temp bewaard.

  • INDIEN NIET BESTAAT

    Hiermee maakt u een weergave als deze niet bestaat.

  • view_identifier

    Een weergavenaam, eventueel gekwalificeerd met een databasenaam.

    Syntaxis:[database_name.] view_name

  • create_view_clauses

    Deze component is optioneel en niet-gevoelig voor de volgorde. Deze kan de volgende indelingen hebben.

    • [ ( column_name [ COMMENT column_comment ], ... ) ] om opmerkingen op kolomniveau op te geven.
    • [ COMMENT view_comment ] om opmerkingen op weergaveniveau op te geven.
    • [ TBLPROPERTIES ( property_name = property_value [ , ... ] ) ] om sleutel-waardeparen voor metagegevens toe te voegen.
  • query Een SELECT-instructie die de weergave op basis van basistabellen of andere weergaven maakt.

Voorbeelden

-- 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;