Pengantar Tampilan SQL Database MySQL/MariADB

Pengantar Tampilan SQL Database MySQL/MariADB

Tampilan basis data tidak lain adalah tabel virtual, yang tidak berisi data itu sendiri, tetapi referensi data yang terkandung dalam tabel lain. Tampilan pada dasarnya adalah hasil dari kueri tersimpan yang dapat bervariasi pada kompleksitas dan dapat digunakan, misalnya, untuk menyembunyikan data dari pengguna, memungkinkan akses hanya pada kolom tabel yang dipilih, atau hanya untuk memberikan sudut pandang yang berbeda pada data yang ada. Dalam tutorial ini kita akan melihat cara membuat, memperbarui, mengubah, dan memberikan tampilan pada database mysql, mariadb.

Dalam tutorial ini Anda akan belajar:

  • Apa itu pandangan
  • Cara membuat tampilan
  • Cara memperbarui tampilan
  • Cara Mengubah Tampilan
  • Cara menjatuhkan tampilan


Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem OS-independen
Perangkat lunak Database mysql/mariadb yang sedang berjalan
Lainnya Knwoledge Dasar Mysql/Mariadb dan Konsep Database Relasional
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Membuat Database Tes

Demi tutorial ini, kami akan membuat database tes yang disebut "Film". Ini akan berisi dua tabel: Yang pertama akan menyimpan data tentang sutradara, yang kedua akan berisi informasi tentang judul dan akan ditautkan ke yang pertama melalui a kunci asing. Untuk membuat database kami, kami dapat mengeluarkan perintah berikut dari shell mysql/mariadb:



Mariadb [(tidak ada)]> Buat film basis data; Mariadb [(tidak ada)]> Gunakan film; Database mengubah mariadb [film]> buat sutradara tabel ( -> id smallint unsign not null auto_increment, -> first_name varchar (20) not null, -> last_name varchar (20) bukan nol, -> tanggal lahir bukan nol, -> primer Kunci (id) ->); 
Menyalin

Langkah selanjutnya adalah memasukkan beberapa entri ke dalam tabel:

Mariadb [film]> masukkan ke dalam sutradara (first_name, last_name, kelahiran) nilai-> ('stanley', 'Kubrik', '1928-07-26'),-> ('Jeffrey', 'Adams', '1966- 06-27 '),-> (' Alfred ',' Hitchcock ',' 1899-08-13 ');
Menyalin

Kami sekarang dapat membuat tabel "judul" dan memasukkan beberapa entri ke dalamnya:

Mariadb [film]> buat judul tabel ( -> id smallint tidak ditandatangani bukan null auto_increment, -> name varchar (30) not null, -> genre varchar (30) not null, -> rilis_date Date not null, -> director_id smallint unsigned Bukan null, -> kunci utama (id), -> Kunci asing (direktur_id) Direktur Referensi (ID) ->); Mariadb [film]> masukkan ke dalam judul (nama, genre, rilis_date, director_id) nilai -> ('2001: a space odyssey', 'fiksi ilmiah', '1968-04-02', 1), -> ('the Force Awakens ',' Fantasy ',' 2015-12-14 ', 2),-> (' psyco ',' horor ',' 1960-06-16 ', 3); 
Menyalin

Sekarang kami memiliki beberapa tabel untuk dikerjakan, kami dapat membuat a melihat.

Membuat tampilan

Tampilan hanyalah tabel virtual yang memungkinkan kami mendapatkan "prospektif" alternatif pada data yang terkandung dalam tabel nyata. Kami dapat dengan mudah membuat tampilan dengan memilih kolom yang ingin kami sertakan di dalamnya dari tabel yang ada. Katakan misalnya kami menginginkan kami melihat Untuk memasukkan kolom "Nama" dan "Genre" dari tabel "Judul" yang kami buat di database pengujian kami. Inilah cara kami membuatnya:

Mariadb [film]> buat contoh tampilan sebagai pilih nama, genre dari judul;
Menyalin

Dengan perintah Buat tampilan, kami membuat a melihat dan menyebutnya "contoh". Tampilan dibuat dengan menggunakan pernyataan AS diikuti oleh kueri yang diperlukan untuk mendapatkan data yang ingin kami sertakan. Isi tampilan akan menjadi hasil dari kueri:

Mariadb [film]> pilih * dari contoh; +-----------------------+-----------------+| Nama | Genre | +-----------------------+-----------------+| 2001: A Space Odyssey | fiksi ilmiah | | The Force Awakens | Fantasi | | Psyco | Horor | +-----------------------+-----------------+
Menyalin

Kami dapat membatasi data yang diambil pada tampilan seperti yang akan kami lakukan di tabel standar, misalnya:

Mariadb [film]> pilih * dari contoh di mana genre = "fiksi ilmiah"; +-----------------------+-----------------+| Nama | Genre | +-----------------------+-----------------+| 2001: A Space Odyssey | fiksi ilmiah | +-----------------------+-----------------+ 
Menyalin

Memberikan nama spesifik untuk kolom tampilan

Secara default, nama kolom yang dibuat melihat akan sesuai dengan nama kolom yang termasuk dalam PILIH pernyataan digunakan untuk membuatnya. Jika kami ingin menentukan nama alternatif, kami harus menyediakannya dalam tanda kurung. Jumlah nama harus sesuai dengan jumlah kolom yang dipilih. Inilah contohnya:

Mariadb [film]> buat contoh tampilan (film_name, film_genre) sebagai nama terpilih, genre dari judul; Mariadb [film]> pilih * dari contoh; +-----------------------+-----------------+| film_name | film_genre | +-----------------------+-----------------+| 2001: A Space Odyssey | fiksi ilmiah | | The Force Awakens | Fantasi | | Psyco | Horor | +-----------------------+-----------------+ 
Menyalin

