Senin, 11 Desember 2023

Memberikan Level Pengalaman Sales berdasarkan Jumlah Customer pada MySQL

Terdapat banyak sekali insight yang dapat kita lakukan pada MySQL, namun pada kesempatan kali ini saya akan membahas cara memberikan Level Pengalaman Sales berdasarkan Jumlah Customer menggunakan sample database yaitu classicmodels. Berikut langkahnya :

1. Gunakan perintah USE untuk memilih database yang akan digunakan


2. Buat sebuah STORED PROCEDURE berparameter untuk mengecek apakah sales tersebut berpengalaman atau tidak, dilihat dari id sales nya.

3. Lakukan pengujian apakah berhasil.


Dari hasil di atas maka dapat dilihat bahwa jika sales memiliki customer lebih dari 6 maka akan tercetak level Experienced atau berpengalaman sedangkan jika kurang dari 6 maka akan tercetak Newbie yang artinya pemula.







Membuat Trigger pada MySQL

    Dalam menyisipkan sebuah data kita dapat melakukan sebuah fungsi yang secara otomatis terpanggil. Fungsi tersebut bernama TRIGGER. Berikut cara membuat TRIGGER dan Operasi-operasi yang dapat dilakukan pada trigger :

CREATE TRIGGER
Pertama-tama kita membuat tabel terlebih dahulu

Lalu buat triggernya


DROP TRIGGER
Setelah membuat, tentu saja kita dapat menghapusnya kembali. Yaitu dengan cara berikut :


CREATE TRIGGER BEFORE INSERT
Sebelumnya sudah sempat disinggung bahwa sebuah Trigger terpanggil secara otomatis ketika dipicu oleh sebuah kejadian termasuk INSERT. Berikut contohnya :

CREATE TRIGGER AFTER INSERT
Trigger juga dapat dipicu setelah kejadian tertentu. Berikut contohnya :
1. Buat 2 tabel yang akan digunakan pada Trigger

2. Lalu buat triggernya

3. Berikut hasilnya ketika sudah dimasukkan 2 data



CREATE TRIGGER BEFORE UPDATE
Trigger juga dapat dipicu selain dari perintah INSERT tetapi dapat juga dari perintah UPDATE. Berikut contohnya :
1. Buat tabel dan input sejumlah data

2. Membuat triggernya. Yaitu trigger yang menghasilkan pesan error ketika data yang diinput lebih dari 3

3. Berikut hasilnya. Yang mana data tidak bisa diupdate ketika banyak lebih dari 3

CREATE TRIGGER AFTER UPDATE
Selanjutnya adalah after update. Berikut contohnya :
1. Buat 2 tabel baru dan masukkan beberapa data pada 1 tabelnya

2. Membuat trigger agar setelah update mencetak tanggal dilakukan perubahan pada data

3. Melakukan pengujian apakah trigger berhasil dipanggil

CREATE TRIGGER BEFORE DELETE
Sebelum melakukan penghapusan data, kita juga dapat menyisipkan sebuah trigger. Berikut contohnya :
1. Buat 1 tabel baru dan masukkan beberapa data di dalamnya

2. Membuat trigger dimana seorang user yang memiliki hak ases Admin tidak bisa dihapus

3. Mencoba menghapus data.

Dapat dilihat bahwa user yang memiliki useraccess user dapat dihapus sedangkan Admin tidak bisa

CREATE TRIGGER AFTER DELETE
Kita dapat melakukan sesuatu jika kita telah selesai menghapus sebuah data. Berikut contohnya :
1. Buat 2 tabel baru dan masukkan beberapa data pada 1 tabelnya

2. Selanjutnya adalah pembuatan trigger untuk melihat data apa saja yang sudah dihapus

3. Pengujian apakah terigger terpicu ketika data dihapus

CREATE MULTIPLE TRIGGER
Selain membuat trigger untuk dipicu pada kejadian tertentu, trigger juga dapat dipicu oleh trigger lain. Berikut contohnya :
1. Buat 3 tabel baru

