Pengenalan kepada Paparan SQL Pangkalan Data MySQL/MariaDB

Pengenalan kepada Paparan SQL Pangkalan Data MySQL/MariaDB

Pandangan pangkalan data hanyalah jadual maya, yang tidak mengandungi data itu sendiri, tetapi data rujukan yang terkandung dalam jadual lain. Pandangan pada dasarnya adalah hasil pertanyaan yang disimpan yang boleh berbeza -beza pada kerumitan dan boleh digunakan, sebagai contoh, untuk menyembunyikan data dari pengguna, yang membolehkan akses hanya pada lajur terpilih jadual, atau hanya untuk memberikan pandangan yang berbeza pada data yang ada. Dalam tutorial ini, kita akan melihat cara membuat, mengemas kini, mengubah dan menjatuhkan pandangan pada pangkalan data MySQL, MariaDB.

Dalam tutorial ini anda akan belajar:

  • Apa itu Pandangan
  • Cara membuat pandangan
  • Cara mengemas kini paparan
  • Cara mengubah pandangan
  • Cara menjatuhkan pemandangan


Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem OS-bebas
Perisian Pangkalan Data MySQL/MariaDB
Yang lain Asas Knwoledge Mysql/MariaDB dan Konsep Pangkalan Data Relasi
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Membuat pangkalan data ujian

Demi tutorial ini, kami akan membuat pangkalan data ujian yang disebut "Filem". Ia akan mengandungi dua jadual: yang pertama akan memegang data mengenai pengarah, yang kedua akan mengandungi maklumat mengenai tajuk dan akan dikaitkan dengan yang pertama melalui a kunci asing. Untuk membuat pangkalan data kami, kami boleh mengeluarkan arahan berikut dari shell MySQL/MariaDB:



MariaDB [(Tiada)]> Buat Filem Pangkalan Data; MariaDB [(Tiada)]> Gunakan Filem; Pangkalan data berubah MariaDB [Filem]> Buat Pengarah Jadual ( -> ID Smallint Unsigned Not Null Auto_increment, -> First_name Varchar (20) Tidak Null, -> Last_name Varchar (20) Kunci (id) ->); 
Salinan

Langkah seterusnya ialah memasukkan beberapa entri dalam jadual:

MariaDB [Filem]> Masukkan ke Pengarah (First_Name, Last_name, Kelahiran) Nilai-> ('Stanley', 'Kubrik', '1928-07-26'),-> ('Jeffrey', 'Adams', '1966- 06-27 '),-> (' Alfred ',' Hitchcock ',' 1899-08-13 ');
Salinan

Kita kini boleh membuat jadual "tajuk" dan memasukkan beberapa penyertaan ke dalamnya:

MariaDB [Filem]> Buat Judul Jadual ( -> ID Smallint Unsigned Tidak Null Auto_Increment, -> Nama Varchar (30) Tidak Null, -> Genre Varchar (30) Tidak Null, -> Tarikh Release_Date Tidak Null, -> Director_ID Smallint Bukan NULL, -> Kunci Utama (ID), -> Kunci Asing (Pengarah_ID) Pengarah Rujukan (ID) ->); MariaDB [Filem]> Masukkan ke dalam Tajuk (Nama, Genre, Release_Date, Director_ID) Nilai -> ('2001: A Space Odyssey', 'Fiction Science', '1968-04-02', 1), -> (' Force Awakens ',' Fantasy ',' 2015-12-14 ', 2),-> (' Psyco ',' Horror ',' 1960-06-16 ', 3); 
Salinan

Sekarang kita mempunyai beberapa jadual untuk diusahakan, kita boleh membuat a Lihat.

Mewujudkan pandangan

Pandangan hanyalah jadual maya yang membolehkan kita mendapatkan alternatif "prospektif" pada data yang terkandung dalam jadual sebenar. Kita boleh membuat pandangan dengan mudah dengan memilih lajur yang ingin kita sertakan di dalamnya dari jadual yang ada. Katakan contohnya kita mahukan kita Lihat Untuk memasukkan lajur "nama" dan "genre" dari jadual "tajuk" yang kami buat dalam pangkalan data ujian kami. Inilah cara kita menciptanya:

