Membuat atau memperbarui tampilan berdasarkan pernyataan kueri.
Batasan
- Tampilan dapat merujuk ke tampilan lain, tetapi tidak dapat merujuk pada dirinya sendiri. Referensi melingkar tidak didukung.
- Penulisan data ke tampilan tidak diizinkan. Sebagai contoh,
INSERT INTOatauINSERT OVERWRITEtidak dapat dieksekusi pada tampilan.
Sintaksis
create [or replace] view [if not exists] <view_name>
[(<col_name> [comment <col_comment>], ...)]
[comment <view_comment>]
as <select_statement>;Parameter
| Parameter | Wajib | Deskripsi |
| or replace | Tidak | Parameter ini diperlukan ketika Anda ingin memperbarui tampilan. |
| if not exists | Tidak | Jika pernyataan CREATE VIEW dijalankan tanpa if not exists dan tampilan yang ingin Anda buat sudah ada, kesalahan akan dikembalikan. Dalam hal ini, Anda dapat menjalankan pernyataan CREATE OR REPLACE VIEW untuk membuat ulang tampilan. Izin pada tampilan tetap tidak berubah setelah tampilan dibuat ulang. |
| view_name | Ya | Nama tampilan yang ingin Anda buat atau perbarui. |
| col_name | Ya | Nama kolom dalam tampilan yang ingin Anda buat. |
| col_comment | Tidak | Komentar kolom dari tampilan yang ingin Anda buat. |
| view_comment | Tidak | Komentar dari tampilan yang ingin Anda buat. |
| select_statement | Ya | Klausa SELECT yang menyediakan sumber data tampilan. Anda harus memiliki izin baca pada tabel yang dirujuk oleh tampilan. Saat membuat atau memperbarui tampilan, Anda hanya dapat menggunakan satu klausa SELECT yang valid. |
Catatan Setelah pembuatan atau pembaruan tampilan, tampilan mungkin tidak dapat diakses jika tabel yang dirujuk dimodifikasi. Sebagai contoh, jika tabel yang dirujuk dihapus. Pemetaan antara tabel yang dirujuk dan tampilan harus dipelihara.
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;
Perintah terkait
- ALTER VIEW: Mengganti nama tampilan yang ada atau mengubah pemilik tampilan tersebut.
- DESC VIEW: Menampilkan informasi tampilan yang ada.
- DROP VIEW: Menghapus tampilan yang ada.