2. Masukkan data pada salah satu tabel

3. Membuat Dua trigger. Trigger yang pertama dibuat secara normal, untuk trigger yang kedua diberi tambahan berupa follow. Yang artinya trigger ini terpicu ketika suatu trigger dipicu

4. Tampilan sebelum adanya perubahan data

5. Setelah dilakukannya UPDATE pada salah satu data pada userdata maka di bagian userdata_logs dan userdata_history secara otomatis mencetak id user yang diubah datanya.





SHOW TRIGGER
Setelah membuat banyak sekali Trigger kita dapat melihat daftar trigger apa saja yang telah kita buat dengan perintah SHOW TRIGGERS.



Senin, 13 November 2023

Perintah IF dan CASE pada MySQL

     Pada MySQL kita dapat menyisipkan sebuah perintah kondisi atau percabangan. Untuk memudahkan penggunaannya tentu saja perintah tersebut dibungkus dengan sebuah PROCEDURE. IF dan CASE merupakan perintah yang serupa tapi tidak sama. Mereka memiliki kelebihannya masing-masing dan digunakan sesuai kebutuhan. 


IF

Berikut Penerapan dari perintah IF :


Jika kita membutuhkan lebih dari 1 kondisi maka kita dapat menggunakan perintah IF-ELSE.


Berikut hasilnya ketika dipanggil :




CASE

Berikut penerapan dari CASE :

Hasil dari pemanggilan CASE :

    Dapat dilihat dari gambar-gambar di atas bahwa penulisan syntax MySQL untuk perintah IF dan CASE tidak memiliki perbedaan yang jauh. Namun penggunaannya dapat disesuaikan dengan kebutuhan.






Kamis, 09 November 2023

Perintah Procedure pada MySQL Workbench

 Kita dapat menyimpan sekumpulan perintah dengan sebuah perintah yang bernama PROCEDURE. PROCEDURE memiliki peran yang kurang lebih sama dengan Function(fungsi) dalam pemrogramman. Di dalamnya dapat berupa sekumpulan perintah dan variabel yang disimpan. Cara menggunakan PROCEDURE ini cukup dengan menggunakan perintah CALL untuk memanggilnya. Berikut cara membuat serta operasi-operasi yang dapat dilakukan dengan PROSEDURE :

1. Membuat PROCEDURE


2. Sebuah DELIMITER pada PROCEDURE juga dapat diubah.

3. Di dalam PROCEDURE, kita juga dapat menambahkan sebuah variabel.

4. Dapat juga menggunakan sebuah parameter. Sehingga dapat kita gunakan sesuai dengan kondisi yang kita inginkan

5. Jika kita membuat kesalahan pada pembutan PROCEDURE atau kita ingin mengubahnya maka kita dapat menggunakan perintah Alter pada MySQL Workbench. Dengan klik kanan pada PROCEDURE yang sebelumnya sudah dibuat. Jika sudah pilih Apply

6. Jika kita sudah tidak memerlukan sebuah PROCEDURE lagi maka kita dapat menghapusnya, yaitu dengan perintah DROP.

7. Untuk melihat apakah sebuah PROCEDURE terhapus atau tidak dan melihat semua PROCEDURE yang ada dapat menggunakan SHOW.














Rabu, 08 November 2023

Perintah Join Pada MySQL Workbench

 Dalam sebuah database pasti memiliki sebuah hubungan (foreign key) di antara tabel-tabelnya. Kita dapat menampilkan data yang dibutuhkan dari 2 tabel atau lebih melalui sintaks MySQL dengan printah JOIN. Terdapat 4 perintah JOIN pada MySQL, yaitu sebagai berikut :

1. INNER JOIN. Merupakan irisan dari 2 tabel atau lebih.


