Görünüm, bir veya daha fazla tabloya dayalı bir sorgu ile tanımlanan sanal bir tablodur. Depolama alanı tüketen fiziksel bir tablo oluşturmadan sorgu mantığını (SQL deyimlerini) kaydetmek için görünüm kullanabilirsiniz. Bu konuda, görünümleri yönetmek için kullanılan komutlar açıklanmakta ve kullanım örnekleri sunulmaktadır.
Aşağıdaki tabloda görünümleri yönetmek için kullanılan komutlar açıklanmaktadır.
İşlem | Açıklama | Gerekli izin | Platform |
Bir sorguya dayalı olarak bir görünüm oluşturur veya mevcut bir görünümü günceller. | Proje üzerinde | Bu komutları aşağıdaki platformlarda çalıştırabilirsiniz: | |
Mevcut bir görünümün adını değiştirir. | Görünüm üzerinde | ||
Mevcut bir görünümün sahibini değiştirir. | Proje sahibi. | ||
Bir projedeki tüm standart görünümleri listeler. | Proje üzerinde | ||
Standart bir görünümün DDL deyimini gösterir. | Görünüm üzerinde | ||
Mevcut bir görünüm için meta verileri gösterir. | Görünüm üzerinde | ||
Mevcut bir görünümü siler. | Görünüm üzerinde |
Görünüm oluşturun veya güncelleyin
Bir sorguya dayalı olarak bir görünüm oluşturur veya mevcut bir görünümü günceller.
-
Sınırlamalar
Bir görünüm diğer görünümlere başvurabilir ancak kendisine başvurmaz veya döngüsel referanslar oluşturmaz.
Bir görünüme veri yazamazsınız. Örneğin, bir görünümde
INSERT INTOveyaINSERT OVERWRITEkullanamazsınız.
-
Sözdizimi
CREATE [OR REPLACE] VIEW [IF NOT EXISTS] <view_name> [(<col_name> [comment <col_comment>], ...)] [comment <view_comment>] AS <select_statement>; -
Parametreler
Parametre
Gerekli
Açıklama
OR REPLACE
Hayır
Bir görünümü güncellemek için bu yan tümceyi ekleyin.
IF NOT EXISTS
Hayır
IF NOT EXISTS belirtmezseniz, mevcut bir görünümdeCREATE VIEWkullandığınızda bir hata döndürülür. Bu durumda, görünümü yeniden oluşturmak içinCREATE OR REPLACE VIEWkullanabilirsiniz. Yeniden oluşturma işleminden sonra görünüm izinleri değişmez.
view_name
Evet
Oluşturmak veya güncellemek istediğiniz görünümün adı.
col_name
Evet
Oluşturulacak görünümdeki bir sütunun adı.
col_comment
Hayır
Görünümdeki bir sütun için açıklama.
view_comment
Hayır
Görünüm için açıklama.
select_statement
Evet
Görünümü tanımlayan SELECT sorgusu. Görünüm tarafından başvurulan tablolar üzerinde okuma iznine sahip olmanız gerekir. Bir görünüm yalnızca bir geçerliSELECTdeyimi içerebilir.NotBaşvurulan bir tablo değiştirilirse (örneğin tablo silinirse) bir görünüm erişilemez hale gelebilir. Görünümler ile bunların başvurduğu tablolar arasındaki eşlemeleri korumanız gerekir.
-
Örnekler
-
Örnek 1: sale_detail tablosuna dayalı olarak sale_detail_view adlı bir görünüm oluşturun.
CREATE VIEW IF NOT EXISTS sale_detail_view (store_name, customer_id, price, sale_date, region) comment 'a view for table sale_detail' AS SELECT * FROM sale_detail; -
Örnek 2: sale_detail tablosuna dayalı olarak sale_detail_view görünümünü güncelleyin.
CREATE OR REPLACE VIEW IF NOT EXISTS sale_detail_view (store_name, customer_id, price) comment 'a view for table sale_detail' AS SELECT shop_name, customer_id, total_price FROM sale_detail;
-
Görünümü yeniden adlandırın
Mevcut bir görünümün adını değiştirir.
-
Sözdizimi
ALTER VIEW <view_name> RENAME TO <new_view_name>; -
Parametreler
Parametre
Gerekli
Açıklama
view_name
Evet
Yeniden adlandırmak istediğiniz görünümün adı.
new_view_name
Evet
Görünümün yeni adı. Aynı ada sahip bir görünüm zaten varsa hata oluşur. -
Örnek
-- Rename the view 'sale_detail_view' to 'market'. ALTER VIEW sale_detail_view RENAME TO market;
Görünümün sahibini değiştirin
Mevcut bir görünümün sahibini değiştirir.
-
Sözdizimi
ALTER VIEW <view_name> CHANGEOWNER TO <new_owner>; -
Parametreler
Parametre
Gerekli
Açıklama
view_name
Evet
Görünümün adı.
new_owner
Evet
Yeni sahibin hesabı. -
Örnek
-- Change the owner of the view 'sale_detail_view' to 'ALIYUN$xxx@aliyun.com'. ALTER VIEW sale_detail_view CHANGEOWNER TO 'ALIYUN$xxx@aliyun.com';
Standart görünümleri listeleyin
SHOW VIEWS; komutu MaxCompute istemcisi (odpscmd) 0.43.0 veya sonraki bir sürümü gerektirir.
-
Sözdizimi
Yalnızca bir projedeki görünümleri listelemek için
SHOW VIEWS;çalıştırın. Bir projedeki tüm tabloları ve görünümleri listelemek için ayrıcaSHOW TABLES;çalıştırabilirsiniz. Daha fazla bilgi için bkz. Bir projede tabloları ve görünümleri listeleyin.-- List all standard views in a project. SHOW VIEWS; -- List views in a project whose names match a specified pattern. SHOW VIEWS LIKE '<chart>'; -
Örnek
SHOW VIEWS LIKE 'sale*';Aşağıdaki sonuç döndürülür:
ALIYUN$account_name:sale_detail_view ...... -- The ALIYUN prompt indicates that you are using an Alibaba Cloud account. If you are using a RAM user, the prompt is RAM.
DDL deyimini görüntüleyin
Standart bir görünümün DDL deyimini gösterir.
-
Sözdizimi
SHOW CREATE VIEW <view_name>; -
Parametreler
view_name: Gerekli. Standart görünümün adı.
-
Örnek
-- View the creation statement for 'sale_detail_view'. SHOW CREATE VIEW sale_detail_view; -- The following result is returned: CREATE VIEW IF NOT EXISTS project.sale_detail_view(store_name,customer_id,price,sale_date,region) COMMENT 'a view for table sale_detail' AS SELECT sale_detail.shop_name, sale_detail.customer_id, sale_detail.total_price, sale_detail.sale_date, sale_detail.region FROM project.sale_detail sale_detail;
Görünümü açıklayın
Tanımı (ViewText), oluşturma zamanı ve projesi gibi bir görünümün meta verilerini gösterir.
-
Sözdizimi
DESC <view_name>; -
Parametreler
view_name: Gerekli. Görünümün adı.
-
Örnek
DESC sale_detail_view;Aşağıdaki sonuç döndürülür:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$san****@aliyunid.com | | Project: aning**** | | Schema: default | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2025-03-19 13:22:48 | | LastDDLTime: 2025-03-19 13:22:48 | | LastModifiedTime: 2025-03-19 13:22:48 | +------------------------------------------------------------------------------------+ | VirtualView : YES | | ViewText: SELECT shop_name, customer_id, total_price FROM sale_detail | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | shop_name | string | | | | customer_id | string | | | | total_price | double | | | +------------------------------------------------------------------------------------+
Görünümü silin
Mevcut bir görünümü siler.
-
Sözdizimi
DROP VIEW [IF EXISTS] <view_name>; -
Parametreler
Parametre
Gerekli
Açıklama
IF EXISTS
Hayır
Görünüm yoksa ve IF EXISTS belirtmezseniz hata oluşur.
view_name
Evet
Silinecek görünümün adı. -
Örnek
-- Delete the view 'sale_detail_view'. DROP VIEW IF EXISTS sale_detail_view;