Sabtu, 16 Januari 2016

Query : Query View (copas http://naura-lab.blogspot.co.id/2015/01/membuat-view-mysql.html)

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:

1CREATE VIEW nama_view AS
2SELECT kolom_1, kolom_2, kolom_n
3FROM nama_table
4WHERE 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

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

    01mysql> INSERT INTO karyawan VALUES('0001','Nursalim','L','IT',3000000,250000);
    02Query OK, 1 row affected (0.11 sec)
    03 
    04mysql> INSERT INTO karyawan VALUES('0002','Naura Krasiva Elsalna','P','ACCOUNTING',1750000,100000);
    05Query OK, 1 row affected (0.13 sec)
    06 
    07mysql> INSERT INTO karyawan VALUES('0003','Nani Indriyani','P','IT',2750000,200000);
    08Query OK, 1 row affected (0.06 sec)
    09 
    10mysql> INSERT INTO karyawan VALUES('0004','Ahmad Fathoni','L','HRD',1000000,100000);
    11Query OK, 1 row affected (0.06 sec)
    12 
    13mysql> INSERT INTO karyawan VALUES('0005','Bayu Dirgantara','L','IT',3000000,250000);
    14Query OK, 1 row affected (0.11 sec)
  2. Tampilkan data dari tabel KARYAWAN

    01mysql> SELECT * FROM karyawan;
    02+------+-----------------------+--------+------------+------------+-----------+
    03| nik  | nama                  | gender | department | gaji_pokok | tunjangan |
    04+------+-----------------------+--------+------------+------------+-----------+
    05| 0001 | Nursalim              | L      | IT         |    3000000 |    250000 |
    06| 0002 | Naura Krasiva Elsalna | P      | ACCOUNTING |    1750000 |    100000 |
    07| 0003 | Nani Indriyani        | P      | IT         |    2750000 |    200000 |
    08| 0004 | Ahmad Fathoni         | L      | HRD        |    1000000 |    100000 |
    09| 0005 | Bayu Dirgantara       | L      | IT         |    3000000 |    250000 |
    10+------+-----------------------+--------+------------+------------+-----------+
    115 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.

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

    1mysql> SELECT * FROM V_KARYAWAN_IT;
    2+------+-----------------+---------------+-------------+
    3| nik  | nama            | Jenis Kelamin | Gaji Bersih |
    4+------+-----------------+---------------+-------------+
    5| 0001 | Nursalim        | L             |     3250000 |
    6| 0003 | Nani Indriyani  | P             |     2950000 |
    7| 0005 | Bayu Dirgantara | L             |     3250000 |
    8+------+-----------------+---------------+-------------+
    93 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:

1mysql> SHOW FULL TABLES IN hr WHERE TABLE_TYPE LIKE 'VIEW';
2+---------------+------------+
3| Tables_in_hr  | Table_type |
4+---------------+------------+
5| v_karyawan_it | VIEW       |
6+---------------+------------+
71 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:

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

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

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

Menghapus View (Drop View)

Di bawah ini adalah sintak dasar untuk menghapus view di MySQL

1DROP VIEW nama_view;

Contoh:

1DROP VIEW V_KARYAWAN_IT;

Tidak ada komentar:

Posting Komentar