Create View

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

Zdefiniuj widok logiczny dla co najmniej jednej tabeli lub widoku.

OR REPLACE

Jeśli widok nie istnieje, CREATE OR REPLACE VIEW jest odpowiednikiem CREATE VIEW . Jeśli widok istnieje, CREATE OR REPLACE VIEW jest odpowiednikiem ALTER VIEW .

[GLOBAL] TEMPORARY

TEMPORARY Pomija utrwalanie definicji widoku w bazowym magazynze metadanych, jeśli jest w tym przypadku. Jeśli zostanie określony, widok będzie dostępny dla różnych sesji i będzie utrzymywany na aktywności do momentu zakończenia aplikacji. W przeciwnym razie widoki tymczasowe będą mieć zakres sesji i zostaną automatycznie porzucone po zakończeniu GLOBAL sesji. Wszystkie globalne widoki tymczasowe są powiązane z tymczasową bazą danych zachowywaną przez global_temp system. Nazwa bazy danych jest zachowywana i w związku z tym użytkownicy nie mogą tworzyć/używać/upuszczać tej bazy danych. Aby uzyskać dostęp do globalnego widoku tymczasowego, należy użyć kwalifikowanej nazwy.

Uwaga

Widok tymczasowy zdefiniowany w notesie nie jest widoczny w innych notesach. Zobacz Izolacja notesu.

(col_name1 [COMMENT col_comment1], ...)

Lista kolumn definiująca schemat widoku. Nazwy kolumn muszą być unikatowe z taką samą liczbą kolumn pobieranych przez element select_statement . Jeśli lista kolumn nie zostanie podana, schemat widoku jest schematem select_statement wyjściowym .

TBLPROPERTIES

Pary klucz-wartość metadanych.

AS select_statement

Instrukcja SELECT definiująca widok. Instrukcja może wybierać z tabel podstawowych lub innych widoków.

Ważne

Nie można określić opcji źródła danych, partycji ani klastrowania, ponieważ widok nie jest zmaterializowany jak tabela.

Przykłady

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