Data Definition Language (DDL) merupakan salah satu dari kelompok perintah SQL yang digunakan untuk berinteraksi terhadap struktur database dan objek database (table, index, function, view, store procedure, dan trigger).
Contoh perintah DDL:
- CREATE
- ALTER
- DROP
- RENAME
- TRUNCATE
- COMMENT
- CREATE
Perintah ini digunakan untuk membuat database atau objek database. Sebagai informasi tambahan, objek database dapat berupa tabel, indeks, fungsi, store prosedur, view, trigger, dan lain-lain.
1.1 Membuat Database
Sintaks:
CREATE DATABASE nama_database;
Contoh:
CREATE DATABASE db_kuliah;
1.2 Membuat Table
Sintaks:
CREATE TABLE nama_table(
nama_kolom1 tipe_data1 constraint1,
nama_kolom2 tipe_data2 constraint2,
nama_kolom3 tipe_data3 constraint3
);
Contoh:
CREATE TABLE mahasiswa( id_mahasiswa INT AUTO INCREMENT PRIMARY KEY, nim VARCHAR(10) UNIQUE NOT NULL, jenis_kelamin VARCHAR(10), alamat VARCHAR(50), nomor_telepon VARCHAR(15) );
1.3 Membuat Index
Sintaks:
CREATE INDEX nama_indeks ON nama_tabel(nama_kolom);
Contoh:
CREATE INDEX indeks_kontrak ON kontrak(id_kontrak, nim);
1.4 Membuat View
Sintaks:
CREATE VIEW nama_view AS
sql_statement;
Contoh:
CREATE VIEW view_krs AS SELECT matakuliah.kode, matakuliah.nama, matakuliah.sks, dosen.nip, dosen.nama, mahasiswa.nim, mahasiswa.nama, kontrak.tahun_akademik, kontrak.semester, kontrak.jumlah_sks FROM kontrak JOIN dosen ON dosen.nip = kontrak.nip JOIN mahasiswa ON mahasiswa.nim = kontrak.nim JOIN matakuliah ON matakuliah.kode = kontrak.kode;
1.5 Membuat Function
Sintaks:
CREATE FUNCTION nama_fungsi(parameter tipe_data_parameter) RETURNS tipe_data_return
BEGIN
sql_statement
RETURN ...
END
Untuk informasi lebih detail mengenai Function akan dibahas terpisah.
1.6 Membuat Store Procedure
Sintaks:
CREATE PROCEDURE nama_prosedur(.. parameter tipe_data)
BEGIN
sql_statement
END
Untuk informasi lebih detail mengenai Store Procedure akan dibahas terpisah.
1.7 Membuat Trigger
Sintaks:
CREATE TRIGGER nama_trigger
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
trigger_body;
Untuk informasi lebih detail mengenai Trigger akan dibahas terpisah.
- ALTER
Perintah ini digunakan untuk mengubah tabel, seperti:
- Menambahkan kolom baru ke tabel.
- Mengubah nama kolom yang ada di tabel.
- Menghapus kolom dari tabel.
- Mengubah tipe data atau lebar ukuran maksimal panjang data yang dapat ditampung
2.1 Menambahkan Kolom Baru
Sintaks:
ALTER TABLE nama_tabel
ADD (nama_kolom tipe_data);
Contoh:
ALTER TABLE mahasiswa ADD (jurusan VARCHAR(20));
2.2 Menghapus Kolom
Sintaks:
ALTER TABLE nama_tabel
DROP (nama_kolom);
Contoh:
ALTER TABLE mahasiswa DROP (alamat);
2.3 Mengubah Nama Kolom
Sintaks:
ALTER TABLE nama_tabel
RENAME nama_kolom_lama TO nama_kolom_baru;
Contoh:
ALTER TABLE mahasiswa RENAME jenis_kelamin TO jk;
2.4 Mengubah Tipe Data / Constraint
Sintaks:
ALTER TABLE nama_tabel
MODIFY (nama_kolom tipe_data_baru constraint_jika_ada);
Contoh:
ALTER TABLE nama_tabel MODIFY (nama_kolom tipe_data NOT NULL);
- DROP
Perintah ini digunakan untuk menghapus database atau objek database.
3.1 Menghapus Database
Sintaks:
DROP DATABASE nama_database;
Contoh:
DROP DATABASE db_kuliah;
3.2 Menghapus Table
Sintaks:
DROP TABLE nama_tabel;
Contoh:
DROP TABLE matakuliah;
3.3 Menghapus Index
Sintaks:
DROP INDEX nama_indeks
ON nama_tabel;
Contoh:
DROP INDEX indeks_kontrak ON kontrak;
3.4 Menghapus Objek Database (Store Procedure / Function / Trigger / View)
Sintaks:
DROP {PROCEDURE | FUNCTION | TRIGGER | VIEW} {nama_prosedur | nama_fungsi | nama_trigger | nama_view};
- RENAME
Perintah ini digunakan untuk mengubah objek database, misalnya tabel. Dengan perintah ini memungkinkan untuk mengubah nama satu atau lebih tabel sekaligus.
Sintaks RENAME 1 tabel:
RENAME TABLE nama_tabel_lama TO nama_tabel_baru;
Contoh:
RENAME TABLE mahasiswa TO mhs;
Sintaks RENAME banyak tabel sekaligus:
RENAME TABLE
nama_tabel_lama1 TO nama_tabel_baru1,
nama_tabel_lama2 TO nama_tabel_baru2,
nama_tabel_lama3 TO nama_tabel_baru3;
Contoh:
RENAME TABLE mhs TO mahasiswa, dosen TO dsn, matakuliah TO mk;
- TRUNCATE
Perintah ini digunakan untuk membersihkan isi tabel, yang artinya sama dengan menghapus seluruh data yang ada pada tabel tersebut.
Sintaks:
TRUNCATE TABLE nama_tabel;
Contoh:
TRUNCATE TABLE dsn;
- COMMENT
Seperti pada bahasa pemrograman lainnya, comment adalah bagian yang tidak dieksekusi oleh interpreter. Penulisan komentar pada SQL terbagi ke dalam:
6.1 Single-Line Comments / Komentar Satu Baris
Contoh:
-- ini adalah single line comments, tidak akan pernah dieksekusi
6.1 Multi-Line Comments / Komentar Banyak Baris
Contoh:
/* Ini adalah multi line comments Tidak akan pernah dieksekusi */