Skapa vy

CREATE [OR REPLACE] [[GLOBAL] TEMPORARY] VIEW [db_name.]view_name
  [(col_name1 [COMMENT col_comment1], ...)]
  [COMMENT table_comment]
  [TBLPROPERTIES (key1=val1, key2=val2, ...)]
    AS select_statement

Definiera en logisk vy för en eller flera tabeller eller vyer.

OR REPLACE

Om vyn inte finns CREATE OR REPLACE VIEW motsvarar CREATE VIEW . Om vyn finns CREATE OR REPLACE VIEW motsvarar ALTER VIEW .

[GLOBAL] TEMPORARY

TEMPORARY hoppar över att bevara vyns definition i underliggande metaarkiv, om det finns några. Om GLOBAL har angetts kan vyn nås av olika sessioner och hållas aktiva tills programmet slutar. i annat fall är temporära vyer sessions-och kommer att tas bort automatiskt om sessionen avslutas. Alla globala temporära vyer är knutna till ett system konserverad tillfällig databas global_temp . Databas namnet bevaras och kan därför inte användas för att skapa/använda/ta bort den här databasen. Du måste använda det kvalificerade namnet för att få åtkomst till den globala tillfälliga vyn.

Anteckning

En tillfällig vy som definieras i en notebook är inte synlig i andra antecknings böcker. Se isolering av bärbara datorer.

(col_name1 [COMMENT col_comment1], ...)

En kolumn lista som definierar schemat för visning. Kolumn namnen måste vara unika med samma antal kolumner som hämtats av select_statement . Om kolumn listan inte anges, är vyns schema utdata select_statement .

TBLPROPERTIES

Nyckel/värde-par för metadata.

AS select_statement

En SELECT instruktion som definierar vyn. Instruktionen kan välja från bas tabeller eller andra vyer.

Viktigt

Du kan inte ange alternativ för data källa, partition eller kluster eftersom en vy inte är materialiserad som en tabell.

Exempel

-- Create a persistent view view_deptDetails in database1. The view definition is recorded in the underlying metastore
CREATE VIEW database1.view_deptDetails
  AS SELECT * FROM company JOIN dept ON company.dept_id = dept.id;

-- Create or replace a local temporary view from a persistent view with an extra filter
CREATE OR REPLACE TEMPORARY VIEW temp_DeptSFO
  AS SELECT * FROM database1.view_deptDetails WHERE loc = 'SFO';

-- Access the base tables through the temporary view
SELECT * FROM temp_DeptSFO;

-- Create a global temp view to share the data through different sessions
CREATE GLOBAL TEMP VIEW global_DeptSJC
  AS SELECT * FROM database1.view_deptDetails WHERE loc = 'SJC';

-- Access the global temp views
SELECT * FROM global_temp.global_DeptSJC;

-- Drop the global temp view, temp view, and persistent view.
DROP VIEW global_temp.global_DeptSJC;
DROP VIEW temp_DeptSFO;
DROP VIEW database1.view_deptDetails;