View adalah tabel virtual yang didefinisikan oleh kueri berdasarkan satu atau beberapa tabel. View memungkinkan Anda menyimpan logika kueri (pernyataan SQL) tanpa membuat tabel fisik yang mengonsumsi ruang penyimpanan. Topik ini menjelaskan perintah untuk mengelola view beserta contoh penggunaannya.
Tabel berikut menjelaskan perintah yang digunakan untuk mengelola view.
Operation | Description | Required permission | Platform |
Membuat view berdasarkan kueri atau memperbarui view yang sudah ada. | Izin | Anda dapat menjalankan perintah-perintah ini pada platform berikut: | |
Mengubah nama view yang sudah ada. | Izin | ||
Mengubah pemilik view yang sudah ada. | Pemilik proyek. | ||
Menampilkan semua view standar dalam suatu proyek. | Izin | ||
Menampilkan pernyataan DDL dari view standar. | Izin | ||
Menampilkan metadata dari view yang sudah ada. | Izin | ||
Menghapus view yang sudah ada. | Izin |
Create or update a view
Membuat view berdasarkan kueri atau memperbarui view yang sudah ada.
Limitations
View dapat mereferensi view lain, tetapi tidak dapat mereferensi dirinya sendiri atau membentuk referensi sirkular.
Anda tidak dapat menulis data ke view. Misalnya, Anda tidak dapat menggunakan
INSERT INTOatauINSERT OVERWRITEpada view.
Syntax
CREATE [OR REPLACE] VIEW [IF NOT EXISTS] <view_name> [(<col_name> [comment <col_comment>], ...)] [comment <view_comment>] AS <select_statement>;Parameters
Parameter
Required
Description
OR REPLACE
No
Sertakan klausa ini untuk memperbarui view.
IF NOT EXISTS
No
Jika Anda tidak menentukan IF NOT EXISTS, kesalahan akan dikembalikan saat Anda menggunakan
CREATE VIEWpada view yang sudah ada. Dalam kasus ini, Anda dapat menggunakanCREATE OR REPLACE VIEWuntuk membuat ulang view tersebut. Izin view tetap tidak berubah setelah pembuatan ulang.view_name
Yes
Nama view yang ingin Anda buat atau perbarui.
col_name
Yes
Nama kolom dalam view yang akan dibuat.
col_comment
No
Komentar untuk kolom dalam view.
view_comment
No
Komentar untuk view.
select_statement
Yes
Kueri SELECT yang mendefinisikan view. Anda harus memiliki izin baca pada tabel yang direferensikan oleh view tersebut. View hanya dapat berisi satu pernyataan
SELECTyang valid.CatatanView mungkin menjadi tidak dapat diakses jika tabel yang direferensikan diubah, misalnya jika tabel tersebut dihapus. Anda harus memelihara pemetaan antara view dan tabel yang direferensikannya.
Examples
Contoh 1: Buat view bernama sale_detail_view berdasarkan tabel sale_detail.
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;Contoh 2: Perbarui view sale_detail_view berdasarkan tabel sale_detail.
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;
Rename a view
Mengubah nama view yang sudah ada.
Syntax
ALTER VIEW <view_name> RENAME TO <new_view_name>;Parameters
Parameter
Required
Description
view_name
Yes
Nama view yang ingin Anda ubah namanya.
new_view_name
Yes
Nama baru view tersebut. Kesalahan terjadi jika view dengan nama yang sama sudah ada.
Example
-- Ubah nama view 'sale_detail_view' menjadi 'market'. ALTER VIEW sale_detail_view RENAME TO market;
Change the owner of a view
Mengubah pemilik view yang sudah ada.
Syntax
ALTER VIEW <view_name> CHANGEOWNER TO <new_owner>;Parameters
Parameter
Required
Description
view_name
Yes
Nama view tersebut.
new_owner
Yes
Akun pemilik baru.
Example
-- Ubah pemilik view 'sale_detail_view' menjadi 'ALIYUN$xxx@aliyun.com'. ALTER VIEW sale_detail_view CHANGEOWNER TO 'ALIYUN$xxx@aliyun.com';
List standard views
Perintah SHOW VIEWS; memerlukan MaxCompute client (odpscmd) versi 0.43.0 atau lebih baru.
Syntax
Jalankan
SHOW VIEWS;untuk menampilkan hanya view dalam suatu proyek. Anda juga dapat menjalankanSHOW TABLES;untuk menampilkan semua tabel dan view dalam suatu proyek. Untuk informasi selengkapnya, lihat List tables and views in a project.-- Tampilkan semua view standar dalam suatu proyek. SHOW VIEWS; -- Tampilkan view dalam proyek yang namanya sesuai pola tertentu. SHOW VIEWS LIKE '<chart>';Example
SHOW VIEWS LIKE 'sale*';Hasil berikut dikembalikan:
ALIYUN$account_name:sale_detail_view ...... -- Prompt ALIYUN menunjukkan bahwa Anda menggunakan Akun Alibaba Cloud. Jika Anda menggunakan RAM user, prompt-nya adalah RAM.
View the DDL statement
Menampilkan pernyataan DDL dari view standar.
Syntax
SHOW CREATE VIEW <view_name>;Parameters
view_name: Wajib. Nama view standar.
Example
-- Tampilkan pernyataan pembuatan untuk 'sale_detail_view'. SHOW CREATE VIEW sale_detail_view; -- Hasil berikut dikembalikan: 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;
Describe a view
Menampilkan metadata view, seperti definisinya (ViewText), waktu pembuatan, dan proyeknya.
Syntax
DESC <view_name>;Parameters
view_name: Wajib. Nama view tersebut.
Example
DESC sale_detail_view;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | 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 | | | +------------------------------------------------------------------------------------+
Drop a view
Menghapus view yang sudah ada.
Syntax
DROP VIEW [IF EXISTS] <view_name>;Parameters
Parameter
Required
Description
IF EXISTS
No
Jika view tidak ada dan Anda tidak menentukan IF EXISTS, kesalahan terjadi.
view_name
Yes
Nama view yang akan dihapus.
Example
-- Hapus view 'sale_detail_view'. DROP VIEW IF EXISTS sale_detail_view;