MariaDB [Filem]> Buat Contoh Lihat sebagai Nama Pilih, Genre dari Tajuk;
Salinan

Dengan arahan Buat pandangan, Kami mencipta a Lihat dan panggilnya "Contoh". Pandangan dibuat dengan menggunakan pernyataan AS yang diikuti oleh pertanyaan yang diperlukan untuk mendapatkan data yang ingin kami sertakan. Kandungan paparan akan menjadi hasil pertanyaan:

MariaDB [Filem]> Pilih * dari Contoh; +-----------------------+-----------------+| Nama | Genre | +-----------------------+-----------------+| 2001: A Space Odyssey | Fiksyen Sains | | The Force Awakens | Fantasy | | Psyco | Seram | +-----------------------+-----------------+
Salinan

Kita boleh menyekat data yang diambil pada pandangan seperti yang akan kita lakukan pada jadual standard, sebagai contoh:

MariaDB [Filem]> Pilih * dari Contoh di mana Genre = "Fiksyen Sains"; +-----------------------+-----------------+| Nama | Genre | +-----------------------+-----------------+| 2001: A Space Odyssey | Fiksyen Sains | +-----------------------+-----------------+ 
Salinan

Menyediakan nama khusus untuk lajur pandangan

Secara lalai, nama lajur yang dibuat Lihat akan sesuai dengan nama lajur yang termasuk dalam Pilih pernyataan yang digunakan untuk menciptanya. Sekiranya kita mahu menentukan nama alternatif, kita mesti memberikannya dalam kurungan. Bilangan nama mesti sepadan dengan bilangan lajur yang dipilih. Berikut adalah contoh:

MariaDB [Filem]> Buat Contoh Lihat (Movie_Name, Movie_Genre) sebagai Nama Pilih, Genre dari Tajuk; MariaDB [Filem]> Pilih * dari Contoh; +-----------------------+-----------------+| Movie_name | Movie_genre | +-----------------------+-----------------+| 2001: A Space Odyssey | Fiksyen Sains | | The Force Awakens | Fantasy | | Psyco | Seram | +-----------------------+-----------------+ 
Salinan

Pandangan boleh dibuat menggunakan pertanyaan kompleks, dan boleh memasukkan nilai yang terhasil daripada fungsi. Berikut adalah contoh pandangan yang dibuat dengan menyertai jadual "Tajuk" dan "Pengarah" dan dengan menggunakan Concat fungsi:

Mariadb [Filem]> Buat Contoh Lihat (Movie_Name, Movie_Genre, Movie_Director) sebagai -> pilih -> Tajuk.Nama ->, tajuk.genre ->, concat (pengarah.first_name, "", pengarah.last_name) -> dari -> Tajuk -> Sertai Pengarah Tajuk.pengarah_id = pengarah.ID; 
Salinan

Berikut adalah kandungan penuh pandangan yang dihasilkan:

MariaDB [Filem]> Pilih * dari Contoh; +-----------------------+-----------------+------- -----------+ | Movie_name | Movie_genre | Movie_Director | +-----------------------+-----------------+------- -----------+ | 2001: A Space Odyssey | Fiksyen Sains | Stanley Kubrik | | The Force Awakens | Fantasy | Jeffrey Adams | | Psyco | Seram | Alfred Hitchcock | +-----------------------+-----------------+------------------+
Salinan

Mengemas kini paparan

Sekiranya beberapa syarat spesifik dipenuhi, ada kemungkinan untuk mengemas kini pandangan: Perubahan akan ditunjukkan dalam jadual yang mendasari. Untuk dapat mengemas kini pandangan:



  • Pandangan mesti dibuat dengan menanyakan jadual tunggal dan mesti memetakan terus kepadanya;
  • Pandangan tidak boleh mengandungi nilai agregat yang terhasil daripada fungsi seperti jumlah ();
  • Operasi pada paparan mesti sesuai dengan operasi pada satu baris jadual asal;