2. LEFT JOIN. Yaitu menggabungkan kedua tabel dengan melihat kolom sebelah kiri sebagai basis penampil data. Jika di kolom di sebelah kananya tidak memiliki data maka akan menampilkan NULL.

3. RIGHT JOIN. Kebalikan dari LEFT JOIN. Pada RIGHT JOIN, kolom sebelah kanan merupakan basis penampil datanya.

4. CROSS JOIN. Yaitu penggabungan seluruh baris dan kolom dari semua tabel yang dipilih.




















Rabu, 25 Oktober 2023

Perintah VIEW pada SQL Workbench

MEMBUAT VIEW

Kita dapat menampilkan data tertentu yang sering kita gunakan dengan perintah view. Perintah VIEW ini sama saja seperti membuat tabel baru dengan beberapa data yang kita pilih baik dari 1 tabel ataupun 2 tabel. Berikut Perintah untuk memilih data dari dua tabel yang berbeda :



Berikut untuk membuat VIEW :


Untuk mengubah VIEW maka kita dapat menggunakan perintah CREATE OR UPDATE atau ALTER pada bagian depan syntaxnya. Perlu diperhatikan bahwa VIEW hanya dapat dibuat 1 kali saja, maka jika kalian menjalanan perintah CREATE VIEW untuk kedua kalinya maka akan terjadi error.


Kita juga dapat menggunkaan perintah AS pada VIEW seperti berikut :


Jika sebuah VIEWsudah tidak dierlukan lagi, maka dapat dihapus dengan perintah sebagai berikut :
Tambahkan perintah IF EXIST untuk menghindari error atau VIEW yang diminta tidak ditemukan.

MENGGANTI ISI FIELD YANG ADA DI VIEW

Selanjutnya adalah mengganti isi data dari VIEW. Syntax yang digunakan untuk mengganti isi datanya tidak berbeda dari perintah yang biasanya yaitu menggunakan UPDATE. Akan tetapi untuk mengganti data yang ada di VIEW diperlukan beberapa ketentuan, karena data dari VIEW merupakan data asli dari tabel yang dipilih. jika persyaratan tidak terpenuhi maka akan tampil pesan erorr seperti dibawah.


Untuk dapat mengganti isi data/ field tersebut salah satu persyaratannya adalah mengubah ALGORITHM sebuah view menjadi MERGE, maka akan dapat diubah pada VIEW dan akan berubah juga pada tabel aslinya.




Kita dapat menambahkan data ke dalam VIEW yang nantinya juga akan masuk ke tabel yang dipilih.


Kita juga dapat melakukan hapus data.

Akan tetapi data yang dihapus hanya data yang sebelumnya kita input tadi, untuk data yang lain tidak bisa. Karena di dalam masing-masing tabel terdapat primary key dan foreign key. Dan untuk setiap data yang ada di tabel sudah merupakan foreign key di tabel lain.

VIEW WITH CHECK OPTION

Pertama-tama buat kembali tabel view, dengan perintah CREATE OR REPLACE.


Kemudian kita akan mencoba memasukkan sebuah data


Akan tetapi data tersebut tidak masuk ke dalam VIEW. Seperti yang telah kita jalankan perintah sebelumnya bahwa VIEW yang kita buat menggunakankata kunci WHERE country = 'USA' yang artinya VIEW hanya mengambil data yang isi dari kolom countrynya adalah USA, sedangkan data yang kita masukkan sebelumnya adalah Rajeg. Oleh karena itu datanya tidak tampil. Akan tetapi data yang kita inputkan tadi tetap masuk ke dalam tabel aslinya (Di dalam kasus ini di tabel offices).

Ini merupakan hal serius jika terjadi di lingkup perusahaan. Dimana sebuah user dapat memasukkan data ke bukan data pengguna. Oleh karena itu terdapat perintah WITH CHECK OPTION yang berfungsi untuk memeriksa apakah data yang diinput sesuai dengan VIEW. Contohnya dapat dilihat pada gambar dibawah :