Skip to content

Memahami Operasi DDL dan DML

Updated: at 00.12

Dalam dunia database, ada dua jenis operasi utama yang sering digunakan: Data Definition Language (DDL) dan Data Manipulation Language (DML).

Data Definition Language (DDL)

DDL adalah kumpulan perintah SQL yang digunakan untuk mendefinisikan, memodifikasi, atau menghapus struktur objek database seperti tabel, indeks, atau constraint. Operasi DDL berkaitan dengan skema database dan tidak secara langsung memanipulasi data di dalamnya.

Beberapa perintah DDL yang umum digunakan antara lain:

  1. CREATE: Digunakan untuk membuat objek database baru, seperti tabel, indeks, atau view. Contoh:

    CREATE TABLE employees (
        id INTEGER PRIMARY KEY,
        name VARCHAR(100),
        salary DECIMAL(10,2)
    );
    
  2. ALTER: Digunakan untuk memodifikasi struktur objek database yang sudah ada, seperti menambah kolom baru pada tabel atau mengubah tipe data kolom. Contoh:

    ALTER TABLE employees ADD COLUMN email VARCHAR(100);
    
  3. DROP: Digunakan untuk menghapus objek database, seperti tabel, indeks, atau view. Contoh:

    DROP TABLE employees;
    

Use case operasi DDL meliputi:

Data Manipulation Language (DML)

DML adalah kumpulan perintah SQL yang digunakan untuk memanipulasi data dalam database. Operasi DML berkaitan dengan menambah, mengubah, atau menghapus baris data dalam tabel.

Beberapa perintah DML yang umum digunakan antara lain:

  1. INSERT: Digunakan untuk menyisipkan baris baru ke dalam tabel. Contoh:

    INSERT INTO employees (name, salary) VALUES ('John Doe', 5000);
    
  2. UPDATE: Digunakan untuk mengubah nilai kolom pada baris yang sudah ada dalam tabel. Contoh:

    UPDATE employees SET salary = 6000 WHERE id = 1;
    
  3. DELETE: Digunakan untuk menghapus baris dari tabel. Contoh:

    DELETE FROM employees WHERE id = 1;
    

Use case operasi DML meliputi:

Kombinasi DDL dan DML dengan Event Trigger

Dengan event trigger di PostgreSQL, Kita dapat mengotomatisasi tindakan berdasarkan operasi DDL atau DML. Misalnya, Kita dapat membuat event trigger yang mencatat setiap kali tabel baru dibuat (operasi DDL) atau setiap kali baris baru disisipkan ke dalam tabel tertentu (operasi DML).

Contoh event trigger untuk mencatat operasi DDL:

CREATE OR REPLACE FUNCTION log_ddl() RETURNS EVENT_TRIGGER AS $$
BEGIN
    RAISE NOTICE 'DDL operation: % on %', tg_tag, tg_table_name;
END;
$$ LANGUAGE plpgsql;

CREATE EVENT TRIGGER log_ddl_events ON ddl_command_end
EXECUTE FUNCTION log_ddl();

Contoh event trigger untuk mencatat operasi DML (INSERT):

CREATE OR REPLACE FUNCTION log_insert() RETURNS TRIGGER AS $$
BEGIN
    RAISE NOTICE 'New row inserted into %: %', TG_TABLE_NAME, NEW;
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER log_insert_trigger
AFTER INSERT ON employees
FOR EACH ROW EXECUTE FUNCTION log_insert();

Dengan memahami perbedaan antara operasi DDL dan DML, serta bagaimana event trigger dapat digunakan untuk mengotomatisasi tindakan berdasarkan operasi tersebut, Kita dapat merancang solusi database yang lebih efisien dan dapat dipelihara.