Mari lihat contoh. Katakan kita sedang berusaha pada pandangan yang kita buat sebelum ini:

+-----------------------+-----------------+ | Movie_name | Movie_genre | +-----------------------+-----------------+| 2001: A Space Odyssey | Fiksyen Sains | | The Force Awakens | Fantasy | | Psyco | Seram | +-----------------------+-----------------+
Salinan

Oleh kerana pandangan menghormati keperluan yang kita nyatakan di atas, jika kita kini mengemas kini genre filem "Psyco", mengubahnya dari "seram" ke "thriller", perubahan itu akan ditunjukkan dalam jadual "tajuk". Mari sahkan:

Mariadb [Filem]> Kemas kini Contoh Set Movie_Genre = "Thriller" di mana Movie_Name = "Psyco";
Salinan

Jika kita kini menanyakan jadual "tajuk" yang mendasari, kita boleh mengesahkan bahawa perubahan telah digunakan:

MariaDB [Filem]> Pilih * dari tajuk di mana nama = "psyco"; +----+-------+----------+--------------+---------- ---+ | id | Nama | Genre | Release_date | Pengarah_id | +----+-------+----------+--------------+---------- ---+ | 3 | Psyco | Thriller | 1960-06-16 | 3 | +----+-------+----------+--------------+-------------+
Salinan

Mengubah pandangan

Untuk mengubah definisi pandangan, kami menggunakan Mengubah pandangan perintah. Setiap kali kita mahu mengubah struktur pandangan, kita perlu menulis semula Pilih pernyataan yang digunakan untuk menciptanya. Sama seperti contoh, katakan kami ingin menambah lajur "Release_date" dari jadual "Tajuk" kepada pandangan kami: Kami tidak boleh menggunakan arahan seperti Tambah lajur, Kami mesti memberikan pertanyaan baru yang memahami lajur yang ingin kami tambahkan:

Mariadb [Filem]> Alter View Contoh (Movie_Name, Movie_Genre, Movie_Release_date) sebagai Nama Pilih, Genre, Release_date dari Tajuk; Pilih * dari contoh; +-----------------------+-----------------+------- -------------+ | Movie_name | Movie_genre | Movie_release_date | +-----------------------+-----------------+------- -------------+ | 2001: A Space Odyssey | Fiksyen Sains | 1968-04-02 | | The Force Awakens | Fantasy | 2015-12-14 | | Psyco | Thriller | 1960-06-16 | +-----------------------+-----------------+--------------------+ 
Salinan

Menjatuhkan pemandangan

Menjatuhkan pemandangan adalah operasi yang sangat mudah. Perintah yang digunakan untuk menyelesaikan tugas itu Drop View. Dalam kes ini, untuk menghapuskan pandangan "contoh" kami, kami akan berjalan:

Contoh pandangan drop;
Salinan

Pemikiran penutupan

Dalam artikel ini kita melihat bagaimana kita boleh menggunakan pandangan MySQL/MariaDB untuk mengumpulkan pandangan yang berbeza pada data yang terkandung dalam jadual pangkalan data. Kami melihat bagaimana untuk membuat pandangan, bagaimana mengubah strukturnya, bagaimana kami dapat mengemas kini jika beberapa keperluan dipenuhi, dan bagaimana untuk menggugurkannya. Sekiranya anda berminat dengan topik MySQL/MariaDB yang lain, anda boleh melihat artikel kami mengenai subjek, sebagai contoh, mereka mengenai kesatuan atau penyataan menyertai.

Tutorial Linux Berkaitan:

  • Pengenalan kepada enjin penyimpanan MySQL
  • Cara menukar kata laluan pengguna Mariadb
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pasang mysql di Ubuntu 20.04 LTS Linux
  • Cara Memasang MySQL di Almalinux
  • Cara membuat timbunan lampu berasaskan Docker menggunakan Docker pada ..
  • Ubuntu 20.04 WordPress dengan pemasangan Apache
  • Cara betul -betul mengasyikkan teks dalam skrip bash
  • Pemasangan ampache raspberry pi
  • Ubuntu 20.04: WordPress dengan pemasangan nginx