Tampilan adalah tabel virtual yang dibuat dari tabel yang ada di lapisan tabel. Tampilan memungkinkan Anda mempertahankan logika kueri (Pernyataan SQL) tanpa memerlukan tabel tambahan yang mengonsumsi ruang penyimpanan. Topik ini menjelaskan pernyataan untuk mengelola tampilan dan mencakup contoh penggunaannya.
Operasi
Tipe | Peran | Platform operasi |
Pengguna dengan izin CreateTable dalam sebuah proyek | Anda dapat mengeksekusi perintah yang dijelaskan dalam topik ini pada platform berikut: | |
Pengguna dengan izin Alter pada tabel | ||
Pengguna dengan izin Alter pada tabel | ||
Pengguna dengan izin List pada objek dalam sebuah proyek | ||
Pengguna dengan izin Describe untuk membaca metadata tabel | ||
Pengguna dengan izin Drop pada tabel |
Buat atau perbarui tampilan
Operasi ini digunakan untuk membuat tampilan baru atau memperbarui tampilan yang sudah ada menggunakan pernyataan kueri.
Batasan
Tampilan dapat merujuk ke tampilan lain, tetapi tidak boleh menciptakan referensi sirkular atau merujuk pada dirinya sendiri.
Data tidak dapat ditulis ke dalam tampilan. Operasi seperti
INSERT INTOatauINSERT OVERWRITEtidak diperbolehkan.
Sintaksis
CREATE [OR REPLACE] VIEW [IF NOT EXISTS] <view_name> [(<col_name> [comment <col_comment>], ...)] [comment <view_comment>] AS <select_statement>;Parameter
Parameter
Diperlukan
Deskripsi
OR REPLACE
Tidak
Bidang ini harus disertakan untuk memperbarui tampilan yang sudah ada.
IF NOT EXISTS
Tidak
Jika IF NOT EXISTS tidak ditentukan, upaya membuat tampilan yang sudah ada menggunakan
CREATE VIEWakan menghasilkan pengecualian. Dalam hal ini,CREATE OR REPLACE VIEWdapat digunakan untuk membuat ulang tampilan, dan izin tampilan tetap tidak berubah setelah pembuatan ulang.view_name
Ya
Nama tampilan yang akan dibuat atau diperbarui.
col_name
Ya
Nama kolom dalam tampilan yang akan dibuat.
col_comment
Tidak
Komentar untuk kolom dalam tampilan yang akan dibuat.
view_comment
Tidak
Komentar untuk tampilan yang akan dibuat.
select_statement
Ya
Pernyataan kueri SELECT yang berfungsi sebagai sumber data untuk tampilan. Anda harus memiliki izin baca untuk tabel yang dirujuk dalam tampilan. Hanya satu pernyataan
SELECTyang valid yang diizinkan dalam sebuah tampilan.CatatanSetelah tampilan dibuat atau diperbarui, tampilan mungkin tidak dapat diakses jika tabel yang dirujuknya dimodifikasi, misalnya jika tabel yang dirujuk dihapus. Pastikan untuk memelihara pemetaan antara tabel yang dirujuk dan tampilan.
Contoh
Contoh 1: Buat tampilan 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 tampilan 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;
Ubah nama tampilan
Sintaksis
ALTER VIEW <view_name> RENAME TO <new_view_name>;Parameter
Parameter
Diperlukan
Deskripsi
view_name
Ya
Nama tampilan yang akan diubah namanya.
new_view_name
Ya
Nama baru untuk tampilan. Kesalahan akan dikembalikan jika tampilan dengan nama baru sudah ada.
Contoh
--Ubah nama tampilan sale_detail_view menjadi market. ALTER VIEW sale_detail_view RENAME TO market;
Ubah pemilik tampilan
Sintaksis
ALTER VIEW <view_name> CHANGEOWNER TO <new_owner>;Parameter
Parameter
Diperlukan
Deskripsi
view_name
Ya
Nama tampilan yang pemiliknya ingin Anda ubah.
new_owner
Ya
Akun pemilik baru setelah modifikasi.
Contoh
--Ubah pemilik tampilan sale_detail_view menjadi ALIYUN$xxx@aliyun.com. ALTER VIEW sale_detail_view CHANGEOWNER TO 'ALIYUN$xxx@aliyun.com';
Daftar semua tampilan standar dalam sebuah proyek
Perintah SHOW VIEWS; memerlukan Klien MaxCompute (odpscmd) versi V0.43.0 atau lebih baru.
Sintaksis
Untuk mencantumkan hanya tampilan dalam sebuah proyek, gunakan
SHOW VIEWS;. Sebagai alternatif,SHOW TABLES;mencantumkan semua tabel dan tampilan dalam sebuah proyek. Untuk informasi lebih lanjut, lihat Daftar Tabel dan Tampilan dalam Sebuah Proyek.--Daftar semua tampilan standar dalam sebuah proyek. SHOW VIEWS; --Daftar tampilan dalam sebuah proyek yang namanya cocok dengan pola grafik. SHOW VIEWS LIKE '<chart>';Contoh
SHOW VIEWS LIKE 'sale*';Hasil yang Dikembalikan:
ALIYUN$account_name:sale_detail_view ...... --ALIYUN adalah prompt sistem, yang menunjukkan bahwa tabel dibuat menggunakan akun Alibaba Cloud. Jika Anda adalah pengguna RAM, prompt sistemnya adalah RAM.
Kueri tampilan
Lihat informasi definisi, waktu pembuatan, proyek tempat tampilan berada, serta metadata lainnya.
Sintaksis
DESC <view_name>;Parameter
view_name: Diperlukan. Nama tampilan yang ingin Anda kueri.
Contoh
DESC sale_detail_view;Hasil yang 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 | | | +------------------------------------------------------------------------------------+
Hapus tampilan
Perintah ini digunakan untuk menghapus tampilan yang sudah ada dari database.
Sintaksis
DROP VIEW [IF EXISTS] <view_name>;Parameter
Parameter
Diperlukan
Deskripsi
IF EXISTS
Tidak
Jika tampilan tidak ada dan IF EXISTS tidak ditentukan, kesalahan akan dikembalikan.
view_name
Ya
Nama tampilan yang akan dihapus.
Contoh
--Hapus tampilan sale_detail_view. DROP VIEW IF EXISTS sale_detail_view;