Bagaimana Cara Membuat, Mengubah, Dan Menghapus View Di MySQL

Apa Itu View?

VIEW adalah tabel virtual (virtual table) hasil dari sebuah statement Select Query. Mengapa View disebut virtual tabel? Jawabannya karena View mirip sebuah tabel yaitu berisi kolom atau field dan record tetapi view bersifat read only yaitu Anda tidak bisa melakukan proses insert data ke view. Disamping itu, kita juga bisa melakukan query dengan menggunakan View.



Catatan:

Data yang ada di View akan selalu up to date seiring dengan data yang ada di tabel.

Membuat View

Untuk membuat sebuah view di MySQL, Anda dapat menggunakan perintah CREATE VIEW. Di bawah ini adalah sintak dasar untuk membuat view di MySQL:

CREATE VIEW nama_view AS
SELECT kolom_1, kolom_2, kolom_n
FROM nama_table
WHERE kondisi;

Di bawah ini adalah langkah-langkah dalam membuat view sebagai bahan latihan.
  1. Buatlah sebuah table KARYAWAN dan isi datanya seperti berikut ini.

    Tabel KARYAWAN

    NIK Nama Kode_Department Gender Gaji_Pokok Tunjangan
    0001 Nursalim IT L 3000000 250000
    0002 Naura Krasiva Elsalna ACCOUNTING P 1750000 100000
    0003 Nani Indriyani IT P 2750000 200000
    0004 Ahmad Fathoni HRD L 1000000 100000
    0005 Bayu Dirgantara IT L 3000000 250000

    Script Buat Table

    mysql> CREATE TABLE karyawan (
        -> nik VARCHAR(5) NOT NULL PRIMARY KEY,
        -> nama VARCHAR(50) NOT NULL,
        -> gender CHAR(1) NOT NULL,
        -> department VARCHAR(30) NOT NULL,
        -> gaji_pokok BIGINT(10) NOT NULL,
        -> tunjangan BIGINT(10) NOT NULL
        -> );
    Query OK, 0 rows affected (0.15 sec)
    
    
    Script Insert Data

    mysql> INSERT INTO karyawan VALUES('0001','Nursalim','L','IT',3000000,250000);
    Query OK, 1 row affected (0.11 sec)
    
    mysql> INSERT INTO karyawan VALUES('0002','Naura Krasiva Elsalna','P','ACCOUNTING',1750000,100000);
    Query OK, 1 row affected (0.13 sec)
    
    mysql> INSERT INTO karyawan VALUES('0003','Nani Indriyani','P','IT',2750000,200000);
    Query OK, 1 row affected (0.06 sec)
    
    mysql> INSERT INTO karyawan VALUES('0004','Ahmad Fathoni','L','HRD',1000000,100000);
    Query OK, 1 row affected (0.06 sec)
    
    mysql> INSERT INTO karyawan VALUES('0005','Bayu Dirgantara','L','IT',3000000,250000);
    Query OK, 1 row affected (0.11 sec)
    
    
  2. Tampilkan data dari tabel KARYAWAN

    mysql> SELECT * FROM karyawan;
    +------+-----------------------+--------+------------+------------+-----------+
    | nik  | nama                  | gender | department | gaji_pokok | tunjangan |
    +------+-----------------------+--------+------------+------------+-----------+
    | 0001 | Nursalim              | L      | IT         |    3000000 |    250000 |
    | 0002 | Naura Krasiva Elsalna | P      | ACCOUNTING |    1750000 |    100000 |
    | 0003 | Nani Indriyani        | P      | IT         |    2750000 |    200000 |
    | 0004 | Ahmad Fathoni         | L      | HRD        |    1000000 |    100000 |
    | 0005 | Bayu Dirgantara       | L      | IT         |    3000000 |    250000 |
    +------+-----------------------+--------+------------+------------+-----------+
    5 rows in set (0.00 sec)
    
    
  3. Buatlah sebuah view dengan nama V_KARYAWAN_IT yang mempunyai kolom NIK, Nama, Jenis Kelamin, Gaji Bersih dimana Gaji Bersih adalah Gaji Pokok + Tunjangan dari departement IT.

    mysql> CREATE VIEW V_KARYAWAN_IT AS
        -> SELECT nik, nama, gender "Jenis Kelamin", gaji_pokok+tunjangan "Gaji Bersih"
        -> FROM karyawan
        -> WHERE department = 'IT';
    Query OK, 0 rows affected (0.04 sec)
    
    
  4. Tampilkan data dari view V_KARYAWAN_IT dengan menggunakan MySQL command line

    mysql> SELECT * FROM V_KARYAWAN_IT;
    +------+-----------------+---------------+-------------+
    | nik  | nama            | Jenis Kelamin | Gaji Bersih |
    +------+-----------------+---------------+-------------+
    | 0001 | Nursalim        | L             |     3250000 |
    | 0003 | Nani Indriyani  | P             |     2950000 |
    | 0005 | Bayu Dirgantara | L             |     3250000 |
    +------+-----------------+---------------+-------------+
    3 rows in set (0.00 sec)
    
    

Menampilkan Daftar View

Anda dapat menampilkan daftar atau list view yang ada di database MySQL dengan menggunakan perintah di bawah ini:

mysql> SHOW FULL TABLES IN hr WHERE TABLE_TYPE LIKE 'VIEW';
+---------------+------------+
| Tables_in_hr  | Table_type |
+---------------+------------+
| v_karyawan_it | VIEW       |
+---------------+------------+
1 row in set (0.00 sec)

Meng-Update View

Anda dapat meng-update view sesuai dengan kebutuhan Anda seperti menambahkan kolom pada view ataupun menambahkan filter pada Where Clause di view tersebut. Untuk mengupdate view, Anda bisa menggunakan perintah CREATE OR REPLACE VIEW.

Di bawah ini adalah sintak dasar untuk mengupdate view yang sudah ada di MySQL:

CREATE OR REPLACE VIEW nama_view AS
SELECT kolom_1, kolom_2, kolom_n
FROM nama_tabel
WHERE kondisi;

Sebagai Latihan, coba Anda modifikasi view V_KARYAWAN_IT diatas dengan menambahkan filter HANYA karyawan yang berjenis kelamin laki-laki saja.

mysql> CREATE OR REPLACE VIEW V_KARYAWAN_IT AS
    -> SELECT nik, nama, gender "Jenis Kelamin", gaji_pokok+tunjangan "Gaji Bersih"
    -> FROM karyawan
    -> WHERE department = 'IT'
    -> AND gender = 'L';
Query OK, 0 rows affected (0.04 sec)


Menghapus View (Drop View)

Di bawah ini adalah sintak dasar untuk menghapus view di MySQL

DROP VIEW nama_view;

Contoh:

DROP VIEW V_KARYAWAN_IT;


Sekian tutorial singkat Bagaimana Cara Membuat, Mengubah, Dan Menghapus View Di MySQL. Semoga bermanfaat & Selamat Belajar MySQL.


Jika Anda menyukai tutorial ini, silahkan Anda share dan Anda bagikan dengan teman-teman Anda, dan jika Anda ingin berdiskusi tentang judul tutorial diatas, atau pun mau bertanya tentang tutorial ini silahkan Anda untuk menggunakan fasilitas komentar untuk berdiskusi dan bertanya di blog ini.

Salam,


~Nursalim~
Naura-Lab.blogspot.com

Jika Anda rasa artikel ini bermanfaat, saya sangat berterima kasih bila Anda mau membagikannya ke teman. Jangan lupa dapatkan update artikel terbaru dari Naura-Lab melalui email:

Post a Comment