This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Thursday, 14 December 2023

Backup Database: Untuk melakukan backup database, Anda perlu menggunakan perintah BACKUP DATABASE diikuti dengan nama database yang ingin di-backup dan path file backup yang diinginkan
BACKUP DATABASE NamaDatabase TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL16.SQLEXPRESS\MSSQL\Backup';



Restore Database: Untuk melakukan restore database, Anda perlu menggunakan perintah RESTORE DATABASE diikuti dengan nama database yang ingin di-restore dan path file backup yang akan digunakan.
RESTORE DATABASE NamaDatabase FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL16.SQLEXPRESS\MSSQL\Backup';




Membuat Tabel employees_audit: Pertama, kita perlu membuat tabel employees_audit yang akan digunakan untuk menyimpan log perubahan pada tabel employees.
Membuat Trigger: Selanjutnya, kita akan membuat trigger employees_audit_trigger yang akan diaktifkan setelah terjadi pembaruan pada tabel employees. Trigger ini akan memasukkan entri log perubahan ke dalam tabel employees_audit.
Mengeksekusi Trigger: Setelah trigger employees_audit_trigger dibuat, kita dapat mengeksekusinya dengan melakukan pembaruan pada tabel employees. Misalnya, kita akan mengubah lastName untuk employeeNumber 1056 menjadi 'Phan'.
Menampilkan Log Perubahan: Setelah pembaruan dilakukan, kita dapat menampilkan log perubahan yang disimpan dalam tabel employees_audit.
 


Membuat Tabel billings: Pertama, kita perlu membuat tabel billings dengan menggunakan sintaksis berikut:
Membuat Trigger: Selanjutnya, kita akan membuat trigger before_billing_update yang akan diaktifkan sebelum terjadi pembaruan pada tabel billings. Trigger ini akan memeriksa apakah nilai amount yang baru tidak lebih dari 10 kali lipat dari nilai amount yang saat ini.

Membuat Tabel WorkCenters dan WorkCenterStats: Pertama, kita perlu membuat tabel WorkCenters dan WorkCenterStats. Tabel WorkCenters akan digunakan untuk menyimpan data work center, sedangkan tabel WorkCenterStats akan digunakan untuk menyimpan statistik kapasitas total work center.
Membuat Trigger before_workcenters_insert: Selanjutnya, kita akan membuat trigger before_workcenters_insert yang akan diaktifkan sebelum terjadi penambahan data pada tabel WorkCenters. Trigger ini akan memperbarui atau memasukkan data ke dalam tabel WorkCenterStats berdasarkan data yang dimasukkan ke dalam tabel WorkCenters.

Menambahkan Data ke Tabel WorkCenters dan Melihat Data di Tabel WorkCenterStats: Setelah trigger before_workcenters_insert dibuat, kita dapat menambahkan data ke dalam tabel WorkCenters dan melihat data yang masuk ke dalam tabel WorkCenterStats.

Membuat Tabel PriceLogs: Pertama, kita perlu membuat tabel PriceLogs yang akan digunakan untuk menyimpan log perubahan harga produk.
Membuat Trigger before_products_update: Selanjutnya, kita akan membuat trigger before_products_update yang akan diaktifkan sebelum terjadi pembaruan pada tabel products. Trigger ini akan memasukkan log perubahan harga ke dalam tabel PriceLogs jika nilai msrp pada baris yang sedang diperbarui berbeda dengan nilai sebelumnya.

Menambahkan Data ke Tabel products, PriceLogs, dan Melihat Data: Setelah trigger before_products_update dibuat, kita dapat menambahkan data ke dalam tabel products dan melihat data yang masuk ke dalam tabel PriceLogs.
Membuat Tabel UserChangeLogs: Selanjutnya, kita akan membuat tabel UserChangeLogs yang akan digunakan untuk menyimpan log perubahan yang dilakukan oleh pengguna pada produk.

