Apa itu SQL, DDL, DML, DCL, dan TCL

SQL (Structured Query Language)

SQL adalah bahasa standar yang digunakan untuk mengelola data dalam Sistem Manajemen Basis Data Relasional (Relational Database Management System - RDBMS).

Secara harfiah, SQL memungkinkan Anda untuk membuat, mengakses, memanipulasi, dan mengontrol data dalam basis data, seperti:

  • Mengambil data (kueri).
  • Memasukkan, memperbarui, atau menghapus catatan data.
  • Membuat atau mengubah struktur skema basis data (tabel, view, indeks, dll.).
  • Menetapkan izin akses pengguna.

Perintah-perintah SQL dikelompokkan menjadi beberapa sub-bahasa utama, yaitu DDL, DML, DCL, dan TCL.


1. DDL (Data Definition Language)

DDL digunakan untuk mendefinisikan dan mengelola struktur (skema) objek basis data. Perintah DDL bersifat auto-commit, yang berarti perubahan langsung disimpan secara permanen dan tidak dapat di-rollback.

  • CREATE: Digunakan untuk membuat objek baru di basis data, seperti tabel, view, indeks, atau skema. (Contoh: CREATE TABLE Pegawai (ID INT, Nama VARCHAR(100));)
  • ALTER: Digunakan untuk memodifikasi struktur objek yang sudah ada. Misalnya, menambah kolom, mengubah tipe data kolom, atau menghapus kolom. (Contoh: ALTER TABLE Pegawai ADD COLUMN Gaji DECIMAL;)
  • DROP: Menghapus seluruh objek dari basis data secara permanen, termasuk struktur, data, dan indeks terkait. (Contoh: DROP TABLE Pegawai;)
  • TRUNCATE: Menghapus semua record (data) dari sebuah tabel, tetapi mempertahankan struktur tabel. Operasinya cepat dan tidak dapat di-rollback. (Contoh: TRUNCATE TABLE Pegawai;)
  • RENAME: Digunakan untuk mengganti nama objek basis data, seperti tabel atau kolom. (Contoh: RENAME TABLE Pegawai TO Karyawan;)

2. DML (Data Manipulation Language)

DML digunakan untuk memanipulasi data (isi) di dalam objek skema. Perintah DML berada dalam konteks transaksi dan dapat di-rollback (dibatalkan) menggunakan perintah TCL.

  • INSERT: Menyisipkan satu atau lebih record (baris) baru ke dalam tabel. (Contoh: INSERT INTO Pegawai (ID, Nama) VALUES (1, 'Budi');)
  • UPDATE: Memodifikasi (mengubah) nilai data pada record yang sudah ada di dalam tabel berdasarkan kondisi tertentu. (Contoh: UPDATE Pegawai SET Gaji = 6000000 WHERE Nama = 'Budi';)
  • DELETE: Menghapus satu atau lebih record dari tabel. Jika tidak ada kondisi WHERE, semua record akan terhapus, tetapi strukturnya tetap ada. (Contoh: DELETE FROM Pegawai WHERE ID = 1;)
  • MERGE: (Kurang umum) Melakukan operasi INSERT atau UPDATE secara kondisional.

3. DCL (Data Control Language)

DCL digunakan untuk mengontrol hak akses (privileges) pengguna terhadap objek basis data. Ini sangat penting untuk keamanan data. Perintah DCL bersifat auto-commit.

  • GRANT: Memberikan izin atau hak istimewa kepada pengguna atau role untuk mengakses atau memanipulasi objek tertentu. (Contoh: GRANT SELECT ON Pegawai TO 'user_hrd';)
  • REVOKE: Mencabut atau menghapus izin yang sebelumnya telah diberikan kepada pengguna atau role. (Contoh: REVOKE DELETE ON Pegawai FROM 'user_hrd';)

4. TCL (Transaction Control Language)

TCL digunakan untuk mengelola transaksi DML dalam basis data untuk menjaga integritas dan konsistensi data (prinsip ACID: Atomicity, Consistency, Isolation, Durability).

  • COMMIT: Mengakhiri transaksi saat ini dengan menyimpan secara permanen semua perubahan yang telah dilakukan oleh perintah DML. (Contoh: COMMIT;)
  • ROLLBACK: Mengakhiri transaksi saat ini dengan membatalkan semua perubahan DML yang belum di-commit, mengembalikan basis data ke kondisi COMMIT terakhir. (Contoh: ROLLBACK;)
  • SAVEPOINT: Membuat titik simpan (marka) di dalam transaksi. Ini memungkinkan Anda untuk membatalkan perubahan (melakukan ROLLBACK) hanya ke titik simpan tersebut. (Contoh: SAVEPOINT T_Awal; diikuti oleh ROLLBACK TO T_Awal;)

Ringkasan 

Untuk meringkas, setiap kategori memiliki fokus yang jelas:

  • DDL mengubah Struktur Skema dan tidak bisa di-rollback.
  • DML mengubah Isi Data dan perubahannya bisa di-rollback karena dikelola oleh TCL.
  • DCL mengubah Izin Akses dan bersifat permanen (tidak bisa di-rollback).
  • TCL bertanggung jawab atas Konsistensi Data dengan mengendalikan kapan perubahan DML menjadi permanen.

Komentar

Postingan populer dari blog ini

Apa itu Primary Key, Foreign Key, dan Candidate Key. Berikan masing-masing 5 contoh pada penerapan ERD

Apa itu Relation pada ERD, mengapa Many-to-Many tidak baik digunakan pada ERD