Apakah Paparan di MySQL?
PANDANGAN adalah jadual maya yang tidak menyimpan data mereka sendiri tetapi memaparkan data yang disimpan dalam jadual lain. Dengan kata lain, PANDANGAN tidak lain adalah Pertanyaan SQL. Paparan boleh mengandungi semua atau beberapa baris dari meja. Paparan MySQL dapat menunjukkan data dari satu jadual atau banyak jadual.
Sintaks MySQL Views
Sekarang mari kita lihat sintaks asas yang digunakan untuk membuat paparan di MySQL.
CREATE VIEW `view_name` AS SELECT statement;
DI MANA
- "CREATE VIEW` view_name` " memberitahu pelayan MySQL untuk membuat objek pandangan dalam pangkalan data bernama` view_name`
- "AS SELECT statement" adalah pernyataan SQL yang akan dikemas dalam Paparan MySQL. Ini boleh menjadi pernyataan SELECT dapat berisi data dari satu tabel atau beberapa jadual.
Cara Membuat Paparan di MySQL
Berikut adalah proses langkah demi langkah untuk membuat paparan di MySQL:
Mari buat pandangan pertama kita menggunakan "myflixdb" kita akan membuat paparan ringkas yang menyekat lajur yang dilihat dalam jadual ahli.
Andaikan syarat kebenaran menyatakan bahawa jabatan akaun hanya dapat melihat nombor, nama dan jantina ahli dari jadual ahli. Untuk mencapai ini, anda boleh membuat PANDANGAN -
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Melaksanakan skrip di atas di meja kerja MySQL terhadap myflixdb dan memperluas node pandangan dalam penjelajah pangkalan data memberikan hasil berikut.
Perhatikan objek account_v_members kini dapat dilihat di objek paparan pangkalan data. Mari sekarang jalankan pernyataan SELECT yang memilih semua medan dari paparan seperti yang ditunjukkan dalam contoh paparan buat MySQL di bawah.
SELECT * FROM `accounts_v_members`;
Melaksanakan skrip di atas di MySQL workbench terhadap myflixdb memberi kita hasil berikut yang ditunjukkan di bawah.
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 lajur yang dibenarkan untuk bahagian akaun yang dikembalikan. Maklumat lain yang terdapat di dalam jadual ahli telah disembunyikan.
Sekiranya kita ingin melihat pernyataan SQL yang membentuk pandangan tertentu, kita boleh menggunakan skrip yang ditunjukkan di bawah untuk melakukannya.
TUNJUKKAN BUAT PANDANGAN `account_v_members`;
Melaksanakan skrip di atas memberi anda nama pandangan dan pernyataan PILIH SQL yang digunakan untuk membuat paparan.
Bergabung dan Pandangan di MySQL
Sekarang mari kita lihat contoh yang agak kompleks yang melibatkan beberapa jadual dan menggunakan gabungan.
Kami akan mengemas JOIN yang dibuat yang mendapat maklumat dari tiga (3) jadual iaitu penyewaan ahli, filem dan filem. Berikut adalah skrip yang menolong kita mencapainya.
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`;
Melaksanakan skrip di atas membuat paparan bernama general_v_movie_rentals di myflixdb kami
Sekarang mari pilih semua medan dari jadual bernama general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Melaksanakan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil berikut seperti yang ditunjukkan di bawah.
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 bahawa kami tidak perlu menulis pertanyaan JOIN yang kompleks untuk mendapatkan maklumat mengenai ahli, filem dan perincian sewaan filem. Kami hanya menggunakan pandangan dalam pernyataan SELECT biasa seperti jadual biasa yang lain. Paparan boleh dipanggil dari mana sahaja dalam sistem aplikasi yang berjalan di atas myflixdb.
Menjatuhkan Paparan di MySQL
Perintah DROP dapat digunakan untuk menghapus pandangan dari pangkalan data yang tidak diperlukan lagi. Sintaks asas untuk menjatuhkan pandangan adalah seperti berikut.
DROP VIEW ` general_v_movie_rentals `;
Mengapa menggunakan pandangan?
Anda mungkin ingin menggunakan pandangan terutamanya kerana mengikuti 3 sebab
- Pada akhirnya, anda akan menggunakan pengetahuan SQL anda, untuk membuat aplikasi, yang akan menggunakan pangkalan data untuk keperluan data. Sebaiknya gunakan PANDANGAN struktur jadual asal dalam aplikasi anda dan bukannya menggunakan jadual itu sendiri. Ini memastikan bahawa semasa anda memfaktorkan semula DB anda, kod warisan anda akan melihat skema orignal melalui paparan tanpa melanggar aplikasi.
- PANDANGAN meningkatkan kebolehgunaan semula. Anda tidak perlu membuat pertanyaan kompleks yang melibatkan penyertaan berulang kali. Semua kerumitan diubah menjadi satu baris permintaan PANDANGAN penggunaan. Kod padat seperti itu akan lebih mudah disatukan dalam aplikasi anda. Ini akan menghilangkan kemungkinan kesalahan ketik dan kod anda akan lebih mudah dibaca.
- PANDANGAN membantu dalam keselamatan data. Anda boleh menggunakan paparan untuk menunjukkan hanya maklumat yang dibenarkan kepada pengguna dan menyembunyikan data sensitif seperti nombor kad kredit.
Ringkasan
- Paparan adalah jadual maya; mereka tidak mengandungi data yang dikembalikan. Data disimpan dalam jadual yang dirujuk dalam pernyataan SELECT.
- Pandangan meningkatkan keselamatan pangkalan data dengan hanya menunjukkan data yang ditujukan kepada pengguna yang diberi kuasa. Mereka menyembunyikan data sensitif.
- Pandangan menjadikan kehidupan menjadi mudah kerana anda tidak perlu menulis pertanyaan yang kompleks berulang kali.
- Anda boleh menggunakan INSERT, UPDATE dan DELETE pada PANDANGAN. Operasi-operasi ini akan mengubah jadual asas PANDANGAN. Satu-satunya pertimbangan adalah bahawa PANDANGAN harus mengandungi semua lajur BUKAN NULL dari jadual yang dirujuknya. Sebaiknya, anda tidak boleh menggunakan PANDANGAN untuk mengemas kini.