Membuat Trigger before_products_update_log_user: Selanjutnya, kita akan membuat trigger before_products_update_log_user yang akan diaktifkan sebelum terjadi pembaruan pada tabel products. Trigger ini akan memasukkan log perubahan yang dilakukan oleh pengguna ke dalam tabel UserChangeLogs jika nilai msrp pada baris yang sedang diperbarui berbeda dengan nilai sebelumnya.


Menambahkan Data ke Tabel products, UserChangeLogs, dan Melihat Data: Setelah trigger before_products_update_log_user dibuat, kita dapat menambahkan data ke dalam tabel products, melakukan pembaruan, dan melihat data yang masuk ke dalam tabel UserChangeLogs.
Melihat Informasi Trigger yang Ada: Untuk melihat informasi tentang trigger yang telah dibuat, kita dapat menggunakan perintah SHOW TRIGGERS dan SELECT pada tabel information_schema.triggers












Friday, 1 December 2023



 Dalam contoh di atas, kita menggabungkan tabel pelanggan (customers), pesanan (orders), dan detail pesanan (orderdetails) menggunakan operasi JOIN. Kemudian, kita menghitung total pembelian setiap pelanggan dengan mengalikan jumlah pesanan (quantityOrdered) dengan harga satuan (priceEach) dari setiap item pesanan, dan menjumlahkannya menggunakan fungsi agregat SUM(). Hasilnya diurutkan secara menurun berdasarkan total pembelian dan dibatasi hanya menampilkan 5 pelanggan teratas.

Selain menggunakan pendekatan standar SELECT, insight ini juga dapat diimplementasikan menggunakan stored procedure atau view. Berikut adalah contoh implementasi menggunakan stored procedure, Setelah stored procedure TopCustomers() dibuat, kita dapat memanggilnya dengan perintah CALL


Setelah stored procedure TopCustomers() dibuat, kita dapat memanggilnya dengan perintah CALLSelain itu, kita juga bisa menggunakan view untuk mencapai hasil yang. Setelah view top_customers dibuat, kita dapat mengambil data dari view tersebut dengan perintah SELECT


Friday, 17 November 2023

Membuat tabel customers dan Mengisi tabel customers dengan data dummy


Membuat prosedur "GetCustomerLevel": Kode CREATE PROCEDURE GetCustomerLevel digunakan untuk membuat prosedur stored procedure dengan nama "GetCustomerLevel". Prosedur ini memiliki dua parameter, yaitu "pCustomerNumber" sebagai input dengan tipe data INT dan "pCustomerLevel" sebagai output dengan tipe data VARCHAR(20). Prosedur ini digunakan untuk mengambil nilai "creditLimit" dari tabel "customers" berdasarkan "customerNumber" yang diberikan. Kemudian, prosedur ini menetapkan nilai "pCustomerLevel" berdasarkan nilai "creditLimit" dengan menggunakan pernyataan IF-ELSEIF-ELSE.

Setelah itu, dilakukan query untuk menampilkan data pelanggan dengan batasan kredit di atas 50000. Kemudian, prosedur "GetCustomerLevel" dijalankan dengan input customerNumber 141 dan menampilkan pCustomerLevel. Selanjutnya, dilakukan query untuk menampilkan data pelanggan dengan batasan kredit di bawah atau sama dengan 50000. Kemudian, prosedur "GetCustomerLevel" dijalankan dengan input customerNumber 447 dan menampilkan pCustomerLevel. Terakhir, dilakukan query untuk menampilkan data pelanggan dengan batasan kredit di bawah atau sama dengan 50000. Kemudian, prosedur "GetCustomerLevel" dijalankan dengan input customerNumber 789 dan menampilkan pCustomerLevel.





 

Monday, 6 November 2023

membuat stored procedure untuk menyisipkan data, dan membuat stored procedure untuk mengambil data mahasiswa dari tabel "Mahasiswa".

Langkah 1: Membuat tabel "Mahasiswa"

