

 Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting [ blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/) yang diterbitkan pada 30 Juni 2025. 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# CREATE VIEW
<a name="r_CREATE_VIEW"></a>

Membuat tampilan dalam database. Tampilan tidak terwujud secara fisik; kueri yang mendefinisikan tampilan dijalankan setiap kali tampilan direferensikan dalam kueri. Untuk membuat tampilan dengan tabel eksternal, sertakan klausa WITH NO SCHEMA BINDING.

Untuk membuat tampilan standar, Anda memerlukan akses ke tabel yang mendasarinya, atau ke tampilan yang mendasarinya. Untuk menanyakan tampilan standar, Anda perlu memilih izin untuk tampilan itu sendiri, tetapi Anda tidak perlu memilih izin untuk tabel yang mendasarinya. Dalam kasus di mana Anda membuat tampilan yang mereferensikan tabel atau tampilan dalam skema lain, atau jika Anda membuat tampilan yang mereferensikan tampilan yang terwujud, Anda memerlukan izin penggunaan. Untuk menanyakan tampilan pengikatan terlambat, Anda perlu memilih izin untuk tampilan pengikatan terlambat itu sendiri. Anda juga harus memastikan pemilik tampilan pengikatan terlambat memiliki izin pilih untuk objek yang direferensikan (tabel, tampilan, atau fungsi yang ditentukan pengguna). Untuk informasi selengkapnya tentang tampilan pengikatan terlambat, lihat. [Catatan penggunaan](#r_CREATE_VIEW_usage_notes)

## Izin yang diperlukan
<a name="r_CREATE_VIEW-privileges"></a>

Untuk menggunakan CREATE VIEW, salah satu izin berikut diperlukan.
+ Untuk membuat tampilan menggunakan CREATE [OR REPLACE] VIEW:
  + Superuser
  + Pengguna dengan izin CREATE [REPLACE] VIEW
+ Untuk mengganti tampilan yang ada menggunakan CREATE OR REPLACE VIEW:
  + Superuser
  + Pengguna dengan izin CREATE [OR REPLACE] VIEW
  + Lihat pemilik

Jika pengguna ingin mengakses tampilan yang menggabungkan fungsi yang ditentukan pengguna, pengguna harus memiliki izin EXECUTE pada fungsi itu.

## Sintaksis
<a name="r_CREATE_VIEW-synopsis"></a>

```
CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query
[ WITH NO SCHEMA BINDING ]
```

## Parameter
<a name="r_CREATE_VIEW-parameters"></a>

ATAU GANTI   
Jika tampilan dengan nama yang sama sudah ada, tampilan diganti. Anda hanya dapat mengganti tampilan dengan kueri baru yang menghasilkan kumpulan kolom yang identik, menggunakan nama kolom dan tipe data yang sama. CREATE OR REPLACE VIEW mengunci tampilan untuk membaca dan menulis hingga operasi selesai.  
Saat tampilan diganti, properti lainnya seperti kepemilikan dan hak istimewa yang diberikan dipertahankan. 

 *name*   
Nama tampilan. Jika nama skema diberikan (seperti`myschema.myview`) tampilan dibuat menggunakan skema yang ditentukan. Jika tidak, tampilan dibuat dalam skema saat ini. Nama tampilan harus berbeda dari nama tampilan atau tabel lain dalam skema yang sama.   
Jika Anda menentukan nama tampilan yang dimulai dengan '\# ', tampilan dibuat sebagai tampilan sementara yang hanya terlihat di sesi saat ini.  
Untuk informasi selengkapnya tentang nama yang valid, lihat[Nama dan pengenal](r_names.md). Anda tidak dapat membuat tabel atau tampilan di database sistem template0, template1, padb\_harvest, atau sys:internal.

 *nama\_kolom *   
Daftar nama opsional yang akan digunakan untuk kolom dalam tampilan. Jika tidak ada nama kolom yang diberikan, nama kolom diturunkan dari kueri. Jumlah maksimum kolom yang dapat Anda tentukan dalam satu tampilan adalah 1.600.

 *query*   
Kueri (dalam bentuk pernyataan SELECT) yang mengevaluasi ke tabel. Tabel ini mendefinisikan kolom dan baris dalam tampilan. 

 TANPA PENGIKATAN SKEMA   
Klausa yang menentukan bahwa tampilan tidak terikat ke objek database yang mendasarinya, seperti tabel dan fungsi yang ditentukan pengguna. Akibatnya, tidak ada ketergantungan antara tampilan dan objek yang dirujukkannya. Anda dapat membuat tampilan meskipun objek yang direferensikan tidak ada. Karena tidak ada ketergantungan, Anda dapat melepaskan atau mengubah objek yang direferensikan tanpa mempengaruhi tampilan. Amazon Redshift tidak memeriksa dependensi sampai tampilan ditanyakan. Ekspresi tabel umum rekursif (RCTe) tidak didukung dengan tampilan pengikatan terlambat. Untuk melihat detail tentang tampilan pengikatan terlambat, jalankan fungsinya. [PG\_GET\_LATE\_BINDING\_VIEW\_COLS](PG_GET_LATE_BINDING_VIEW_COLS.md)  
Bila Anda menyertakan klausa WITH NO SCHEMA BINDING, tabel dan tampilan yang dirujuk dalam pernyataan SELECT harus memenuhi syarat dengan nama skema. Skema harus ada saat tampilan dibuat, bahkan jika tabel yang direferensikan tidak ada. Misalnya, pernyataan berikut mengembalikan kesalahan.   

```
create view myevent as select eventname from event
with no schema binding;
```
Pernyataan berikut berjalan dengan sukses.  

```
create view myevent as select eventname from public.event
with no schema binding;
```

**catatan**  
Anda tidak dapat memperbarui, menyisipkan ke, atau menghapus dari tampilan. 

## Catatan penggunaan
<a name="r_CREATE_VIEW_usage_notes"></a>



### Late-binding pandangan
<a name="r_CREATE_VIEW_late-binding-views"></a>

Tampilan pengikatan terlambat tidak memeriksa objek database yang mendasarinya, seperti tabel dan tampilan lainnya, sampai tampilan ditanyakan. Akibatnya, Anda dapat mengubah atau melepaskan objek yang mendasarinya tanpa menjatuhkan dan membuat ulang tampilan. Jika Anda melepaskan objek yang mendasarinya, kueri ke tampilan pengikatan terlambat akan gagal. Jika kueri ke tampilan pengikatan terlambat mereferensikan kolom di objek dasar yang tidak ada, kueri akan gagal. 

 Jika Anda melepas dan kemudian membuat ulang tabel atau tampilan dasar tampilan pengikatan terlambat, objek baru dibuat dengan izin akses default. Anda mungkin perlu memberikan izin ke objek yang mendasarinya untuk pengguna yang akan menanyakan tampilan. 

Untuk membuat tampilan pengikatan terlambat, sertakan klausa WITH NO SCHEMA BINDING. Contoh berikut membuat tampilan tanpa pengikatan skema. 

```
create view event_vw as select * from public.event
with no schema binding;
```

```
select * from event_vw limit 1;
            
eventid | venueid | catid | dateid | eventname     | starttime
--------+---------+-------+--------+---------------+--------------------
      2 |     306 |     8 |   2114 | Boris Godunov | 2008-10-15 20:00:00
```

Contoh berikut menunjukkan bahwa Anda dapat mengubah tabel yang mendasarinya tanpa membuat ulang tampilan. 

```
alter table event rename column eventname to title;
```

```
select * from event_vw limit 1;
            
eventid | venueid | catid | dateid | title         | starttime
--------+---------+-------+--------+---------------+--------------------
      2 |     306 |     8 |   2114 | Boris Godunov | 2008-10-15 20:00:00
```

Anda dapat mereferensikan tabel eksternal Amazon Redshift Spectrum hanya dalam tampilan pengikatan terlambat. Salah satu aplikasi tampilan yang mengikat terlambat adalah menanyakan tabel Amazon Redshift dan Redshift Spectrum. Misalnya, Anda dapat menggunakan [MEMBONGKAR](r_UNLOAD.md) perintah untuk mengarsipkan data lama ke Amazon S3. Kemudian, buat tabel eksternal Redshift Spectrum yang mereferensikan data di Amazon S3 dan buat tampilan yang menanyakan kedua tabel. Contoh berikut menggunakan klausa UNION ALL untuk bergabung dengan tabel Amazon Redshift dan `SALES` tabel Redshift Spectrum`SPECTRUM.SALES`.

```
create view sales_vw as
select * from public.sales
union all
select * from spectrum.sales
with no schema binding;
```

Untuk informasi selengkapnya tentang membuat tabel eksternal Redshift Spectrum, termasuk `SPECTRUM.SALES` tabel, lihat[Memulai dengan Amazon Redshift Spectrum](c-getting-started-using-spectrum.md).

**penting**  
Saat Anda membuat tampilan standar dari tampilan pengikatan terlambat, definisi tampilan standar berisi definisi tampilan pengikatan terlambat pada saat tampilan standar dibuat, termasuk pemilik tampilan pengikatan terlambat. Jika Anda membuat perubahan pada tampilan pengikatan terlambat yang mendasarinya, perubahan tersebut tidak akan digunakan dalam tampilan standar sampai Anda membuat ulang tampilan standar. Oleh karena itu, ketika tampilan standar ditanyakan, itu akan selalu menggunakan definisi tampilan pengikatan terlambat dan pemilik tampilan pengikatan terlambat untuk pemeriksaan izin pada saat pembuatan tampilan standar tersebut.

Untuk memperbarui tampilan standar untuk merujuk ke definisi terbaru dari tampilan pengikatan terlambat, jalankan CREATE OR REPLACE VIEW dengan definisi tampilan awal yang Anda gunakan untuk membuat tampilan standar.

Lihat contoh berikut untuk membuat tampilan standar dari tampilan pengikatan terlambat.

```
create view sales_vw_lbv as 
select * from public.sales 
with no schema binding;

show view sales_vw_lbv;
                            Show View DDL statement
--------------------------------------------------------------------------------
 create view sales_vw_lbv as select * from public.sales with no schema binding;
(1 row)

create view sales_vw as 
select * from sales_vw_lbv;

show view sales_vw;
                                               Show View DDL statement
---------------------------------------------------------------------------------------------------------------------
 SELECT sales_vw_lbv.price, sales_vw_lbv."region" FROM (SELECT sales.price, sales."region" FROM sales) sales_vw_lbv;
(1 row)
```

Perhatikan bahwa tampilan pengikatan terlambat seperti yang ditunjukkan dalam pernyataan DDL untuk tampilan standar ditentukan saat tampilan standar dibuat, dan tidak akan diperbarui dengan perubahan apa pun yang Anda buat pada tampilan pengikatan terlambat sesudahnya.

## Contoh
<a name="r_CREATE_VIEW-examples"></a>

Perintah contoh menggunakan set sampel objek dan data yang disebut * database * TICKIT. Untuk informasi selengkapnya, lihat [ Contoh database](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html).

Perintah berikut membuat tampilan yang disebut * myevent * dari tabel bernama EVENT. 

```
create view myevent as select eventname from event
where eventname = 'LeAnn Rimes';
```

Perintah berikut membuat tampilan yang disebut * myuser * dari tabel yang disebut USERS. 

```
create view myuser as select lastname from users;
```

Perintah berikut membuat atau mengganti tampilan yang disebut * myuser * dari tabel yang disebut USERS. 

```
create or replace view myuser as select lastname from users;
```

Contoh berikut membuat tampilan tanpa pengikatan skema. 

```
create view myevent as select eventname from public.event
with no schema binding;
```