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
Posting Komentar