Langkah 2: Membuat stored procedure "InsertMahasiswa" untuk menyisipkan data ke dalam tabel "Mahasiswa"

Langkah 3: Membuat stored procedure "GetMahasiswa" untuk mengambil data mahasiswa berdasarkan ID

Langkah 4: Memasukkan beberapa baris data awal ke dalam tabel "Mahasiswa" menggunakan stored procedure "InsertMahasiswa"

Setelah menjalankan langkah-langkah di atas, tabel "Mahasiswa" akan dibuat, stored procedure "InsertMahasiswa" akan tersedia untuk menyisipkan data, stored procedure "GetMahasiswa" akan tersedia untuk mengambil data, dan beberapa baris data awal akan dimasukkan ke dalam tabel menggunakan stored procedure "InsertMahasiswa".

Kita dapat memanggil stored procedure "GetMahasiswa" untuk mengambil data mahasiswa berdasarkan ID yang diinginkan.


Lalu kita akan coba hapus dan memastikan bahwa stored procedure sudah terhapus




Friday, 3 November 2023

 contoh bagaimana kita apat memastikan bahwa nilai committee_id yang kita masukkan ke dalam tabel members sudah ada di tabel committees: 
Membuat tabel dan values nya









Contoh di atas menunjukkan bahwa tabel committees memiliki tiga baris data dengan committee_id 1, 2, dan 3. Kemudian, saat kita memasukkan data ke dalam tabel members, pastikan bahwa nilai committee_id yang digunakan sudah ada di tabel committees. Ini memahami penggunaan kunci asing dalam hubungan antara tabel members dan committees.



INNER JOIN
Query di atas akan mengambil member_id, company_name dari tabel members dan committee_name dari tabel committees yang memiliki nilai committee_id yang sama di kedua tabel tersebut. Dengan menggunakan INNER JOIN, hanya baris yang memiliki nilai committee_id yang cocok di kedua tabel yang akan ditampilkan. Query ini akan menghasilkan tiga baris yang menunjukkan member_id, company_name dari tabel members dan committee_name dari tabel committees yang sesuai dengan nilai committee_id yang ada di kedua tabel.

LEFT JOIN
Query di atas akan mengambil member_id, company_name dari tabel members dan committee_name dari tabel committees berdasarkan nilai committee_id yang cocok di kedua tabel. Dengan menggunakan LEFT JOIN, semua baris yang ada di tabel members akan ditampilkan, termasuk jika tidak ada nilai yang cocok di tabel committees.Query ini akan menghasilkan tiga baris yang menunjukkan member_id, company_name dari tabel members, dan committee_name dari tabel committees. Jika ada nilai committee_id di tabel members yang tidak memiliki nilai yang cocok di tabel committees, maka kolom committee_name akan berisi NULL.

RIGHT JOIN
Query di atas akan mengambil member_id, company_name dari tabel members dan committee_name dari tabel committees berdasarkan nilai committee_id yang cocok di kedua tabel. Dengan menggunakan RIGHT JOIN, semua baris yang ada di tabel committees akan ditampilkan, termasuk jika tidak ada nilai yang cocok di tabel members.Query ini akan menghasilkan tiga baris yang menunjukkan member_id, company_name dari tabel members, dan committee_name dari tabel committees. Jika ada nilai committee_id di tabel committees yang tidak memiliki nilai yang cocok di tabel members, maka kolom member_id dan company_name akan berisi NULL

CROSS JOIN
Query di atas akan menghasilkan semua kombinasi antara setiap baris di tabel members dengan setiap baris di tabel committees. Tidak ada kolom yang digunakan sebagai kriteria untuk melakukan pencocokan antara kedua tabel.Pada contoh di atas, terdapat 6 baris yang menunjukkan semua kombinasi antara setiap baris di tabel members dengan setiap baris di tabel committees.

Friday, 20 October 2023

