DDL (Data Definition Language) merupakan kumpulan perintah SQL, atau biasa disebut query, yang digunakan untuk membuat, mengubah, dan menghapus struktur database. Intinya, DDL digunakan untuk mengatur bentuk atau struktur dari database.
2. Macam-Macam Query DDL
a. CREATE: Untuk membuat database atau tabel.
b. ALTER: Untuk mengubah struktur tabel.
c. DROP: Untuk menghapus database/tabel.
d. TRUNCATE: Menghapus seluruh data yang ada di dalam tabel tanpa menghapusstruktur nya.
3. Apa perbedaan antara trigger before dan trigger after
4. Apa yang harus di perhatikan dalam menulis trigger
JAWABAN
1. Trigger adalah sebuah perintah khusus dalam database yang akan dijalankan secara otomatis ketika terjadi suatu kejadian (event) tertentu pada tabel.
2. Trigger akan berjalan secara otomatis ketika terjadi operasi tertentu pada tabel, seperti INSERT (menambah data), UPDATE (mengubah data), atau DELETE (menghapus data).
3. BEFORE berarti trigger dijalankan sebelum operasi dilakukan.
Biasanya BEFORE digunakan untuk:
melakukan validasi,
memeriksa data,
mengubah nilai sebelum disimpan.
--AFTER berarti trigger dijalankan setelah operasi berhasil dilakukan.
Biasanya AFTER digunakan untuk:
mencatat aktivitas,
memperbarui tabel lain,
melakukan proses setelah data berhasil disimpan.
4. Dalam menulis trigger, perlu memperhatikan event yang digunakan (INSERT, UPDATE, atau DELETE), waktu eksekusi (BEFORE atau AFTER), tabel yang digunakan, serta perintah yang akan dijalankan secara otomatis.
Pengertian Trigger
Trigger adalah fitur pada database yang berfungsi untuk menjalankan perintah SQL secara otomatis ketika terjadi suatu kejadian pada tabel, seperti data ditambahkan, diubah, atau dihapus.
Artinya, kita tidak perlu menjalankan perintah tersebut secara manual karena database akan mengeksekusinya sendiri.
Cara kerja Trigger
Trigger bekerja berdasarkan tiga jenis kejadian utama:
INSERT → saat data baru ditambahkan.
UPDATE → saat data diubah.
DELETE → saat data dihapus.
Selain itu, trigger dapat dijalankan:
BEFORE → sebelum kejadian terjadi.
AFTER → setelah kejadian terjadi.
Ilustrasi
Misalnya ada tabel barang dan log_barang.
Ketika barang baru ditambahkan ke tabel barang, trigger otomatis mencatat aktivitas tersebut ke tabel log_barang.
Alurnya:
Tambah data ke barang → Trigger aktif → Data aktivitas masuk ke log_barang.
Jenis-jenis Trigger
Jenis
Fungsi
BEFORE INSERT
Berjalan sebelum data ditambahkan.
AFTER INSERT
Berjalan setelah data ditambahkan.
BEFORE UPDATE
Berjalan sebelum data diubah.
AFTER UPDATE
Berjalan setelah data diubah.
BEFORE DELETE
Berjalan sebelum data dihapus.
AFTER DELETE
Berjalan setelah data dihapus.
Contoh Trigger
Tabel barang
id_barang
nama_barang
stok
1
Buku
20
Tabel log_barang
id_log
aktivitas
Trigger AFTER INSERT
CREATETRIGGER tambah_log
AFTERINSERTON barang
FOREACHROWINSERTINTO log_barang(aktivitas)
VALUES ('Barang baru ditambahkan');
Hasil
Jika menjalankan:
INSERTINTO barang (nama_barang, stok)
VALUES ('Pensil', 50);
Maka secara otomatis tabel log_barang akan berisi:
id_log
aktivitas
1
Barang baru ditambahkan
Kegunaan Trigger
Mencatat riwayat aktivitas (log).
Memperbarui stok secara otomatis.
Memvalidasi data sebelum disimpan.
Menjaga konsistensi data antar tabel.
Mengurangi pekerjaan yang harus dilakukan secara manual.
Kelebihan dan Kekurangan
Kelebihan
Kekurangan
Berjalan otomatis.
Sulit dilacak jika trigger terlalu banyak.
Mengurangi pekerjaan manual.
Bisa memperlambat proses jika logikanya rumit.
Menjaga konsistensi data.
Perlu pengelolaan yang baik agar tidak membingungkan.
Stored Procedure SQL (Tabel paket) - Catatan Blogger Dark Mode
Pengertian
Stored Procedure (prosedur tersimpan) adalah sekumpulan perintah SQL yang dibungkus menjadi satu kesatuan, diberi nama, dan disimpan langsung di dalam server database. Stored Procedure sangat penting karena kita cukup menulis logika query satu kali saja (mirip seperti fungsi pada bahasa pemrograman), lalu memanggil namanya kapan saja dibutuhkan menggunakan perintah CALL tanpa harus menulis ulang seluruh query dari awal.
Kapan Stored Procedure digunakan? Prosedur digunakan saat aplikasi sering menjalankan query yang berulang (repetitive), menyimpan logika bisnis di dalam database, meningkatkan keamanan (user hanya diberi akses menjalankan prosedur tanpa akses langsung ke tabel), serta menghemat beban jaringan.
b. Prosedur Menambah Jumlah Pengguna (tambah_pengguna_paket)
Prosedur ini digunakan untuk memperbarui (UPDATE) kolom banyak_pengguna dengan menambahkan jumlah pengguna baru berdasarkan id_paket yang dipilih.
Query:
DELIMITER $$
CREATE PROCEDURE tambah_pengguna_paket (
IN p_id_paket VARCHAR(50),
IN p_jumlah_baru INT(11)
)
BEGIN
UPDATE paket
SET banyak_pengguna = banyak_pengguna + p_jumlah_baru
WHERE id_paket = p_id_paket;
END $$
DELIMITER ;
CALL tambah_pengguna_paket('PKT-001', 5);
Hasil:
id_paket
nama_paket
harga_paket
banyak_pengguna
PKT-001
Paket Hemat 50 Mbps
250000
15
PKT-002
Paket Keluarga 100 Mbps
375000
6
PKT-003
Paket Gamer 150 Mbps
499000
0
banyak_pengguna pada PKT-001 bertambah dari 10 menjadi 15
c. Cara Membaca Query Stored Procedure
Berikut adalah cara membaca setiap baris perintah pada pembuatan dan pemanggilan Stored Procedure di atas:
- DELIMITER $$ : Mengubah tanda akhir perintah SQL sementara dari titik koma (;) menjadi $$ agar titik koma di dalam BEGIN...END tidak menghentikan pembuatan prosedur.
- CREATE PROCEDURE nama_prosedur (...) : Perintah untuk membuat prosedur baru beserta daftar parameter di dalam tanda kurung.
- IN p_id_paket VARCHAR(50) : Kata kunci IN berarti parameter masukan (input). p_id_paket adalah nama variabel penampung nilai yang dikirim saat prosedur dipanggil.
- BEGIN ... END $$ : Pembuka dan penutup isi prosedur tempat kita menuliskan perintah INSERT, UPDATE, DELETE, atau SELECT.
- DELIMITER ; : Mengembalikan tanda akhir perintah SQL kembali menjadi titik koma (;).
- CALL tambah_paket_baru(...) : Perintah untuk memanggil/menjalankan prosedur beserta nilai datanya.
3. Tempat Praktek SQL (Ubah & Jalankan Query):
Silakan ubah kode SQL di bawah ini (bisa membuat prosedur baru, mengubah nilai parameter pada CALL, atau menjalankan query biasa) lalu klik tombol Jalankan Query untuk melihat perubahannya pada bagian Hasil:
Query:
Siap dijalankan. Silakan edit kode SQL di atas lalu klik "Jalankan Query".
Fungsi agregat (aggregate function) adalah fungsi pada database/SQL yang digunakan untuk mengolah sekumpulan atau banyak baris data sekaligus dan menghasilkan satu nilai hasil perhitungan.
Fungsi ini sangat berguna ketika kita ingin mengetahui informasi seperti:
Berapa jumlah data?
Berapa total harga?
Berapa harga rata-rata?
Berapa harga paling tinggi?
Berapa harga paling rendah?
Fungsi agregat yang paling umum digunakan dalam SQL adalah:
COUNT() Menghitung jumlah data/baris
SUM() Menjumlahkan Nilai
AVG() Menghitung nilai rata-rata
MAX() Mencari nilai terbesar
MIN() Mencari nilai terkecil
Sebagai contoh disini saya mempunyai tabel barang dengan isi data seperti di bawah ini: