Apa itu Views di MySQL?
VIEWS adalah tabel virtual yang tidak menyimpan datanya sendiri tetapi menampilkan data yang disimpan di tabel lain. Dengan kata lain, VIEWS tidak lain adalah SQL Queries. Tampilan dapat berisi semua atau beberapa baris dari tabel. Tampilan MySQL dapat menampilkan data dari satu tabel atau banyak tabel.
Sintaks Tampilan MySQL
Sekarang mari kita lihat sintaks dasar yang digunakan untuk membuat tampilan di MySQL.
CREATE VIEW `view_name` AS SELECT statement;
DIMANA
- "CREATE VIEW` view_name` " memberi tahu server MySQL untuk membuat objek tampilan dalam database bernama` view_name`
- "Pernyataan AS SELECT" adalah pernyataan SQL yang akan dikemas dalam Tampilan MySQL. Ini bisa menjadi pernyataan SELECT dapat berisi data dari satu tabel atau beberapa tabel.
Cara Membuat Tampilan di MySQL
Berikut adalah proses langkah demi langkah untuk membuat tampilan di MySQL:
Sekarang mari kita buat tampilan pertama kita menggunakan "myflixdb", kita akan membuat tampilan sederhana yang membatasi kolom yang terlihat di tabel anggota.
Misalkan persyaratan otorisasi menyatakan bahwa departemen akun hanya dapat melihat nomor anggota, nama dan jenis kelamin dari tabel anggota. Untuk mencapai ini, Anda dapat membuat VIEW -
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb dan memperluas node tampilan di penjelajah database memberi kita hasil sebagai berikut.
Perhatikan bahwa objek accounts_v_members sekarang terlihat di objek tampilan database. Sekarang mari kita jalankan pernyataan SELECT yang memilih semua bidang dari tampilan seperti yang ditunjukkan pada contoh tampilan MySQL di bawah ini.
SELECT * FROM `accounts_v_members`;
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil berikut yang ditunjukkan di bawah ini.
membership_number | full_names | gender |
---|---|---|
1 | Janet Jones | Female |
2 | Janet Smith Jones | Female |
3 | Robert Phil | Male |
4 | Gloria Williams | Female |
5 | Leonard Hofstadter | Male |
6 | Sheldon Cooper | Male |
7 | Rajesh Koothrappali | Male |
8 | Leslie Winkle | Male |
9 | Howard Wolowitz | Male |
Hanya kolom resmi untuk departemen akun yang dikembalikan. Detail lain yang ditemukan di tabel anggota telah disembunyikan.
Jika kita ingin melihat pernyataan SQL yang membentuk tampilan tertentu, kita dapat menggunakan skrip yang ditunjukkan di bawah ini untuk melakukannya.
TAMPILKAN TAMPILAN `accounts_v_members`;
Menjalankan skrip di atas memberi Anda nama tampilan dan pernyataan SQL SELECT yang digunakan untuk membuat tampilan.
Bergabung dan Dilihat di MySQL
Sekarang mari kita lihat contoh yang cukup kompleks yang melibatkan banyak tabel dan menggunakan gabungan.
Kami akan mengemas JOIN yang dibuat yang mendapat informasi dari tiga (3) tabel yaitu anggota, film, dan rental film. Di bawah ini adalah skrip yang membantu kami mencapai itu.
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
Menjalankan skrip di atas membuat tampilan bernama general_v_movie_rentals di myflixdb kami
Sekarang mari kita pilih semua bidang dari tabel bernama general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil berikut yang ditunjukkan di bawah ini.
membership_number | full_names | title | transaction_date | return_date |
---|---|---|---|---|
1 | Janet Jones | Pirates of the Caribean 4 | 20-06-2012 | 28-06-2012 |
1 | Janet Jones | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
3 | Robert Phil | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
2 | Janet Smith Jones | Forgetting Sarah Marshal | 21-06-2012 | 24-06-2012 |
3 | Robert Phil | X-Men | 23-06-2012 | 28-06-2012 |
Perhatikan bahwa kami tidak perlu menulis kueri GABUNG yang rumit untuk mendapatkan informasi tentang anggota, film, dan detail persewaan film. Kami hanya menggunakan tampilan dalam pernyataan SELECT biasa seperti tabel biasa lainnya. Tampilan dapat dipanggil dari mana saja di sistem aplikasi yang berjalan di atas myflixdb.
Menghapus Tampilan di MySQL
Perintah DROP dapat digunakan untuk menghapus tampilan dari database yang tidak lagi diperlukan. Sintaks dasar untuk melepaskan tampilan adalah sebagai berikut.
DROP VIEW ` general_v_movie_rentals `;
Mengapa menggunakan views?
Anda mungkin ingin menggunakan tampilan terutama karena 3 alasan berikut
- Pada akhirnya, Anda akan menggunakan pengetahuan SQL Anda, untuk membuat aplikasi, yang akan menggunakan database untuk kebutuhan data. Direkomendasikan agar Anda menggunakan VIEWS dari struktur tabel asli dalam aplikasi Anda daripada menggunakan tabel itu sendiri. Hal ini memastikan bahwa saat Anda memfaktor ulang DB, kode lama Anda akan melihat skema orignal melalui tampilan tanpa merusak aplikasi.
- VIEWS meningkatkan kegunaan kembali. Anda tidak perlu membuat kueri kompleks yang melibatkan penggabungan berulang kali. Semua kompleksitas diubah menjadi satu baris query menggunakan VIEWS. Kode kental seperti itu akan lebih mudah diintegrasikan dalam aplikasi Anda. Ini akan menghilangkan kemungkinan salah ketik dan kode Anda akan lebih mudah dibaca.
- VIEWS membantu dalam keamanan data. Anda dapat menggunakan tampilan untuk hanya menampilkan informasi resmi kepada pengguna dan menyembunyikan data sensitif seperti nomor kartu kredit.
Ringkasan
- Tampilan adalah tabel virtual; mereka tidak berisi data yang dikembalikan. Data disimpan dalam tabel yang direferensikan dalam pernyataan SELECT.
- Tampilan meningkatkan keamanan database dengan hanya menampilkan data yang dimaksudkan kepada pengguna yang berwenang. Mereka menyembunyikan data sensitif.
- Tampilan membuat hidup menjadi mudah karena Anda tidak perlu menulis kueri yang rumit berkali-kali.
- Dimungkinkan untuk menggunakan SISIPKAN, PERBARUI, dan HAPUS pada TAMPILAN. Operasi ini akan mengubah tabel yang mendasari VIEW. Satu-satunya pertimbangan adalah bahwa VIEW harus berisi semua kolom NOT NULL dari tabel yang direferensikannya. Idealnya, Anda tidak boleh menggunakan VIEWS untuk memperbarui.