Oke, sekarang kita masuk ke pembahasan tentang "view" dalam MySQL. Dalam konteks SQL, "view" adalah objek database yang memberikan tampilan virtual dari satu atau lebih tabel dalam database. Jadi, view ini hasil dari query SQL yang disimpan sebagai objek database dan biasanya digunakan untuk menyederhanakan akses dan manipulasi data dalam database.

Contohnya, jika kamu ingin melihat data order dan melihat jumlah order, kamu bisa menggunakan SQL code seperti ini:
 SELECT ordernumber, productname, quantityOrdered, priceEach FROM orderdetails NATURE JOIN products; 

Dalam contoh ini, kita membuat view dengan nama "vOrderProduct" yang berisi data order dengan tambahan kolom subtotal yang dihitung dari perkalian harga per produk. Jika kamu ingin mengganti nama view, kamu bisa menggunakan SQL code seperti ini:
CREATE OR REPLACE VIEW vOrderProduct AS SELECT orderNumber, productName, quantityOrdered, priceEach * priceEach AS subtotal FROM orderdetails NATURAL JOIN products;

Dalam contoh ini, kita mengganti nama view menjadi "vOrderProduct" dan mengubah nama kolom "priceEach" menjadi "subtotal". Untuk menghapus view, kamu bisa menggunakan SQL code seperti ini: DROP VIEW vOrderProduct;




Selanjutnya, kita bisa melakukan pembaruan data dalam view. Misalnya, jika kamu ingin mengubah data pada view "v_office1" pada kolom "city", kamu bisa menggunakan SQL code seperti ini:
UPDATE v_office1 SET city='Jakarta' WHERE officeCode ='2'; 




Dalam contoh ini, kita mengubah data pada view "v_office1" dengan mengganti kota pada baris dengan officeCode 2 menjadi "Jakarta". Selain itu, kamu juga bisa menambahkan data pada view. Misalnya, jika kamu ingin menambahkan data pada view "v_office1" dengan officeCode 8 dan city "Wonogiri", kamu bisa menggunakan SQL code seperti ini: INSERT INTO v_office1 VALUES(8, 'jepang', '+62 838 1698 1234'); Namun, perlu diingat bahwa jika ada kolom dengan tipe data NOT_NULL yang tidak diisi, kamu akan mendapatkan warning.





Selanjutnya, jika kamu ingin melakukan pembaruan pada view yang memiliki klausa WITH CHECK OPTION, ini mengacu pada penggunaan pembatasan tambahan saat melakukan pembaruan pada view tersebut. Dengan menggunakan WITH CHECK OPTION, kamu bisa memastikan bahwa data yang dimasukkan atau diperbarui melalui view memenuhi kondisi yang telah ditentukan dalam view tersebut.

Misalnya, jika kamu membuat view "v_employee1" yang hanya menampilkan data dengan officeCode 1, kamu bisa menggunakan SQL code seperti ini: 
CREATE OR REPLACE VIEW v_employee1 AS SELECT * FROM employees WHERE officeCode=1 WITH CHECK OPTION; 
Dalam contoh ini, view "v_employee1" hanya menampilkan data karyawan dengan officeCode 1. 



Jika kamu mencoba untuk menambahkan data pada view "v_employee1" yang tidak memenuhi kondisi officeCode 1, 
misalnya dengan menggunakan SQL code seperti ini:
 INSERT INTO v_employee1 VALUES(62015, 'wahid', 'Fatoni', 'x2303', 'Agswf@gmail.com', 2, 1111, 'Kartap'); 
Akses tersebut akan ditolak karena data yang ingin dimasukkan tidak memenuhi kondisi yang telah ditentukan. Namun, jika kamu mencoba untuk menambahkan data yang memenuhi kondisi, 
misalnya dengan menggunakan SQL code seperti ini:
 INSERT INTO v_employee1 VALUES(1011, 'Wahid', 'Fatoni', 'x803', 'Agswf@gmail.com', 1, 1002, 'President'); 



Operasi tersebut akan berhasil karena data yang ingin dimasukkan memenuhi kondisi yang telah ditentukan dalam view.