Tampilan dapat dibuat menggunakan kueri yang kompleks, dan dapat mencakup nilai yang dihasilkan dari fungsi. Berikut adalah contoh tampilan yang dibuat dengan bergabung dengan tabel "judul" dan "sutradara" dan dengan menggunakan Concat fungsi:

Mariadb [film]> buat contoh tampilan (film_name, film_genre, film_director) as -> select -> judul.Nama ->, judul.Genre ->, concat (sutradara.first_name, "", sutradara.last_name) -> from -> title -> bergabung dengan sutradara di judul.Director_id = Direktur.pengenal; 
Menyalin

Berikut adalah konten lengkap dari tampilan yang dihasilkan:

Mariadb [film]> pilih * dari contoh; +-----------------------+-----------------+------- -----------+ | film_name | film_genre | film_director | +-----------------------+-----------------+------- -----------+ | 2001: A Space Odyssey | fiksi ilmiah | Stanley Kubrik | | The Force Awakens | Fantasi | Jeffrey Adams | | Psyco | Horor | Alfred Hitchcock | +-----------------------+-----------------+------------------+
Menyalin

Memperbarui tampilan

Jika beberapa kondisi spesifik dipenuhi, dimungkinkan untuk memperbarui tampilan: perubahan akan tercermin dalam tabel yang mendasarinya. Untuk dapat memperbarui tampilan:



  • Tampilan harus dibuat dengan menanyakan satu tabel dan harus memetakan langsung ke sana;
  • Tampilan tidak dapat berisi nilai agregat yang dihasilkan dari fungsi seperti SUM ();
  • Operasi pada tampilan harus sesuai dengan operasi pada satu baris tabel asli;

Mari kita lihat contohnya. Misalkan kami sedang mengerjakan tampilan yang kami buat sebelumnya:

+-----------------------+-----------------+ | film_name | film_genre | +-----------------------+-----------------+| 2001: A Space Odyssey | fiksi ilmiah | | The Force Awakens | Fantasi | | Psyco | Horor | +-----------------------+-----------------+
Menyalin

Karena pandangan menghormati persyaratan yang kami sebutkan di atas, jika kami sekarang memperbarui genre film "psyco", mengubahnya dari "horor" menjadi "thriller", perubahan akan tercermin dalam tabel "judul". Mari kita verifikasi:

Mariadb [film]> perbarui contoh set film_genre = "thriller" di mana film_name = "psyco";
Menyalin

Jika kita sekarang menanyakan tabel "judul" yang mendasarinya, kita dapat memverifikasi bahwa perubahan telah diterapkan:

Mariadb [film]> pilih * dari judul where name = "psyco"; +----+-------+----------+--------------+---------- ---+ | ID | Nama | Genre | rilis_date | direktur_id | +----+-------+----------+--------------+---------- ---+ | 3 | Psyco | Thriller | 1960-06-16 | 3 | +----+-------+----------+--------------+-------------+
Menyalin

Mengubah tampilan

Untuk mengubah definisi tampilan, kami menggunakan Ubah tampilan memerintah. Setiap kali kita ingin mengubah struktur tampilan, kita harus menulis ulang PILIH pernyataan digunakan untuk membuatnya. Sama seperti sebuah contoh, misalkan kita ingin menambahkan kolom "rilis_date" dari tabel "judul" ke tampilan kita: kita tidak dapat menggunakan perintah seperti Tambahkan kolom, Kami harus memberikan kueri baru yang memahami kolom yang ingin kami tambahkan:

Mariadb [film]> ubah contoh view (film_name, film_genre, film_release_date) sebagai nama pilih, genre, rilis_date dari judul; Pilih * dari contoh; +-----------------------+-----------------+------- -------------+ | film_name | film_genre | film_release_date | +-----------------------+-----------------+------- -------------+ | 2001: A Space Odyssey | fiksi ilmiah | 1968-04-02 | | The Force Awakens | Fantasi | 2015-12-14 | | Psyco | Thriller | 1960-06-16 | +-----------------------+-----------------+--------------------+ 
Menyalin

Menjatuhkan tampilan

Menjatuhkan tampilan adalah operasi yang sangat mudah. Perintah yang digunakan untuk menyelesaikan tugasnya Jatuhkan tampilan. Dalam hal ini, untuk menghapus tampilan "contoh" kami yang akan kami jalankan:

Contoh Tampilan Jatuhkan;
Menyalin

Menutup pikiran

Dalam artikel ini kita melihat bagaimana kita dapat menggunakan tampilan MySQL/MariaDB untuk mengumpulkan sudut pandang yang berbeda pada data yang terkandung dalam tabel database. Kami melihat cara membuat tampilan, cara mengubah strukturnya, bagaimana kami dapat memperbaruinya jika beberapa persyaratan dipenuhi, dan cara menjatuhkannya. Jika Anda tertarik dengan topik MySQL/MariaDB lainnya, Anda dapat melihat artikel kami tentang masalah ini, misalnya, tentang pernyataan Union atau bergabung.

Tutorial Linux Terkait:

  • Pengantar Mesin Penyimpanan MySQL
  • Cara mengubah kata sandi pengguna mariadb
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Instal MySQL di Ubuntu 20.04 LTS Linux
  • Cara menginstal mysql di almalinux
  • Cara membuat tumpukan lampu berbasis Docker menggunakan Docker di…
  • Ubuntu 20.04 WordPress dengan Instalasi Apache
  • Cara dengan benar GREP untuk teks dalam skrip bash
  • Instalasi ampache raspberry pi
  • Ubuntu 20.04: WordPress dengan instalasi nginx